Прошли времена, когда найти работу ручным тестировщиком было легко. Сейчас все больше работодателей предпочитают QA-инженеров, которые умеют писать автотесты. Так работа идет быстрее и эффективнее, а сам тестировщик может сосредоточиться на более сложных задачах.
Рассказываем, что такое автотестирование, для чего оно подходит и какие инструменты нужны, чтобы освоить автоматизацию тестирования с нуля.
Что такое автоматическое тестирование
Автотестирование (autotesting) — это способ тестирования продукта с использованием специальных программ. QA-инженер на основе тестового сценария пишет автотест, который проверяет код на ошибки, прогоняет на продукте разные пользовательские сценарии, тестирует базовый функционал, собирает ошибки в итоговый отчет. Данные автоматизированного и ручного тестирования собирают вместе, чтобы передать их разработчикам и улучшить продукт.
Какие виды тестирования можно автоматизировать
Автотестирование — это хороший способ избавить QA-инженеров от рутины постоянно повторяющихся тестов и снизить риски, что тестировщик пропустит серьезную ошибку. Написать автотесты можно для:
- Дымового тестирования (smoke testing). Это проверка базовых функций ПО: работает ли форма входа в приложение, можно ли открыть его на разных устройствах, доступен ли API.
- Модульного тестирования (unit testing). Это проверка кода отдельного модуля, функции приложения.
- Нагрузочного тестирования. Это тип тестирования, который можно выполнить только автоматизированно. В процессе автотест генерирует большое количество пользователей в приложении, чтобы проверить, сколько оно может обработать и не сломаться.
- Интеграционных тестов. Проверяют, насколько хорошо отдельные модули работают вместе, и правильно ли они передают друг другу данные. Например, ведет ли форма покупки билетов туда, куда должна вас вести — к странице оплаты.
- Регрессионных тестов. Они помогают защитить уже существующий качественный код от багов, которые возникают при обновлении.
Сергей Рудик, QA-ментор в Skillfactory:
Автотесты могут проверить техническую сторону интерфейса приложения или сайта: соответствие цветов задаче, наличие кнопок, их работоспособность. Автотестам можно передать также пользовательские сценарии, например, доставки еды или заказа такси. Программа проверит все, что происходит: как меняется состояние страницы, какие элементы на ней появляются или, наоборот, не появляются, насколько хорошо работает связь интерфейса с API, как компоненты приложения взаимодействуют друг с другом.
Возможно ли автоматизированное тестирование без ручного?
Нет. Как минимум потому, что автоматизированное тестирование нужно организовать, а значит, сначала сделать что-то руками.
Сергей Рудик, QA-ментор в Skillfactory:
Без опыта ручного тестирования в QA никуда. Автотестирование не заменяет на 100% всю работу тестировщиков. Сначала нужно в любом случае проверить продукт руками: посмотреть, что в нем есть, какие нужны сценарии тестирования, чтобы его проверить, составить тест-кейсы, сценарии и чек-листы. Всем этим занимаются люди, а на основе этих документов потом пишут автотесты.
Читайте также: Что такое тестирование ПО, зачем оно нужно и кто им занимается
Также в тестировании очень важно помнить, что пользователь может вести себя непредсказуемо, поэтому каждому продукту нужен взгляд человека. Ручное тестирование важно при проверке UI и UX: автотест может подтвердить, что кнопки правильного цвета и работают, но не может сказать, насколько удобно и интересно взаимодействовать с приложением.
Как начать автоматизацию тестирования?
В первую очередь нужно составить тест-кейсы: это документы, в которых прописано, что нужно проверить, какие шаги для этого предпринять и какие результаты должно показать приложение. Например, если вам нужно протестировать поисковую строку на сайте, сценарий будет состоять из проверки строки ввода, кнопки «поиск», реакции сайта на неудачный поиск, работу кнопки-крестика для отмены поиска. У каждого из этих элементов есть ожидаемый результат, если его не происходит — автотест в отчете должен вам об этом сообщить.
Затем нужно выбрать фреймворк тестирования — это платформа или набор инструментов, которые будут использоваться для написания и реализации автотестов.
Сергей Рудик, QA-ментор в Skillfactory:
Писать автоматизированные тесты можно на Java, Python, Go. Найти заготовки для различных тестов, на основе которых вы подготовите собственный тест, можно в библиотеках: например, PyTest, Selenium. Python и PyTest помогают писать тесты для проверки бэкенда, API. На Selenium можно проверить интерфейс и создать эмуляцию браузера. Этих инструментов достаточно для старта в автоматизированном тестировании.
По данным исследования Skillfactory, от продвинутых кандидатов на позицию тестировщиков-автоматизаторов также ждут:
- Владение SQL, GraphQL, JSON — чтобы запрашивать нужные данные из базы, HTTP — чтобы искать ошибки в коде сайтов и веб-приложений.
- Умение работать с ПО для разработки: Git — для хранения версий кода, Postman — для тестирования бэкенда сайта, DevTools — чтобы проверять фронтенд сайта.
- Знание ПО для управления данными: ORACLE, PostgreSQL, Grafana, REST API.
После того как инструменты выбраны и тесты написаны, можно запускать проверку и ждать ответа от автоматизированной системы. Итогом работы автотеста должен стать баг-репорт — отчет об ошибках, которые передают команде разработки на исправление.