среда, 14 июля 2010 г.

Test-Driven Development vs. Test-First Development

Натолкнулся на днях на статью с провокационным названием "Why Test-Driven Development Really Isn’t Test First". Основная идея заключается в том, что необходимо сначала писать интеграционные тесты (например, при помощи Fit), а затем уже писать Unit-тесты и код в режиме TDD:
... we should not drive our acceptance tests from our unit tests, but rather do it the other way around since we need to be creating our acceptance tests first.

Статья грамотная, взвешенная, аргументированная. Идея мне понравилась, но так как сам я в таком режиме никогда не работал, у меня зародились сомнения. Предварительное написание интеграционных тестов мне напоминает подходы вроде водопада, когда предварительно (up-front) созданный дизайн рушится с первой строчкой кода (преувеличение имеет место быть, но суть от этого не меняется). Не получится ли здесь так же?

Update
Оказывается, Acceptance TDD - широко известная практика. Выходит, мой интерес к этой статье обусловлен лишь слабой осведомленностью в вопросах Extreme Programming.

В этой статье разработчики не соглашаются с критикой ATDD Кентом Беком и рассказывают свою success-story.

По результатам поверхностного изучения ATDD добавил в ToRead-список две книги под авторством Кента Бека: Extreme Programming Explained: Embrace Change и Test Driven Development: By Example

Комментариев нет: