Тестус на тестовом покрытии
Рано утром программист спросил великого мастера:
«Я готов написать несколько юнит-тестов. На какой охват кода я должен стремиться? »
Великий мастер ответил:
«Не беспокойтесь о покрытии, просто напишите несколько хороших тестов».
Программист улыбнулся, поклонился и ушел.
...
Позже в тот же день второй программист задал тот же вопрос.
Великий мастер указал на кастрюлю с кипящей водой и сказал:
«Сколько зерен риса я должен положить в этот горшок?»
Программист, выглядя озадаченным, ответил:
«Как я могу вам сказать? Это зависит от того, сколько людей вам нужно накормить, насколько они голодны, какую другую пищу вы подаете, сколько риса у вас есть и так далее ».
«Точно», сказал великий мастер.
Второй программист улыбнулся, поклонился и ушел.
...
В конце дня пришел третий программист и задал тот же вопрос о покрытии кода.
«Восемьдесят процентов и не меньше!» - ответил мастер строгим голосом, стуча кулаком по столу.
Третий программист улыбнулся, поклонился и ушел.
...
После этого последнего ответа молодой ученик подошел к великому мастеру:
«Великий мастер, сегодня я слышал, как вы ответили на один и тот же вопрос о покрытии кода тремя разными ответами. Почему?"
Великий мастер встал со стула:
«Пойдемте со мной свежий чай и поговорим об этом».
После того, как они наполнили свои чашки горячим зеленым чаем, великий мастер начал отвечать:
«Первый программист новый и только начинает тестирование. Сейчас у него много кода и нет тестов. Ему предстоит долгий путь; сосредоточение внимания на покрытии кода в это время было бы удручающим и совершенно бесполезным. Ему лучше просто привыкнуть к написанию и проведению некоторых тестов. Он может беспокоиться о покрытии позже.
«Второй программист, с другой стороны, имеет большой опыт в программировании и тестировании. Когда я ответил ей, спросив, сколько зерен риса я должен положить в горшок, я помог ей понять, что количество необходимых испытаний зависит от ряда факторов, и она знает эти факторы лучше, чем я, - в конце концов, это ее код. , Единого простого ответа не существует, и она достаточно умна, чтобы справиться с истиной и работать с этим ».
«Понятно, - сказал молодой ученик, - но если нет единого простого ответа, то почему вы ответили третьему программисту:« Восемьдесят процентов и не меньше »?»
Великий мастер смеялся так сильно и громко, что его живот, свидетельствующий о том, что он пил больше, чем просто зеленый чай, шлепнулся вверх и вниз.
«Третий программист хочет только простые ответы - даже если нет простых ответов… и тогда все равно не следует им».
Молодой ученик и седой великий мастер закончили пить чай в задумчивой тишине.