Разработка через тестирование - это написание тестов для определения спецификаций программы
Вы не пишете тесты для определения спецификации, описания тестов, пользовательские истории и описания функций являются спецификацией в смысле «мертвых деревьев».
Чтобы рассмотреть, процесс TDD в двух словах:
- определить проект с точки зрения возможностей
- опишите заинтересованную сторону, поведение и цель каждой функции, используя пользовательские истории
- указать ожидаемые преимущества, инициирующие события / условия и поведение / результаты, связанные с пользовательской историей, используя описания тестов [и это завершает «спецификацию»]
- выбрать набор функций для каждой итерации; итерации должны быть короткими [я опускаю шаги планирования и оценки для краткости]
- закодировать тест для функции (она потерпит неудачу, но вам пришлось принимать решения API для кодирования теста)
- реализовать достаточно функции, чтобы тест прошел
- рефакторинг кода при необходимости
- повторите со следующим тестом, пока функция не будет завершена
- повторите со следующей функцией, пока итерация не будет завершена
- повторите со следующей итерацией, пока проект не будет завершен
сколько дизайна, архитектуры, сопроводительной документации и т. д. вы выбираете, не является частью TDD. Есть некоторые практические «лучшие практики», о которых вы можете прочитать, но имейте в виду, что это «лучшие» практики на чужом семинаре , а не на вашем.
обратите внимание , что точка является для заказчика и разработчика , чтобы придумать с особенностями и писать рассказы и описание тестов вместе , для взаимопонимания
Итак, с этим из пути, оригинальный вопрос был:
Какова роль архитектора программного обеспечения в TDD?
И короткий ответ:
Так же, как и всегда, так же, как и всегда. - Дэвид Бирн
РЕДАКТИРОВАТЬ: Длинный ответ: архитектор играет обычные роли провидца / исследователя / раздражителя / поддержки / поддержки в течение всего процесса, по мере необходимости.
РЕДАКТИРОВАТЬ 2: извините, я пропустил пункт подвопросов! Каждый несет ответственность за написание спецификаций; все разработчики, включая архитектора, если / когда это уместно, плюс заказчик . Разработчики также кодируют тесты.