94
Тестирование Дот Ком. Часть 1
Постановка мозгов
Стоимость бага — это
• расходы компании, чтобы найти баг и исправить его до пе-
редачи кода пользователю. Расходы компании поддаются
приблизительной оценке;
• убытки, которые несет компания, потому что баг не был
найден до передачи кода пользователю. Объективная оценка
убытков в большинстве случаев невозможна.
Подробности:
Стоимость бага в первом случае:
Если баг был допущен на уровне спека и найден во время тестирования
кода, его стоимость вычисляется как
стоимость оплаты продюсера в час, помноженная на количество
часов, потраченных на разработку "неправильной" части спека
(стоимость спека), плюс + стоимость программирования
"неправильной" части спека плюс + стоимость тестирования
"неправильной" части спека плюс + стоимость фиксирования бага и
проблем, из него вытекающих.
Как видно, слагаемые поддаются приблизительной оценке.
Стоимость бага во втором случае:
Если баг был допущен на уровне спека, но не придушен до релиза и найден
пользователем, то к стоимости, вычисляемой по формуле предыдущего
случая, могут прибавиться десятки других убытков (включая упущенную
выгоду), например:
• время службы поддержки;
• компенсации пользователю потерянных денег;
• иски против компании;
• навсегда утраченная потенциальная оплата услуг компании ушед-
шими пользователями и пользователями, которые по рекомендации
ушедших никогда не заглянут на ваш веб-сайт,
а также множество других плохих и неприятных вещей.
Наиболее важное в концепции стоимости бага — это то, что чем раньше
будет найден баг, тем он будет дешевле для компании.
Таким образом, баг (а это, как мы знаем, может быть и отклонение от
здравого смысла), найденный на уровне идеи, — это самый дешевый
баг, соответственно баг, найденный после релиза, — это самый
дорогой баг. Причем убытки от последнего, как правило, не поддаются
объективной оценке.
Как видим, QA и тестирование — это не только обеспечение счастья
пользователей, но и путь САМОСОХРАНЕНИЯ любой интернет-
компании.
Вернемся к юнит-тестированию. Вот две рекомендации:
1. Юнит-тесты должны планироваться в письменной фор-
ме ДО написания кода.