Преимущества и недостатки автоматизации тестирования

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



Преимущества автоматизации тестирования

В чем преимущества автоматизации тестирования?

Подтверждение известного

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


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

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


Ключевая информация здесь - запускать автоматические проверки по мере обновления приложения.

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

Быстрая обратная связь

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

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


Быстрое выполнение проверок

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

Это особенно верно в случае сценариев, основанных на данных.

Освобождает время тестировщиков

Лучшее применение автоматических проверок - это регрессионные тесты.

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


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

Команда разработчиков может внести свой вклад

Автоматические проверки обычно пишутся на том же языке, что и тестируемое приложение. По этой причине ответственность за написание, обслуживание и выполнение тестов становится совместной ответственностью.

Каждый в команде разработчиков может внести свой вклад, а не только тестировщики.



Недостатки автоматизации тестирования

В чем недостатки автоматизации тестирования?


Ложное чувство качества

Остерегайтесь прохождения тестов! Это особенно важно при проверке функциональности на уровне пользовательского интерфейса или системы.

Автоматическая проверка проверяет только то, что было запрограммировано для проверки.

Все автоматические проверки в наборе тестов могут успешно пройти, но могут остаться незамеченными серьезные недостатки. Причина этого в том, что автоматическая проверка не была закодирована для «поиска» этих сбоев.

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


Ненадежный

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

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

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

Решение: Где возможно / применимо, используйте заглушки. Заглушки устраняют проблемы с подключением или изменения в сторонних системах. Следовательно, автоматические проверки не будут зависеть от каких-либо отказов в нисходящем направлении.

Автоматизация тестирования - это не тестирование

К сожалению, многие люди путают «автоматизацию тестирования» с тестированием.

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

Правда в том, что тестирование - это исследовательское упражнение. Тестирование требует знания предметной области, сосредоточенного ума и готовности изучить приложение.

Тестирование - это не просто выполнение набора заранее определенных шагов тестирования и сравнение фактических результатов с ожидаемыми. Это работа автоматических проверок.

Чтобы правильно протестировать приложение, всегда требуется человеческий интеллект.

Решение: Поймите, что для успешной реализации проекта вам потребуется как автоматическое, так и ручное тестирование.

Одно не заменяет другого; дополнять автоматические проверки ручным / исследовательским тестированием.

Время и усилия на техническое обслуживание

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

Автоматические проверки недолговечны. Если пакеты регрессии не обновляются, вы начинаете видеть всевозможные сбои.

Может какие-то проверки уже не актуальны. Или, может быть, проверки не являются истинным представлением новых реализаций.

Эти сбои могут испортить результаты теста.

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

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

Медленная обратная связь

Когда функциональность готова к тестированию, в большинстве случаев проще выполнить ручную проверку.

Проблема в том, что автоматические проверки могут занять много времени, в зависимости от сложности теста. Следовательно, ручная проверка дает более быструю обратную связь, чем написание сценария, запуск и проверка результатов.

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

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

Кроме того, разделите автоматические чеки по разным пакетам.

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

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

Другой регрессионный пакет может включать в себя все сквозные и углубленные тесты. Эти проверки могут выполняться в одночасье.

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

Обнаружено не так много ошибок

Кажется, что большинство ошибок обнаруживается «случайно» или при исследовательском тестировании.

Вероятно, это связано с тем, что в каждом сеансе исследовательского тестирования мы могли тестировать приложение разными способами.

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

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

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



Заключение

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