Становление QA Automation

Если вы интересуетесь IT-сферой и в особенности QA, то наверняка хоть раз натыкались на рекламное предложение для тестировщиков по типу: "обучитесь программированию и станьте QA Automation инженером, получите x2 буст к зарлате". Но что же это за сфера и можно ли самостоятельно обучиться данной профессии. Рассмотрю с учетом личного опыта.

Кто такой QA Automation?

Это инженер, который пишет автотесты для проверки качества программного обеспечения. Если QA-инженер тестирует вручную (нажимает кнопки, проверяет интерфейс, ищет баги), то AQA автоматизирует эти процессы при помощи кода. То есть вместо того, чтобы каждый раз вручную проверять форму входа после обновления, AQA пишет скрипт, который будет делать это автоматически — быстро, точно и без усталости.

Мой опыт

Я конечно расскажу про свой опыт, но вы, пожалуйста, не закрывайте статью, даже если вам покажется что у меня была "база", которой у вас нет или не было. Я никогда не был тестировщиком. Обучался в университете бэкенд-разработке на Java. Но, к сожалению, из-за высокой конкуренции и моем нежелании становится "волком" (кто понял, тот понял), долго не мог найти работу. И вот однажды протиснулся таки на стажировку в один российский банк со следующим "предложением": 4 месяца я буду заниматься автоматизацией тестирования на Java, а потом уже в разработчики.

В процессе работы и общения с коллегами, работающими по тем же "условиям", я быстро понял, что разработчиков там хватает, а автоматизаторов тестирования - дефицит, соответственно, банк не заинтересован продвигать в разработку, поэтому ребята сидели 5 месяцев на автоматизации.

Что я сделал? Пошел на hh. Вывесил 2 вакансии - Java-бэкенд и Java QA Automation. Естественно на бэкенд откликов не было, а вот по второй вакансии - начали писать в лс и звонить из разных аутсорс-компаний. Таким образом, я перешел на полноценную работу QA Automation и так начался мой карьерный путь.

Сразу сделаю оговорку - те навыки по бэкенд-разработке на Java, которые я получил в университете, не понадобились при устройстве на работу. А саму Java я изучал вне университета, ниже приведу источник.

Что спрашивали на собесах, помимо предыдущего опыта?

1) Теория тестирования

* Виды тестирования

* Тест-кейс, тест-план, чек-лист

* Техники тест-дизайна

2) Java Core
- Stream API
- StringBuilder vs StringBuffer
- Коллекции
- ООП
- Concurrency (синхронизация, потокобезопасные классы)

3) SQL
- Join-ы
- GROUP BY и некоторые ф-ции (например, min, max)
- Where и Having
- Оператор distinct

4) Автотестирование
- Junit
- Allure
- Selenium (локаторы, виды ожиданий)
- Паттерн PageObject
- RestAssured

5) Клиент-серверная архитектура
- REST/SOAP
- Коды ответов HTTP
- Как можно передавать параметры в запросахТакже спрашивали про опыт работы с CI/CD, k8s (Openshift), git

При подговтовке к собесам, я ориентировался на следующие статьи:

https://habr.com/ru/articles/230925/

https://habr.com/ru/articles/789608/

Каков путь?

Если вы уже знаете тестирование, то можно перейти к шагу 2.

1) Изучаем тестирование веб-приложений

Можно пройти данные курсы (рекомендую первый):

https://stepik.org/course/116411

https://stepik.org/course/171826

2) Изучаем Java Core

Сам я его изучал по данному курсу: https://stepik.org/course/118518

3) Набиваем руку на решении задач

Первая ссылка - для более сложных задач, развития абстракного мышления и придумывания решения, вторая ссылка полезна тем, что можно после решения задачи посмотреть на лучшие варианты решения других и улучшит свой стиль написания кода.

https://leetcode.com/

https://www.codewars.com/

4) Погружаемся в автоматизацию тестирования

Обучение здесь строится на практике - нужно написать 2 проекта:

1. Берем сайт, не слишком навороченный (пойдет такой https://dnd.su/) и пишем UI-автотесты на авторизацию и другой ф-ционал сайта.
Используем стек: Java + Selenium. При этом пытаемся применять паттерн PageObject. Материал, как это все делать, можно найти на youtube (например, https://www.youtube.com/playlist?list=PLZqgWWF4O-ziBZVXN19WcRHPM5DkH672c), но лучше не ограничиваться одним источником, ибо это сузит кругозор.

2. Находим открытое API (например, https://petstore.swagger.io/) и пишем API-тесты на стеке Java + RestAssured.
3. Поднимаем базу данных, например, Postgres.
Пробуем подключиться к ней с помощью Java и JDBC. Прокидываем запросы, строим модели. Тут можно изучить такое понятие, как ORM и попробовать реализовать свое простенькое ORM.

4. Ходим на собесы или ищем стажировки. Обычно стажировки проводят крупные IT-компании, поэтому стоит следить за ними и быть в курсе.

Ну а теперь в путь. И сил тебе, воин!

2
2 комментария