суббота, 22 июня 2013 г.

Столько стоит автоматизация?

Хочу привести тут очередной совет из книжки Lesson Learned in Software Testing (№ 109), в вольном переводе, очень уж понравился:
Вот пример некорректного расчета стоимости тестирования:

Стоимость ручного тестирования = стоимость подготовительных работ + (N * количество запусков теста).

Стоимость автоматизированного тестирования = стоимость подготовительных работ + (N * количество запусков теста).

Это такая простая апроксимация, из-за которой люди приходят к ряду неправильных выводов. И у нас (у авторов) есть 2 принципа, которые мы используем для оценки эффекта автоматизации.

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

2. Нельзя сравнивать стоимость прогона автоматического теста 50 раз со скоростью прогона этого же теста 50 раз вручную. Кто будет прогонять один и тот же тест 50 раз вручную? И надо ли оно?

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

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

4 комментария:

  1. Согласен. У автоматизированных тестов другие цели. Они позволяют нам спать более спокойно, нежели без них. :)

    ОтветитьУдалить
    Ответы
    1. Да! Они подсказывают, что новый функционал ничего не сломал, не проводя регрессии :)

      Удалить
    2. Интересная трансформация.
      С одной стороны тестированием в принципе невозможно доказать отсутствие дефектов ("ничего не сломал").
      С другой стороны мы берем автоматические тесты и картина меняется настолько, что мы уже можем демонстрировать отсутствие дефектов.

      При этом кто-то еще писал про ложные выводы.

      Удалить
  2. Вообще планирование, оценка времени вещь непростая :) Поставлю эту книжку себе в закладки.

    ОтветитьУдалить