Прискорбно ложные идеи о записи и воспроизведении |
20.02.2023 00:00 |
Автор: Луиза Гиббс (Louise Gibbs) Какие инструменты, с вашей точки зрения, недооценены или неправильно поняты? Увидев тему 5 дня челленджа “30 дней инструментов”, я сразу же подумала о записи и воспроизведении. Ранее я писала и говорила, что поддерживаю инструменты записи и воспроизведения для автоматизации, и все еще стою на этой позиции. Несмотря на то, что я несколько лет не работала с фреймворком тест-автоматизации, включающим запись и воспроизведение. Запись и воспроизведение - это инструмент, входящий в некоторые фреймворки автоматизации и позволяющий записывать действия, которые войдут в тест. Действие проигрывается снова при запуске теста. Название не очень верное - на самом деле инструмент не записывает ваши действия. Вместо этого он автоматически генерирует код, который запускается, когда пользователь “проигрывает” запись. Проблема с ошибочным восприятием Из всех моих статей и докладов самыми противоречивыми считаются те, где я говорю о записи и воспроизведении. Меня обвиняли в том, что я плохой разработчик, раз голосую “за” эти инструменты. Один человек сказал мне, что мне явно нужен опыт, так как запись и воспроизведение никогда не помогут создать полезные автотесты. Позорно, что такие люди существуют. Если кто-то считает инструмент полезным, нельзя смеяться над ними за то, что они им пользуются, или ставить под сомнение их навыки. Отдельная обратная связь была довольно конструктивной и помогла продолжить разговор (чего я и хочу от каждого своего доклада и каждой статьи). У меня была интересная дискуссия о том, действительно ли запись и воспроизведение облегчают разработку тест-автоматизации. Оппонент был убежден, что просто написать код гораздо легче, нежели использовать запись и воспроизведение для генерации кода. Это важный вопрос, так как не все посчитают запись и воспроизведение полезным инструментом. Нельзя навязывать его использование, если люди не видят в нем ценности. Почему существует это недопонимание? Я убеждена, что основное недопонимание записи и воспроизведение происходит из способа, которым, по мнению людей, этот инструмент надо использовать. Многие верят, что можно просто нажать на запись, выполнить нужные для теста действия, кликнуть на сохранение - и новый тест готов. К сожалению, это не бывает так просто, потому что коду понадобится некоторый рефакторинг. Нужно удалить все случайные клики, обновить локаторы и убедиться, что они срабатывают регулярно, разобраться с временными отметками и заменить переменные. К тому же при любой перемене в приложении тест нужно также обновлять. Программисты-новички, надеющиеся использовать запись и воспроизведение для автоматического создания тестов, будут разочарованы. Однако они могут посчитать инструмент полезным для изучения кода путем анализа сгенерированного кода, понимания, что он делает, и переписывания этого кода, чтобы он лучше работал при прогоне тестов. Лично я считаю, что запись и воспроизведение нужно называть как-то иначе. Так как инструмент, как правило, требует значительных работ по рефакторингу, более точным названием была бы “запись и рефакторинг”. Некоторые верят, что хороший разработчик никогда не воспользуется инструментом, самостоятельно пишущим код. Однако, учитывая объем рефакторинга, обычно необходимый сгенерированному коду, можно утверждать, что для эффективного использования записи и воспроизведения таки нужно быть хорошим разработчиком. Как нужно использовать запись и воспроизведение? В основном я пользуюсь записью и воспроизведением для первичной генерации кода, проводя рефакторинг кода после каждой записи с целью улучшить надежность будущего теста. Я создаю запись для каждого шага вместо того, чтобы помещать в запись тест целиком. Это улучшает поддерживаемость тестов, так как новые шаги можно вставлять в тест, а также обновлять или удалять существующие. Отдельные шаги можно также повторно использовать в других тестах. Иногда мне нравится писать код с нуля - это целиком и полностью зависит от шага, над которым я работаю. То, что инструмент имеется под рукой, не значит, что мы обязаны его использовать. Вместо этого мы должны стремиться максимально эффективно выполнять свою работу и не стыдиться использования (или отказа от использования) доступного инструмента, если это помогает нам достигать своих целей. Дополнительная литература В этой статье я детальнее рассуждаю о преимуществах функции записи и воспроизведения: В этой статье я обсуждаю рефакторинг сгенерированного при записи кода: Доклады на конференциях Радость записи и воспроизведения в автоматизации Ссылка на запись с TestBash Manchester 2019 – нужен аккаунт Pro Обсуждение в Ministry of Testing Club Обсуждение дня 5 – посмотрите, какие еще инструменты люди считают недооцененными или недопонятыми |