Процесс тестирования может начинаться на разных этапах жизненного цикла разработки ПО, в зависимости от выбранной методологии и специфики проекта.
Примеры:
-
Early Testing (или Shift-Left Testing):
- Начинается на этапах, предшествующих написанию кода: сбор и анализ требований, проектирование архитектуры и пользовательского интерфейса.
- QA участвует в ревью документации (требований, спецификаций), выявляя неясности, противоречия и потенциальные проблемы на самой ранней стадии.
- Написание тест-кейсов, чек-листов и формирование стратегии тестирования параллельно с разработкой.
- Применима в Agile и DevOps подходах.
-
Тестирование на этапе разработки (Unit Testing, Integration Testing):
- Начинается, когда разработчики начинают писать код.
- Разработчики пишут Unit-тесты для проверки отдельных модулей или функций.
- QA может участвовать в планировании интеграционного тестирования, написании тест-кейсов или даже написании самих интеграционных тестов, если они используют те же фреймворки, что и разработчики (в Automation QA).
-
Тестирование после развертывания (System Testing, Acceptance Testing, Regression Testing):
- Начинается после того, как разработка определенной функциональности или модуля завершена и они собраны воедино.
- Проводится комплексное тестирование системы в целом.
- Пользователи или представители заказчика проводят приемочное тестирование.
- После внесения изменений проводится регрессионное тестирование, чтобы убедиться, что новые изменения не сломали существующую функциональность.
-
Тестирование по обнаружению дефекта в Production:
- Процесс тестирования может инициироваться обнаружением дефекта в работающей системе пользователем или мониторинговыми инструментами.
- QA проводит анализ дефекта, воспроизводит его, локализует и создает отчет о дефекте.
- Начинается цикл исправления и последующего тестирования исправленной версии.
python
Выбор момента начала тестирования зависит от стратегии проекта, но тенденция к сдвигу тестирования в левую сторону (раннее тестирование) становится все более распространенной для улучшения качества и снижения стоимости исправления дефектов.