Какова роль архитектора программного обеспечения в процессе Test-Driven Development?

Какова роль архитектора программного обеспечения в процессе Test-Driven Development?
Какова роль архитектора программного обеспечения в процессе Test-Driven Development? - nci @ Unsplash
Test-Driven Development - это написание тестов для определения спецификаций программы.

Вы не пишете тесты для определения спецификации, описания тестов, пользовательские истории и описания функций являются спецификацией, в смысле "мертвых деревьев".

Вкратце процесс TDD можно описать следующим образом:

  • определить проект в терминах возможностей
  • описывать заинтересованные стороны, поведение и цели каждой функции с помощью пользовательских историй
  • укажите ожидаемые предпосылки, триггерные события/условия и поведение/результаты, связанные с пользовательской историей, используя описания тестов [и это завершает "спецификацию"].
  • выберите набор функций для каждой итерации; итерации должны быть короткими [для краткости я опускаю этапы планирования и оценки]
    • написать тест для функции (он будет неудачным, но вы должны были принять решения по API, чтобы написать тест)
    • реализовать достаточное количество функций, чтобы тест прошел
    • при необходимости рефакторить код
    • повторяйте со следующим тестом, пока функция не будет завершена
    • повторять со следующей функцией до завершения итерации
  • повторять со следующей итерацией, пока проект не будет завершен

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

обратите внимание, что смысл в том, чтобы заказчик и разработчик придумывали функции и писали истории и описания тестов вместе, для взаимопонимания.

Итак, с учетом вышесказанного, первоначальный вопрос был таким:

какова роль архитектора программного обеспечения в TDD?

И короткий ответ таков:

Та же, что и раньше, та же, что и раньше. -Дэвид Бирн


EDIT: The long answer is: the architect plays the usual visionary/investigator/irritant/support/backstop roles during the entire process, as necessary.

EDIT 2: извините, я пропустил суть подвопросов! Все ответственны за написание спецификаций; все разработчики, включая архитектора, если это необходимо, плюс заказчик. Разработчики также пишут тесты.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - TDD, Test-Driven Development, Разработка через тестирование, Чистый код, XP

Прикрепленное видео 2 - Лекция 6 по архитектуре Android. Unit тестирование. Test Driven Development


LetsCodeIt, 26 мая 2023 г., 15:50