Проблема технического долга в автотестах впервые была осознана с ростом автоматизации — когда количество тестов стало исчисляться сотнями и тысячи, их поддержка обошлась часто дороже самой разработки, а архитектурные ошибки множились.
На заре автоматизации тесты писались быстро, часто без паттернов, без стандартов и без последующего рефакторинга. В результате репозитории автотестов устаревают, ломаются от изменения приложения, и их поддержка требует все больше усилий.
Ключевые особенности:
Является ли большой процент покрытия кода тестами показателем отсутствия технического долга?
Нет, формальное покрытие кодом не гарантирует качество и жизнеспособность тестовой базы: могут быть устаревшие или "ненужные" тесты.
Достаточно ли единожды написать шаблоны автотестов, чтобы исключить технический долг?
Нет, инфраструктура и паттерны всегда требуют пересмотра и развития по мере роста проекта.
Можно ли полностью обойтись без ручного тестирования, если автотесты хорошо структурированы?
Нет, всегда понадобятся smoke/regression/niche-тесты вручную, а автотесты необходимы для регулярного "мониторинга" стабильного функционала.
Автотесты писались без review, структура менялась по ходу проекта, часть тестов переставала быть актуальной — 40% тестов падали из-за изменений в приложении.
Плюсы:
Минусы:
В команде каждые две недели проводится ревью автотестов и рефакторинг, архитектура поддерживается согласно принятым стандартам, тесты тесно связаны с актуальными user-story.
Плюсы:
Минусы: