【问题标题】:What steps would you recommend to move from TDD to BDD?您建议从 TDD 迁移到 BDD 的步骤是什么?
【发布时间】:2010-10-02 12:30:53
【问题描述】:

如果您想将您的开发流程从测试驱动开发转移到Behavior-Driven Development,您会采取或推荐什么路径?

您可能面临哪些挑战?随着范式的变化、思维过程的转变和项目执行前景的变化,移动开发过程本身将是一项艰巨的任务。

有没有人有过让这种转变顺利进行的真实经验(嗯……可能不是那么顺利)?

或者任何人试图做出这种转变?

我了解这可能不适用于所有内容。但是,如果有人需要朝这个方向发展,那么合乎逻辑的步骤是什么。

我从下面的 SO 帖子中只有关于 BDD 的基本信息。 Primary differnce between TDD and BDD

我要找的重点是:

  • 需要什么样的开发人员培训?
  • SDLC 流程是否有任何重大变化?
  • 您推荐哪些 BDD 工具 (.net)?
  • 良好的 BDD 资源 (.net)

提前致谢。

编辑:

关于 .NET 的 BDD 框架,我在 SO 中看到了这篇文章 Most Mature BDD Framework for .NET

【问题讨论】:

    标签: unit-testing tdd bdd


    【解决方案1】:

    当我开始研究 BDD 时,我调查了所有框架(用于 .net),但最终没有使用它们。主要原因是我觉得社区还没有确定语法和最佳实践,所以我继续使用 NUnit 和基于 Ben Scheirman 的 blog post 的基类。这非常有效,因为 BDD 不是关于工具,而是使测试干净且易于理解,这对于像 nunit 这样的普通工具是完全可能的。

    与我的旧单元测试相比,新样式更具可读性,并且更加关注命名和行为。我们距离打印出方法名称并与业务人员讨论该系统不远了。

    Scott Bellware 的一些补充阅读:Behavior-Driven Development

    测试示例:

    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)
        }
    }
    

    【讨论】:

      【解决方案2】:

      据我了解... BDD 是一种看待 TDD 的新方式。与其说是新技术,不如说是一种心理转变。

      我的意思是你可以在技术上使用单元测试工具来做 BDD

      【讨论】:

      • 实际上甚至不是这样(即心理转变):它更多是术语转变,使术语与实际心理模型保持一致。 BDD 基本上是发明出来的,当时几位主要作者意识到他们所有的 TDD 书籍都以“这本书不是关于测试......”一章开头。
      【解决方案3】:

      行为驱动开发是一种现代敏捷工具,它使您的公司能够重新评估开发人员的核心能力,以便找到更好的沟通方式,增加管理愿景的交叉,从而使您能够从根本上有效地创造价值将您的内在市场地位提升到新的水平。
      测试驱动开发的思维方式转变体现了范式转变,包括深入的工作流分析、通过最先进的敏捷方法不断提供反馈,以及对底层行为场景转换矩阵的仔细关注。

      【讨论】:

        【解决方案4】:

        你可能想听Hanselminutes Show # 146 - Test Driven Development is Design - The Last Word on TDD

        Scott Bellware 说的最有趣的话:“测试驱动开发就是设计”

        让他“打开”它的书:Test-Driven Development in Microsoft® .NET(对于 .NET 开发人员,请收听播客了解上下文)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-08
          • 1970-01-01
          • 2018-10-15
          • 2021-03-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多