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

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

Тесты, выполняемые автоматически, имеют ряд преимуществ и недостатков перед тестами, которые выполняются вручну

Недостатки: 

  • Требуют время для имплементации и поддержки;
  •  В некоторых случаях failed-статус тестов может быть ошибочно интерпретирован как ошибка в приложении, хотя её причина кроется в логике теста, проблемах с окружением или других факторах;


Преимущества: 

  • Автоматизированные тесты быстрее; 

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

Утилиты, позволяющие управлять браузером такие как Puppeteer, WebDriver и подобные обычно напрямую не связаны с тестированием. Их главная задача – предоставить тестовым фреймворкам (nUnit, Jasmine и т.п.) API для взаимодействия с браузером.

Подобные инструменты имеют ряд ограничений:

  1. Невозможно визуально оценить правильность отображения страницы. Это ограничение частично можно обойти путем сравнения скриншотов, но полностью правильность отображения может быть подтверждено только с помощью ручного теста;
  2. Несмотря на то, что автоматизированные UI-тесты довольно быстро выполняются по сравнению с ручными, модульные и интеграционные (а также API) тесты все равно быстрее;
  3. Автоматизированные UI-тесты очень чувствительны к изменениям в тестируемом приложении. Существует ряд причин, по которым тест может ошибочно возвращать failed-статус:
  • Изменение атрибутов веб-элементов, на которых завязан поиск элементов, приводит;
  • Изменения в логике приложения;
  • Изменение тестовых данных. Хорошей практикой является возможность контролировать тестовые данные прямо из теста, но иногда такая возможность отсутствует;
  • Производительность приложения;

Резюмируя все сказанное, можно сделать следующий вывод: автоматизация UI-тестов не может полностью заменить ручное тестирование из-за своих ограничений. Несмотря на это, автоматизация – это отличный инструмент, также имеющий и ряд преимуществ перед ручным тестированием (быстрее, точнее) и позволяющий сэкономить время всей команде за счет более быстрого обнаружения ошибок.