суббота, 5 мая 2012 г.

Lesson 113

Слово Канеру:

Захват воспроизведения не работает


Одни из самых популярных тестовых инструментов — рекордеры. Они предлагают простой путь создания автоматических тестов без программирования. Просто включите рекордер, пока вы выполняете тест. Рекордер захватывает каждое пользовательское действие — нажатия клавиш, движения и клики мыши — и сохраняет их в скрипт, для дальнейшего воспроизведения. Также вы должны указать проверки — шаги в тесте, где вы нажимаете горячую клавишу, и информация с экрана сохраняется в скрипте. Во время воспроизведения, скрипт сравнивает текущий экран (или любые другие запрограммированные атрибуты, связанные с этим экраном) с сохраненной информацией. Если они отличаются — тест падает.


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

Предположим, у вас есть 100 тестовых скриптов, включающих в себя создание учетной записи. Предположим продукт изменился. Сейчас система проводит вас через дополнительный диалог в процессе создания учетной записи. Все эти тесты упадут. Вам придется перезаписать их. Или, предположим, название окна изменилось с "Login Name" на "User Name". Все тесты, у которых есть проверки на этом окне также упадут.

Если тесты не прошли, то их анализ может быть невыносимо труден. Это дефект настроек, дефект теста или дефект продукта? На эти вопросы сложно ответить, глядя в сценарий, сгенерированный машиной. Если вы не можете прочесть сценарий, как вы можете сказать, как он работает?

Более структурная стратегия автоматизации использует те же инструменты, но занимает больше времени и требует навыков программирования. Получившиеся тесты легче обновлять, если изменился интерфейс пользователя.

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

Инвестируйте в навыки и планирование, необходимые для создания автоматизированных тестов, которые будут работать долго. Или тестируйте вручную. Любой из этих подходов более эффективен, чем рекордеры.

(Мы понимаем, что подобные рекордеры полезны для изучения инструментов тестирования и как средство для разработки тестов. Мы против того, чтоб их рассматривали в качестве решения.)

Комментариев нет:

Отправить комментарий