2015-10-08 3 views
1

Я новичок в тестировании, и я столкнулся с подходами TDD и BDD. Но я в замешательстве. Я не знаю, когда лучше использовать TDD вместо BDD и наоборот. Я столкнулся с некоторыми статьями, но они больше касаются различий ...Когда использовать TDD вместо BDD и наоборот

У меня есть несколько советов, но не уверен в их действительности.

1) Если я думаю, что я хотел бы реализовать хорошо известный java.lang.List то, какой подход использовать? В этом случае мне кажется, что TDD - лучший выбор ... Потому что это часть API/библиотеки, и только программист может ее использовать, а не пользователь. Несмотря на то, что я могу себе представить, что я мог бы использовать BDD тоже, как:

История: Programmer adds an element to the list

Рассказ может быть что-то вроде: As a programmer I want to add an element to the list [so that ...]

Сценарий 1: Adding null to the list + заданной, когда, затем

Сценарий 2: Adding valid element to the list + данный, когда, затем

Сценарий 3: ...

2) Но если представить себе, что я хотел бы реализовать некоторые GUI, то мне кажется, что BDD это лучший выбор ... Потому что это то, что пользователь может контролировать (нажмите на кнопку, заполните поля и т. д.). TDD в этом случае мне не подходит как хороший выбор ...

Далее, могу ли я смешать их вместе? Я прочитал, что BDD включает в себя TDD на самом деле, но в этом случае я имею в виду, что это нормально использовать BOTH-подходы в проекте (например: TDD для API и BDD для GUI), или я должен выбрать только один подход.

Кроме того, я очень признателен, если вы разместите здесь некоторые ссылки, что помогли вам лучше понять тестирование в целом ...

Вы можете опубликовать некоторую GUIDE/подсказку, что вы используете для принятия решения ...

ответ

4

TDD и BDD используются для разных целей, поэтому их можно использовать вместе. BDD гарантирует, что истории пользователей, предоставленные владельцем/бизнес-аналитиком продукта, и TDD гарантируют, что код (может быть многочисленным классам), необходимый для работы BDD-тестов, имеет высокое качество.

+0

Благодарим за отзыв. И что шаг за шагом использовать их вместе? Должен ли я сначала написать тесты поведения, а затем проверить методы (add(), remove(), ...)? Или сначала тесты для методов, затем тесты поведения или другим способом? – brolinko

+0

Сначала тест BDD, затем модульные тесты при выполнении TDD. Поэтому, если вы новичок в BDD и TDD, я предлагаю начать с TDD и получить опыт написания модульных тестов. –

+0

Хорошо, если вы прочтете интересные статьи/ы, и у вас есть ссылка на него, можете отправить его здесь, пожалуйста? Спасибо ... – brolinko