- Определение
- Почему нужна автоматизация
- Что автоматизируется в первую очередь
- Этапы автоматизации
- Советы
- Выгоды которые дает автоматизация
- Типы тестов, которые наиболее часто автоматизируют
Что такое автоматизированное тестирование?
Автоматизированное тестирование (Automation Testing, Test Automation) — техника тестирования, в которой для выполнения тест кейсов используются специальные программы. Это отличает ее от ручного тестирования, в котором тест кейсы выполняются вручную тестировщиком.
Программы для автоматизации сравнивают полученные результаты с актуальными и генерируют подробные тест-репорты.
Разработка продукта циклична и итерационна — и на каждой итерации, как правило, требуется выполнение одного и того же набора тестов. С помощью инструментов автоматизированного тестирования можно записывать наборы тестов (test suites) и выполнять, когда это необходимо. Как только набор тестов автоматизирован, участие человека в выполнении тестов практически не требуется. Это делает автоматизированное тестирование эффективной техникой. Цель автоматизации — уменьшить количество тестов, которые нужно выполнять вручную.
Зачем нужно автоматизированное тестирование?
Автоматизированное тестирование — лучший способ улучшить эффективность, покрытие продукта тестами, уменьшить время на тестирование. Автоматизированное тестирование очень важно, и вот почему:
- Ручное тестирование всех возможных сценариев использования требует много времени (и, следовательно, денег)
- Автоматизированное тестирование увеличивает скорость тестирования
- Автоматизированное тестирование не требует участия человека для выполнения тестов. Автоматизированные тесты могут быть запущены в любое время (днем, ночью, в выходные и праздники)
- Многократное ручное тестирование одной и той же функциональности скучно
Что автоматизировать в первую очередь?
Для максимальной эффективности, для определения сценариев, подходящих под автоматизацию, пользуйтесь следующими критериями:
- Критически важная бизнес-функциональность
- Тест кейсы, которые нужно выполнять много раз
- Тест кейсы, которые сложно воспроизвести вручную
- Тест кейсы, воспроизведение которых занимает много времени
Следующие критерии не подходят для автоматизации:
- Новые тест кейсы, которые еще не были выполнены вручную
- Тест кейсы для функциональности, требования к которой часто меняются
- Тест кейсы, которые выполняются редко
Мы написали небольшой гайд по выбору приоритетных тест-кейсов для автоматизации.
Процесс автоматизированного тестирования
Шаг 1: Выбор инструмента для автоматизации
Шаг 2: Определение функциональности, которую нужно автоматизировать
Шаг 3: Планирование, тест дизайн и разработка тестов
Шаг 4: Выполнение тестов
Шаг 5: Поддержка написанных тестов
Выбор инструмента
Этому вопросу посвящен отдельный материал.
Определение функциональности, которую нужно автоматизировать
Область для автоматизации может быть определена по следующим критериям:
- Функциональность, которая важна для бизнеса
- Сценарии, для тестирования которых нужны большие объемы входных данных
- Функциональность, использующаяся в нескольких частях приложения
- Целесообразность с технической точки зрения
- Сложность написания тест кейсов
- Возможность использования одних и тех же тест кейсов для кроссбраузерного тестирования
Планирование, тест дизайн и разработка
На этом этапе создается тест стратегия и тест-план, которые содержат следующие детали:
- Выбранный инструмент автоматизации
- Фреймворк с описанием его особенностей
- Описание функциональности, тестирование которой будет автоматизировано
- Подготовка стендов для выполнения тестов
- Расписание выполнение автотестов
- Результаты автоматизированного тестирования
Выполнение тестов
Во время этой стадии происходит выполнение автотестов. После выполнения генерируется подробный тест репорт.
Выполнение тестов может быть запущено как из инструмента автоматизации напрямую, так и с помощью системы управления тестированием (Test Management Tool), который запустит инструмент автоматизации.
Пример: HP Quality Center — cистема управления тестированием, которая управляет QTP для выполнения автотестов.
Поддержка написанных тестов
На стадии поддержки происходит изменение существующих тестов (в случае планируемого изменения функциональности) или добавление новых тестов.
Советы по использованию инструментов автоматизации
- Функциональность, подходящая для автоматизации, должна быть определена до начала разработки проекта.
- Инструмент для автоматизации должен быть выбран исходя из требований конкретного продукта, а не из популярности.
- Придерживайтесь стандартов написания кода, когда разрабатываете автотесты. Вот некоторые из них:
- Придерживайтесь гайдлайнов при написании кода
- Оставлйте комментарии
- Обрабатывайте ошибки — при разработке думайте о том, как отработает ваша система в случае некорректного поведения приложения.
- Собирайте метрики, чтобы определить эффективность автоматизированного тестирования. Вот некоторые из них:
- Процент найденных багов
- Время, затраченное на выполнение автотестов для каждого релиза
Преимущества автоматизированного тестирования
- На 70% быстрее, чем ручное тестирование
- Надежность
- Сохраняет время и деньги
- Не требует участия человека для выполнения тестов
- Возможность повторного использования написанных скриптов
Типы автоматизированного тестирования
- Smoke Testing
- Unit Testing
- Integration Testing
- Functional Testing
- Keyword Testing
- Regression Testing
- Data Driven Testing
- Black Box Testing