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