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

StackOverflow https://stackoverflow.com/questions/462401

  •  19-08-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

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

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

Заранее благодарю.

Редактировать:

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

Это было полезно?

Решение

Когда я начал изучать 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)
    }
}

Другие советы

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

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

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

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

Самая интересная вещь, о которой говорит Скотт Беллуэр:"Разработка, основанная на тестировании, - это дизайн"

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top