Процесс тестирования. Часть 3: Реализация и выполнение тестирования
Стадии реализации и выполнения тестирования являются самыми видимыми в процессе тестирования ПО. Ведь именно в результате хорошей работы этих процессов, специалисты по тестированию находят серьёзные баги как можно раньше, а не перед релизом. Об этих активностях мы сегодня и поговорим чуть подробнее.
Если вы не знакомы с фундаментальным процессом тестирования, то рекомендуем начать с первой части:
Фундаментальный процесс тестирования. Часть 1: Планирование и контроль тестирования
Реализация и выполнение тестирования
В двух словах эти стадии можно описать так:
Реализация тестирования (Test implementation) — процесс выбора приоритезации тестов, а так же подготовка окружения для дальнейшего выполнения тестов.
Выполнение тестирование (Test execution) — прохождение определённых тестов на необходимых тестовых окружениях.
Рассмотрим эти стадии немного подробнее чуть ниже.
Реализация тестирования (Test implementation)
Как и говорилось выше, в процессе имплементации тестирования, мы подготавливаем всё необходимое для начала тестирования.
Реализация тестирования обычно состоит из следующих активностей:
- Расстановка приоритетов активностей выполнения тестирования;
- Создание наборов тест-кейсов (тест-сьютов) для последующего выполения;
- Создание автоматизированных сценариев;
- Организация наборов ручных и автоматизированных тестов, чтобы они выполнялись эффективно;
- Настройка необходимого тестового окружения;
- Подготовка тестовых данных.
В случае использования техник тестирования основанных на опыте, например исследовательское тестирование (Exploratory testing) тест дизайн, имплементация и выполнение тестов проходит одновременно.
Реализация тестирования в контексте Scrum фреймворка.
Перед началом спринта на Sprint Planning митинге происходит выбор задач на спринт. Там же и выставляются приоритеты для задач, т.е. что будет реализовано в первую очередь, а что позже. Эти приоритеты мы тоже будем использовать в тестировании.
Пока разработчики делают свою работу, мы можем начинать делать свою:
На этом этапе мы выполняем анализ тестирования и тест дизайн.
После того как тесты готовы, мы можем приступать к процессу Test Implementation.
На протяжении спринта мы будем получать новые сборки с реализованными изменениями в продукте. Поэтому стоит подумать о жизненном цикле сборки в рамках спринта. Наша задача — организовать прохождение тестов так, чтобы это было максимально эффективно.
Например, план может быть такой:
- Получив сборку, мы должны удостовериться, что получили правильный билд и провести смоук тест;
- Выполнить наборы тестов для проверки новой функциональности;
- Выполнить наборы тестов для проверки исправленных дефектов;
- Выполнить наборы тестов для регрессионного тестирования.
В соответствии с этим планом, нам нужно будет собрать наборы тестов для каждой цели.
Не всегда есть время на проведение регрессионного тестирования каждого билда. Ведь за двухнедельную итерацию может быть собрано более 20 сборок. В таком случае сильно спасает автоматизация регрессионного тестирования. Если автоматизации нет на проекте, тогда регрессионного тестирование обычно сдвигают на конец спринта, когда все изменения будут уже протестированы.
Выполнение тестирования (Test execution)
Выполнение тестирования начинается как только мы получим объект тестирования (билд) и он будет соответствовать критериям начала тестирования (например, билд собрался, юнит тесты прошли и этот билд был развёрнут (задеплоен) на тестовое окружение).
К началу этой фазы у нас обязательно должно уже быть готово и настроено:
- Тестовое окружение (Test environment);
- Инструменты управления тестированием (Test management system);
- Созданы тест раны (test run) — наборы тестов, которые назначены на определённых людей для прохождения;
- Инструменты управления задачами и дефектами (Task and bug tracking systems).
- Билд должен быть собран
- Весь запланированный новый функционал должен быть реализован
Во время выполнения тестирования мы проходим наборы тестов в соответствии с нашими планами.
На этом этапе непосредственно выполняются все виды тестирования на всех уровнях.
В этой фазе можно выделить следующие общие активности:
- Выполнение тестов из выбранных наборов в ручную либо запуском автоматизированных скриптов;
- Сравнение фактических и ожидаемых результатов;
- Составление отчётов о дефектах;
- Проставление результатов выполнения тестов в тест ранах (например, пройден, не пройден, заблокирован и тд);
- Повторение прохождения тестов в случае нахождения и исправления какого-то дефекта (например, повторное тестирование (Retest) или регрессионное тестирование).
На сегодня у нас всё, в следующий раз разберём стадии определения критериев выхода и завершения тестирования.
Stay tuned 🙂