Разработка через тестирование - это методология разработки программного обеспечения, основанная на тестировании, которая означает, что она требует написания тестового кода перед написанием реального кода, который будет тестироваться. По словам Кента Бека:
Стиль здесь - написать несколько строк кода, а затем выполнить тест,
следует запустить или, что еще лучше, написать тест, который не будет выполняться, а затем написать
код, который заставит его работать.
После того, как мы выяснили, как написать один небольшой фрагмент кода, теперь вместо того, чтобы просто писать код, мы хотим получить немедленную обратную связь и потренироваться «немного кодировать, немного тестировать, немного кодировать, немного тестировать». Поэтому мы сразу же пишем тест для него.
Итак, TDD - это техническая методология низкого уровня, которую программисты используют для создания чистого кода, который работает.
Поведенческая разработка - это методология, которая была создана на основе TDD, но эволюционировала в процесс, который не касается только программистов и тестировщиков, а вместо этого касается всей команды и всех важных заинтересованных сторон, технические и нетехнические. BDD начал с нескольких простых вопросов, на которые TDD плохо отвечает: сколько тестов я должен написать? Что я должен на самом деле проверить - а что я не должен? Какие из тестов, которые я напишу, на самом деле будут важны для бизнеса или для общего качества продукта, а какие для меня просто чрезмерны?
Как видите, такие вопросы требуют сотрудничества между технологиями и бизнесом. Заинтересованные стороны бизнеса и эксперты в области часто могут сказать инженерам, какие тесты кажутся полезными, но только если они представляют собой высокоуровневые тесты, которые касаются важных бизнес-аспектов. BDD называет такие бизнес-тесты «примерами», например, «расскажите мне пример того, как эта функция должна работать правильно», и резервирует слово «тест» для низкоуровневых технических проверок, таких как проверка данных или интеграция API тестирования. Важная часть заключается в том, что хотя тесты могут создавать только программисты и тестировщики, примеры могут собирать и анализировать вся команда доставки - дизайнеры, аналитики и т. Д.
В предложении одно из лучших определений BDD, которое у меня есть , найденное до сих пор , заключается в том, что BDD - это «общение с экспертами в предметной области и использование примеров для получения общего понимания желаемого поведения и обнаружения неизвестные ». Часть открытия очень важна. По мере того, как группа доставки собирает все больше примеров, они начинают все больше понимать бизнес-область и, таким образом, уменьшают свою неопределенность в отношении некоторых аспектов продукта, с которым им приходится иметь дело. По мере того как неопределенность уменьшается, креативность и самостоятельность команды доставки возрастают. Например, теперь они могут начать предлагать свои собственные примеры, которые бизнес-пользователи не считали возможным из-за недостатка технических знаний.
Теперь беседы с экспертами по бизнесу и предметной области звучат великолепно, но мы все знаем, как это часто заканчивается на практике. Я начал свое путешествие с технологий как программист. Как программисты, нас учат писать код - алгоритмы, шаблоны проектирования, абстракции. Или, если вы дизайнер, вас учат проектировать - организовывать информацию и создавать красивые интерфейсы. Но когда мы получаем работу начального уровня, наши работодатели ожидают, что мы «обеспечим ценность для клиентов». И среди таких клиентов может быть, например ... банк. Но я почти ничего не знал о банковском деле - кроме как эффективно уменьшить остаток на моем счете. Поэтому я должен был бы каким-то образом перевести то, что от меня ожидается, в код ... Я должен был бы построить мост между банковским делом и моим техническим опытом, если я хочу предоставить какую-либо ценность. BDD помогает мне построить такой мост на устойчивой основе непрерывной связи между командой доставки и экспертами в области.
Узнать больше
Если вы хотите узнать больше о BДД, я написал книгу на эту тему. «Написание отличных спецификаций» исследует искусство анализа требований и поможет вам научиться создавать отличный процесс BDD и использовать примеры в качестве основной части этого процесса. В книге рассказывается о вездесущем языке, собирании примеров и создании так называемых исполняемых спецификаций (автоматических тестов) из примеров - методов, которые помогают командам BDD предоставлять отличное программное обеспечение в срок и в рамках бюджета.
Если вы заинтересованы в покупке «Написание отличных спецификаций» , вы можете сэкономить 39% с промо-кодом 39nicieja2 :)