Цель модульного тестирования и TDD: найти / свести к минимуму ошибки или улучшить дизайн?

Я достаточно привержен к модульному тестированию и TDD, поэтому, пожалуйста, терпите меня, когда я спрашиваю, какие вопросы некоторые могут считать новичками, или если это уже обсуждалось ранее. Если окажется, что это "плохой вопрос" (слишком субъективный и открытый для обсуждения), я с радостью закрою его. Однако я искал пару дней и не получил окончательного ответа, и мне нужен лучше понять это, поэтому я не знаю лучшего способа получить больше информации, чем разместить здесь.

Я начал читать более старую книгу по модульному тестированию (потому что у коллеги она была под рукой), и в первой главе рассказывается о том, зачем использовать модульное тестирование. В нем подчеркивается, что в конечном итоге ваш код намного надежнее и чище и менее подвержен ошибкам. В нем также указывается, что эффективное модульное тестирование сделает отслеживание и исправлять ошибки намного проще. Так что, похоже, он немного сосредоточен на общем предотвращении / сокращении ошибок в вашем коде.

С другой стороны, я также нашел статью о написании отличных модульных тестов, в которой говорится, что цель модульного тестирования - сделать ваш проект более надежным, и, наоборот, поиск ошибок является целью ручного тестирования, а не модульного тестирования.

Так что, будучи новичком в TDD, я немного сбит с толку относительно того, с каким состоянием мне следует переходить в TDD и строить свои модульные тесты. Я признаю, что отчасти причина, по которой я беру это сейчас с моим недавно начатым проектом, заключается в том, что я устал от моих изменений, нарушающих ранее существующий код. И надо признать, что ссылка на статью выше, по крайней мере, указывает на это как на преимущество TDD. Но я надеюсь, что возвращение и добавление модульных тестов к моему существующему коду (а затем продолжение TDD с этого момента) в первую очередь поможет предотвратить эти ошибки.

Действительно ли эта книга и эта статья говорят о том, что одно и то же, но в разных тонах, или есть некоторая субъективность по этому поводу, и я вижу, что просто два человека имеют несколько разные взгляды на то, как подходить к TDD?

Заранее спасибо.

6
задан Carl Manaster 9 July 2011 в 20:36
поделиться