Какие шаги вы бы порекомендовали для перехода с TDD на BDD?

Если вы хотите переместить процесс разработки с разработки на основе тестов на разработку на основе поведения, какой путь вы бы приняли или порекомендовали?

С какими возможными проблемами вы можете столкнуться? Перемещение процесса разработки само по себе будет огромной задачей, поскольку меняется парадигма, происходит сдвиг в мыслительном процессе и меняется перспектива выполнения проекта.

Был ли у кого-нибудь реальный опыт того, чтобы этот сдвиг происходил плавно (хм ... может быть, не так гладко)?

Или кто-нибудь пытается сделать этот сдвиг?

Я понимаю, что это применимо не ко всему. Но что было бы логичным шагом, если кому-то нужно двигаться в этом направлении.

У меня есть только основная информация о BDD из следующего сообщения SO. Основные различия между TDD и BDD

Ключевые моменты, которые я ищу:

  • Какое обучение требуется для разработчиков?
  • Есть ли какие-либо существенные изменения в процессе SDLC?
  • Какие инструменты BDD вы рекомендуете (.net)?
  • Хорошие ресурсы BDD (.net)

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Что касается BDD Framework для .NET, я наткнулся на этот пост в SO Самая зрелая BDD Framework для .NET


person rajesh pillai    schedule 20.01.2009    source источник


Ответы (4)


Когда я начал смотреть на BDD, я исследовал все существующие фреймворки (для .net) и в итоге не использовал ни одну из них. Основная причина в том, что я чувствую, что сообщество еще не определилось с синтаксисом и передовыми практиками, поэтому вместо этого я продолжил использовать NUnit с базовым классом, основанным на сообщение в блоге Бена Шейрмана. Это сработало очень хорошо, потому что BDD - это не инструменты, а создание чистых и понятных тестов, что вполне возможно с помощью обычных инструментов, таких как nunit.

По сравнению с моими старыми модульными тестами новый стиль гораздо более читабелен и уделяет больше внимания именованию и поведению. Мы не так уж далеки от того, чтобы распечатать имена методов и обсудить с деловыми людьми систему.

Дополнительная литература Скотта Беллвэра: Behavior- Управляемая разработка

Экзамен теста:

public class WhenAddingLineItemToEmptyOrder : BDDBase
{
    Order order;

    [SetUp]
    public void Arrange()
    {
        order = new Order();
    }

    public void Act() // called by BDDBase
    {
        LintItem item = new LineItem();
        item.Quantity = 1;
        item.Price = 10;
        order.AddLineItem(item);
    }

    [Test]
    public void TotalPriceShouldBeUpdated()
    {
        Assert.AreEqual(10, order.TotalPrice);
    }

    [Test]
    public void OrderCanBeCheckedOut()
    {
        Assert.IsTrue(order.CanBeCheckedOut)
    }
}
person Dala    schedule 09.02.2009

Насколько я понимаю ... BDD - это новый взгляд на TDD. Это скорее мысленный сдвиг, чем новая технология.

Я хочу сказать, что технически вы можете использовать инструменты модульного тестирования для создания BDD.

person Allain Lalonde    schedule 20.01.2009
comment
На самом деле дело даже не в этом (то есть, ментальном сдвиге): это скорее терминологический сдвиг, чтобы привести терминологию в соответствие с реальной ментальной моделью. По сути, BDD был изобретен, когда несколько ведущих авторов поняли, что все их книги по TDD начинаются с главы. Эта книга не о тестировании ... - person Jörg W Mittag; 20.01.2009

Behavior Driven Development - это современный Agile-инструмент, который позволяет вашей компании переоценить ключевые компетенции разработчиков, чтобы найти лучшие способы коммуникации, увеличивая чередование видения управления, что даст вам возможность эффективно создавать ценность на принципиально новом уровне ваше внутреннее положение на рынке.
Смена мировоззрения с разработки через тестирование воплощает в себе смену парадигмы, включающую глубокий анализ рабочего процесса, постоянную обратную связь с помощью современных гибких методологий и пристальное внимание к основной матрице перехода сценария поведения.

person Community    schedule 20.01.2009

Вы можете послушать Hanselminutes Show № 146 - Разработка через тестирование - это дизайн - Последнее слово на TDD.

Самое интересное, что говорит Скотт Беллвар: «Разработка через тестирование - это дизайн».

Книга, которая заставила его "включиться": Разработка через тестирование в Microsoft® .NET (для разработчиков .NET: послушайте подкаст, чтобы узнать контекст)

person Grant Wagner    schedule 20.01.2009