Страницы

Поиск по вопросам

четверг, 5 декабря 2019 г.

Что такое BDD в чём его отличия от TDD?

#тестирование #терминология


Что такое BDD  и в чём его отличия от TDD?
    


Ответы

Ответ 1



BDD - behaviour-driven development - это разработка, основанная на описании поведения. То есть, есть специальный человек(или люди) который пишет описания вида "я как пользователь хочу когда нажали кнопку пуск тогда показывалось меню как на картинке". (там есть специально выделенные ключевые слова). Программисты давно написали специальные тулы (например, cucumber), которые подобные описания переводят в тесты (иногда совсем прозрачно для программиста). А дальше классическая разработка с тестами. В чем преимущество BDD? тесты читаемые для не программистов. их легко изменять. Они часто пишутся почти на чистом английском. их теперь может писать product owner или другие заинтересованные лица. результаты выполнения тестов более "человечные". тесты не зависят от целевого языка программирования. Миграция на другой язык сильно упрощается. (слово тесты выделено не случайно, потому что теперь тесты это и описания, и непосредственно их реализация.)

Ответ 2



BDD фреймворки увеличивают время разработки тестов, так как добавляются новые зависимости усложняют поддержку тестов, так как теперь больше уровней абстракций, которые нужно поддерживать никакие бизнес аналитики не могут писать BDD тесты потому что во-первых они просто не будут этого делать а во-вторых нельзя просто написать в свободной форме на английском тест и все заработает. Нужно строго соблюдать синтаксис и надо знать все кейворды и в каком порядке они будут работать. И надо замаппить actions на эти кейворды на каком-то ЯП Таким образом все преимущества продвигаемые BDD фреимворками как-то написание тестов на естественном языке не техническими людьми в реальности не применимы.

Ответ 3



Прошу сильно не минусовать, ниже - шутка: BDD - bug-driven development, разработка на багах. Когда придумана новая фича, делается декомпозиция, и сразу на тестирование. Тесты не проходят (ведь никто еще ничего не реализовывал), и заводится баги. Команда начинает фиксить баги, закрывая функционал.

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

Отправить комментарий