Разделы портала

Онлайн-тренинги

.
Прискорбно ложные идеи о записи и воспроизведении
20.02.2023 00:00

Автор: Луиза Гиббс (Louise Gibbs)
Оригинал статьи
Перевод: Ольга Алифанова

Какие инструменты, с вашей точки зрения, недооценены или неправильно поняты?

Увидев тему 5 дня челленджа “30 дней инструментов”, я сразу же подумала о записи и воспроизведении. Ранее я писала и говорила, что поддерживаю инструменты записи и воспроизведения для автоматизации, и все еще стою на этой позиции. Несмотря на то, что я несколько лет не работала с фреймворком тест-автоматизации, включающим запись и воспроизведение.

Запись и воспроизведение - это инструмент, входящий в некоторые фреймворки автоматизации и позволяющий записывать действия, которые войдут в тест. Действие проигрывается снова при запуске теста. Название не очень верное - на самом деле инструмент не записывает ваши действия. Вместо этого он автоматически генерирует код, который запускается, когда пользователь “проигрывает” запись.

Проблема с ошибочным восприятием

Из всех моих статей и докладов самыми противоречивыми считаются те, где я говорю о записи и воспроизведении. Меня обвиняли в том, что я плохой разработчик, раз голосую “за” эти инструменты. Один человек сказал мне, что мне явно нужен опыт, так как запись и воспроизведение никогда не помогут создать полезные автотесты. Позорно, что такие люди существуют. Если кто-то считает инструмент полезным, нельзя смеяться над ними за то, что они им пользуются, или ставить под сомнение их навыки.

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

Почему существует это недопонимание?

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

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

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

Как нужно использовать запись и воспроизведение?

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

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

Дополнительная литература

В этой статье я детальнее рассуждаю о преимуществах функции записи и воспроизведения:
Benefits of Record and Playback Features in Test Automation

В этой статье я обсуждаю рефакторинг сгенерированного при записи кода:
Adapting Recorded Test Cases to Improve Your Test Automation

Доклады на конференциях

Радость записи и воспроизведения в автоматизации

Ссылка на запись с TestBash Manchester 2019 – нужен аккаунт Pro
Ссылка на запись с TestCon Europe 2019

Обсуждение в Ministry of Testing Club

Обсуждение дня 5 – посмотрите, какие еще инструменты люди считают недооцененными или недопонятыми

Обсудить в форуме