Найти тему
Habr.com

Притча о покрытии кода тестами

Ранним утром программист спросил великого мастера:
— Я готов писать модульные тесты. К какому покрытию кода я должен стремиться?
Великий мастер ответил:
— Не переживай о покрытии, просто пиши хорошие тесты.
Программист улыбнулся, поклонился и ушел.

Немного времени спустя другой программист задала этот же вопрос. Великий мастер указал на котел с кипящей водой и сказал:
— Сколько зерен риса я должен положить в этот котел?
Программист с озадаченным видом ответила:
— Как я могу ответить наверняка? Все зависит от того, сколько людей вам надо накормить, насколько они голодны, какие еще блюда вы подаете, сколько риса у вас есть и от многого другого.
— Совершенно верно. — сказал великий мастер.
Второй программист улыбнулась, поклонилась и ушла.

В конце дня пришел третий программист, и задал тот же вопрос о покрытии кода:
— Восемьдесят процентов и ни строчкой меньше! — строго ответил мастер ударяя кулаком по столу.
Третий программист улыбнулся, поклонился и ушел.

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

После того, как они наполнили свои чашки горячим зеленым чаем, великий мастер начал отвечать:
— Первый программист — новичок и только начинает писать тесты, сейчас у него много кода и нет тестов. Перед ним длинный путь, и концентрация на покрытии сейчас бесполезна и будет только угнетать. Пускай лучше привыкнет к написанию и запуску тестов. Он может побеспокоиться о покрытии позже.
— Второй программист, напротив, довольно опытна в программировании и тестировании. Когда я спросил ее сколько зерен риса мне надо положить в котел, я помог ей осознать, что количество тестов обязательно зависит от многих факторов, и она знает эти факторы лучше меня — это ее код в конце концов. Не существует одного простого ответа, и она достаточно умна чтобы принять правду и работать с этим.
— Понятно, — сказал молодой ученик, — но, если нет одного простого ответа, тогда почему вы ответили третьему программисту «Восемьдесят процентов и не строчкой меньше»?

Великий мастер рассмеялся так сильно и громко, что его пузо, доказательство того что он пил не только зеленый чай, запрыгало вверх и вниз:
— Третий программист жаждет только простых решений, даже когда их нет. А после, все равно не следует им.

Молодой ученик и седой великий мастер допивали чай в задумчивом молчании…

Оригинал статьи на Хабре (2013 год)
К лучшим публикациям Хабра за сутки