Какие шаги вы бы порекомендовали перейти с TDD на BDD? - PullRequest
9 голосов
/ 20 января 2009

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

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

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

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

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

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

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

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

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

EDIT:

Что касается BDD Framework для .NET, я наткнулся на этот пост в SO Наиболее зрелый BDD Framework для .NET

Ответы [ 4 ]

5 голосов
/ 09 февраля 2009

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

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

Некоторое дополнительное чтение Скоттом Беллваром: Разработка, управляемая поведением

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

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)
    }
}
3 голосов
/ 20 января 2009

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

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

0 голосов
/ 20 января 2009

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

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

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

0 голосов
/ 20 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...