неделю назад я прочитал на Хабре очередную статью о разработке и тестировании. и хотел бы немного написать, в чем я с ней не согласен. короткое изложение статьи (в моем видении):
брать деньги за регрессионное тестирование - это нечто вроде шарлатанства, потому что исполнители берут деньги за тестирование функциональности, которая была оплачена заказчиком и должна работать после того, как было реализована и не должна ломаться в дальнейшем.
в качестве иллюстрации автор приводит следующий пример:
"Представляете, вы заказываете ремонт, а вам предлагают платить дополнительные деньги за то, чтобы при работе над кухней не развалилась гостиная…".
с точки зрения человека, который расстается со своими деньгами ради продукта и умеет считать эти деньги, автор прав. но с точки зрения программиста, который сосредоточен на одной задаче и, может быть, не видит весь проект в целом, я готов поспорить с эиим утверждением. ведь далеко не всегда мы способны держать в голове абсолютно весь проект и задаваться вопросом "а что может сломаться в других модулях, если я напишу эту команду" перед написанием каждой строчки. можно, конечно, сказать, что это работа руководителя - ставить задачи в таких формулировках, которые не будут ломать текущей функциональности, но ведь с разростанием проекта, нужно все больше времени на анализ текущего состояния и зависимостей, в которых может поучаствовать новая функциональность. то есть все равно возвращаемся к регрессионной модели. только время теперь тратит не тестировщик, а тим-лид / ПМ / программист. поэтому намного проще получается сразу взять тестировщика и пусть он работает / плюется / ругает программистов за некомпетентность и т.д.
отсюда вывод - затраты на регрессионное тестирование не являются обманом заказчиков.
к слову, пример, приведенный автором, может быть дополнен моим примером из жизни:
когда у меня дома сверлили отверстие в стене, то попали в провод, из-за чего была нарушена изоляция и через некоторое время стало отключаться электричество. причину мы устанавливали довольно долго. насколько можно винить сверлившего человека, если ему сказали: сверли здесь, настолько же можно и винить программиста, который просто закрывает полученный тикет.
если бы у меня была возможность заплатить дополнительные деньги за полную схему проводов в стенах, я бы непременно ей воспользовался.
справка (опять же в моем вольном изложении):
регрессионное тестирование - тестирование работоспособности проекта после добавления нового функционала. иными словами, тестирование на то, "а не упало ли что-то после добавления этой фичи".
мне кажется, что если платит заказчик за продукт, то он должен получить его качественным. Если заказчик не дурак и не заказывает свой продукт в "шарашкиной конторе", ясное дело, что там будет тестировщик, который поругается на программистов (без этого никак), но дело свое сделает и регрессионное тестирование, и какое хочешь. А вот то, что дерут деньги отдельно это я в первый раз слышу.