Знакомство с AQA
Содержание
- Цели автоматизированного тестирования
- Преимущества AQA по сравнению с ручным тестированием
- Где автоматизация полезна, а где нет
- Роли и ответственность в AQA
- Практика
1. Цели автоматизированного тестирования
Автоматизация нужна не ради автоматизации. Её задача — сделать процесс проверки продукта быстрее, стабильнее и дешевле на длинной дистанции. Базовые понятия — что такое автотесты и какие они бывают — мы разобрали в 01.01 - Введение в автоматизированное тестирование.
Снижение объёма ручной работы
Повторяющиеся проверки не должны каждый раз выполняться вручную. Если сценарий стабилен и часто повторяется, его выгоднее автоматизировать.
Ускорение тестирования
Автотесты можно запускать параллельно, по расписанию или в CI/CD. Это позволяет быстрее получать обратную связь о состоянии продукта.
Уменьшение человеческого фактора
Человек может устать, пропустить шаг, нажать не туда или забыть проверить важный сценарий. Автотест выполняет один и тот же набор действий одинаково при каждом запуске.
2. Преимущества AQA по сравнению с ручным тестированием
Плюсы автоматизации
Эффективность
Автоматизированные проверки выполняются быстрее ручных и могут запускаться много раз без участия тестировщика.
Повторяемость
Один и тот же тест проходит один и тот же сценарий по одинаковым правилам. Это снижает риск случайной ошибки.
Оптимизация человеко-часов
Автотесты освобождают QA-инженеров от рутины. Это время можно использовать для анализа требований, тест-дизайна, исследовательского тестирования и сложных проверок.
Минусы автоматизации
Высокий стартовый порог
Нужно настроить окружение, выбрать инструменты, написать тестовый проект, продумать архитектуру и подготовить данные.
Поддержка
Автотесты требуют регулярного обслуживания. Если меняется продукт, тесты тоже должны обновляться.
Ограниченный scope
Не каждый сценарий выгодно автоматизировать. Некоторые проверки слишком нестабильны, слишком редки или требуют человеческого анализа.
3. Где автоматизация полезна, а где нет
Автоматизация хорошо подходит для
Регрессионного тестирования
Если сценарии нужно проверять после каждого изменения в продукте, их стоит автоматизировать.
API-тестирования
API обычно стабильнее интерфейса, быстрее проверяется и даёт хороший уровень контроля над бизнес-логикой.
Проверок производительности
Автоматизация позволяет запускать повторяемые нагрузочные сценарии и измерять поведение системы под нагрузкой.
Автоматизация хуже подходит для
Исследовательского тестирования
Когда нужно изучить новую функциональность, искать неожиданные проблемы и гибко менять направление проверки, ручной подход эффективнее.
UI с частыми изменениями
Если интерфейс активно меняется, UI-тесты могут требовать слишком много поддержки. В таких случаях лучше сначала стабилизировать продукт или закрыть часть сценариев на уровне API.
4. Роли и ответственность в AQA
Кто ставит задачи на автоматизацию
В крупных компаниях задачи на автоматизацию часто приходят от ручных тестировщиков. Они проходят новую функциональность, выделяют сценарии для покрытия и передают их AQA-команде.
В небольших и средних командах AQA-инженер может сам определять, что нужно автоматизировать. В таком случае важно уметь оценивать пользу теста: насколько часто сценарий используется, насколько он критичен, насколько стабилен и сколько будет стоить его поддержка.
Кто приоритизирует автоматизацию
В больших командах приоритеты обычно определяет тимлид или ответственный за направление автоматизации.
Но на практике AQA-инженер тоже должен уметь расставлять приоритеты самостоятельно. Хороший ориентир — пирамида тестирования:
- API-тесты — быстрые, стабильные, хорошо подходят для раннего покрытия.
- UI-тесты — нужны для проверки пользовательских сценариев, которые нельзя полноценно закрыть на уровне API.
Ключевые инструменты AQA
Python
Python — высокоуровневый интерпретируемый язык программирования. Он читаемый, удобный для старта и хорошо подходит для автоматизации благодаря большому количеству библиотек.
Код Python выполняется через интерпретатор, без отдельной компиляции в классическом виде, что упрощает первые шаги в разработке автотестов. Как установить интерпретатор и настроить рабочее окружение — в 01.03 - Подготовка окружения.
PyTest
PyTest — основной фреймворк для написания тестов на Python.
Он даёт AQA-инженеру:
- фикстуры;
- параметризацию;
- удобную структуру тестов;
- поддержку плагинов;
- интеграцию с Allure;
- гибкость для unit-, API-, функциональных и интеграционных проверок.
Requests
Requests — библиотека Python для HTTP-запросов.
Она используется для API-тестирования: отправки запросов, проверки ответов, работы с сессиями, headers, cookies и JSON.
Requests можно воспринимать как программный способ выполнять то, что часто вручную делают в Postman.
Playwright
Playwright — инструмент для UI-автоматизации.
Он поддерживает современные браузеры и позволяет работать с интерфейсом из кода: кликать, вводить данные, проверять элементы, делать скриншоты и ждать нужных состояний страницы.
По сравнению с Selenium, Playwright во многих задачах удобнее за счёт встроенных ожиданий и более современного API.
5. Практика
Задание
Выписать все темы блока в удобное для себя место.
Рекомендуемая структура:
- цели автоматизации;
- плюсы AQA;
- минусы AQA;
- где автоматизация эффективна;
- где автоматизация неэффективна;
- кто ставит задачи на автоматизацию;
- кто приоритизирует задачи;
- Python;
- PyTest;
- Requests;
- Playwright.
⬅️ Назад: 01.01 - Введение в автоматизированное тестирование | Далее: 01.03 - Подготовка окружения ➡️ Модуль: 01 - MOC