Эффективность автоматизации тестирования

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

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

Итак, автоматизацию в общей случае имеет смысл реализовывать если соблюдается условие:

TAcr/N + TAerrval + TAupd < TMval* N,
где
N – количество выполнений в течении одной итерации;
TAcr – время на создание автоматического теста;
TAerrval – среднее время на понимание причины “падения” авто-теста;
TAupd – среднее время на апдейт авто-теста;
TMval – среднее время ручной проверки.

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

Теперь становиться гораздо наглядней следующие моменты:

  • почему не выгодно автоматизировать функционал, который нужно проверить всего несколько раз;
  • почему выгодно автоматизировать регрессию;
  • почему тестирование API всегда более выгодно автоматизировать;
  • почему очень важно иметь высокий уровень абстракции в инструменте автоматизации;
  • почему так важно иметь иметь качественное логгирование результатов выполнения авто-тестов

Уменьшить время проверки можно эффективной схемой анализа результатов и дизайна авто-скриптов.
Ответы на следующие вопрос должны быть получены как можно ранее:

  • К какому функционалу каждая из ошибок принадлежит?
  • Какие действия выполнял скрипт в момент появления ошибки?
  • В каком состоянии было приложение и какими были динамические данные в момент выполнения авто-теста?

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

Leave a Reply