Внедрение автоматизированного тестирования в уже существующий проект — задача сложная и многоуровневая.
История вопроса: В организации, где тестирование долгое время выполнялось вручную, процессы, документация и архитектура кода не всегда соответствуют требованиям для автоматизации. Тестировщики не владеют автоинструментами, а архитектура тестов и самих приложений может не поддерживать быстрый запуск автотестов.
Проблема: Основные сложности внедрения:
Решение: Команда должна пройти этапы:
Ключевые особенности:
Могут ли автоматические тесты полностью заменить ручное тестирование?
Нет. Даже при высоком покрытии автотесты применимы только для повторяющихся, детерминированных сценариев. Необнаружимые баги юзабилити, эксплорэйшн, дизайн-огрехи и нетипичные "человеческие" баги обычно ловят вручную.
Нужно ли автоматизировать все тест-кейсы без исключения?
Нет. Не все тест-кейсы оправданно автоматизировать: низкочастотные или сложные сценарии лучше оставить для ручного тестирования из-за дороговизны и низкой отдачи.
Должны ли тестировщики обязательно быть программистами для успешной автоматизации?
Нет, но желателен базовый уровень программирования. Команда часто строится на связке: опытный тестировщик — архитектор автотестов, автоматизаторы — разработчики.
Компания решила автоматизировать все ручные тесты одновременно, не выделив отдельную команду и не обсудив приоритеты. Купили модный инструмент, но он не поддерживал часть нужных браузеров. В итоге половина тестов перестала работать через квартал.
Плюсы:
Минусы:
Команда вручную выбрала 10 самых частых регрессионных сценариев. Провела обучение автоматизации на Python (Selenium), добавила тесты в CI. Спустя полгода 70% регрессионных проверок запускались автоматически, ручные тестеры занимались креативом.
Плюсы:
Минусы: