пятница, 18 мая 2012 г.

Lesson 117

Бгг

Альбом: randompics4lj





Автоматизированные регрессионные тесты умирают


Самая большая проблема автоматизированных регрессионных тестов в их распаде и преждевременной смерти. Вы разрабатываете регрессионные тесты для обнаружения проблем в фичах, которые вы уже проверили - проблем, связанных с ошибками программистов, которые они допускают, исправляя ошибка или добавляя новые фичи.

Регрессионные тесты разваливаются по целому ряду причин, таких как:

Изменение пользовательского интерфейса или формата вывода Эти изменения — главная причина. Из-за них большое количество тестов упадет, хотя очевидно, что не было ни каких изменений, влияющих на тестируемые функции. Изменения могли быть столь незначительны, что ручные тестировщики не замечают их Автоматизированные же тесты чувствительны, хрупки и неспособны различать изменения и баги.

Предположения в тестовой среде Тестовые наборы могут сломаться, будучи перемещены на другую машину или в случае, когда необходимые ресурсы были перемещены.

Ошибки в обслуживании Автоматизаторы, чинящие тесты, сами допускают ошибки. Таким образом, наборы регрессионных тестов сами имеют регрессионные баги.

Изменение операторов Тестовые наборы могут требовать специальных умений и знаний для эксплуатации и обслуживания. Или автоматизатор сменился, ценные знания могут быть потеряны. Например, Шейла временно отключает тесты на ввод/вывод в связи с ошибкой в продукте, затем покидает проект. Замена Шейлы предполагает, что тесты полностью устарели и перемещает их в архив, чтоб больше никогда не увидеть.


Тестировщики инвестируют в автоматизацию регрессионного тестирования, ожидая, что она окупится через длительное время. К сожалению, они часто обнаруживают, что тесты перестают работать раньше, чем ожидалось. Тесты не синхронизированы с продуктом. Они требуют починки. Они больше не помогают искать баги. Тестировщики реагируют, обновляя тесты, но это может быть труднее, чем ожидалось. Как оказалось, многие автоматизаторы тратят слишком много времени на диагностику и починку сломанных тестов.


Осторожно выбирайте тесты для автоматизации. Автоматизировать можно все , но он чего-то вам придется отказаться, а что-то сохранить. Неконтролируемые затраты на техническое обслуживание более серьезная проблема, чем сложность написания тестов.

Расходы на техническое обслуживание должны убедить вас не верить сказке, что автоматизация превратит вашу работу в отпуск.

4 комментария: