Каковы первичные различия между TDD и BDD?

int** ary = new int[sizeY][sizeX]

должен быть:

int **ary = new int*[sizeY];
for(int i = 0; i < sizeY; ++i) {
    ary[i] = new int[sizeX];
}

, а затем очистить будет:

for(int i = 0; i < sizeY; ++i) {
    delete [] ary[i];
}
delete [] ary;

EDIT: как отметил Дитрих Эпп в комментариях, это не совсем легкое решение. Альтернативным подходом было бы использование одного большого блока памяти:

int *ary = new int[sizeX*sizeY];

// ary[i][j] is then rewritten as
ary[i*sizeY+j]
127
задан NotMyself 30 April 2012 в 09:01
поделиться

8 ответов

Я понимаю BDD, чтобы быть больше приблизительно [1 114] спецификация , чем [1 115] тестирование . Это связано с Доменным Управляемым Дизайном (разве, Вы не любите их *акронимы DD?).

Это связано с определенным способом записать пользовательские истории, включая высокоуровневые тесты. Пример Tom десять Thij:

Story: User logging in
  As a user
  I want to login with my details
  So that I can get access to the site

Scenario: User uses wrong password

  Given a username 'jdoe'
  And a password 'letmein'

  When the user logs in with username and password

  Then the login form should be shown again

(В его статье, Tom продолжает непосредственно выполнять эту тестовую спецификацию в Ruby.)

Папа Римский BDD Dan North . Вы найдете большое введение в его статья Introducing BDD .

Вы найдете сравнение BDD и TDD в этом видео . Также мнение о BDD как "TDD, сделанный правильно" Jeremy D. Miller

25 марта 2013 обновление

видео выше, отсутствовало некоторое время. Вот недавний Llewellyn Falco, , BDD по сравнению с TDD (объяснил) . Я нахожу его объяснение четким и к точке.

102
ответ дан 24 November 2019 в 00:47
поделиться

Поведение Управляемая Разработка, кажется, фокусируется больше на взаимодействии и коммуникации между Разработчиками и также между Разработчиками и тестерами.

Статья Википедии имеет объяснение:

управляемая Поведением разработка

Не практикующий BDD самостоятельно все же.

2
ответ дан 24 November 2019 в 00:47
поделиться

Мне кажется, что BDD является более широким объемом. Это почти подразумевает, что TDD используется, что BDD является методологией затрагивания, которая собирает информацию и требования для использования, amongh другие вещи, методы TDD для обеспечения быстрой обратной связи.

2
ответ дан 24 November 2019 в 00:47
поделиться

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

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

6
ответ дан 24 November 2019 в 00:47
поделиться

Кажется, существует два типа BDD.

первым является первоначальный стиль, который обсуждает Dan North и который вызвал создание платформ стиля xBehave. Мне этот стиль, прежде всего, применим для приемочных испытаний или спецификаций против объектов области.

второй стиль - то, что популяризированный Dave Astels и который, мне, новая форма TDD, который обладает некоторыми серьезными преимуществами. Это фокусируется на поведении вместо тестирования и также маленьких тестовых классов, пытаясь перейти к сути дела, где у Вас в основном есть одна строка на спецификацию (тест) метод. Этот стиль удовлетворяет всем уровням тестирования и может быть сделан с помощью любой существующей платформы поблочного тестирования, хотя более новые платформы (xSpec стиль) справка фокусируют одну поведение вместо тестирования.

существует также группа BDD, которую Вы могли бы найти полезным:

http://groups.google.com/group/behaviordrivendevelopment/

13
ответ дан 24 November 2019 в 00:47
поделиться

Мне главной разницей между BDD и TDD является фокус и формулировка. И слова важны для передачи Вашего намерения.

TDD направляет внимание на тестирование. И с тех пор в "старых тестах" мира водопада прибывает после реализации затем это мышление приводит к неправильному пониманию и поведению.

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

17
ответ дан 24 November 2019 в 00:47
поделиться

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

2
ответ дан 24 November 2019 в 00:47
поделиться

BDD в значительной степени является правильным TDD. Однако BDD предлагает дополнительную ценность. Вот ссылка на это:

BDD - это больше, чем «TDD сделано правильно»

1
ответ дан 24 November 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: