您建议采取哪些步骤从 TDD 迁移到 BDD?

发布于 2024-07-12 08:00:56 字数 842 浏览 4 评论 0原文

如果您想将开发流程从测试驱动开发转移到行为驱动开发,该走什么路径你会接受或推荐吗?

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

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

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

我知道这可能不适用于所有情况。 但如果有人需要朝这个方向迈进,那么合乎逻辑的步骤是什么?

我仅从以下 SO 帖子中获得有关 BDD 的基本信息。 TDD 和 BDD 之间的主要区别

我正在寻找的是:

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

提前致谢。

编辑:

关于 .NET 的 BDD 框架,我在 SO 中看到了这篇文章 最成熟的 .NET BDD 框架

If you want to move your development process from Test-Driven Development to Behavior-Driven Development what path would you take or recommend?

What are the possible challenges that you might face? Moving the development process will be a huge task itself as the paradigm changes, a shift happens in the thought process and the outlook of project execution changes.

Did any one had a real experience in making this shift happens smoothly (hmm... may not be so smoothly)?

Or anyone trying to make this shift?

I understand this may not be applied to each and everything. But what would be the logical step in case if someone needs to move towards this.

I have only basic information about BDD from the following SO post.
Primary differnce between TDD and BDD

The key points I am looking for are:

  • What kind of developer training is needed?
  • Is there any significant changes in the SDLC process?
  • What are the BDD tools you recommend (.net) ?
  • Good BDD resources (.net)

Thanks in advance.

EDIT:

Regarding BDD Framework for .NET, I came across this post in SO
Most Mature BDD Framework for .NET

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

美男兮 2024-07-19 08:00:56

当我开始研究 BDD 时,我调查了所有的框架(针对 .net),但最终没有使用其中任何一个。 主要原因是我觉得社区还没有确定语法和最佳实践,所以我继续使用 NUnit 和基于 Ben Scheirman 的博客文章。 这非常有效,因为 BDD 与工具无关,而是使测试变得干净且易于理解,这对于像 nunit 这样的普通工具来说是完全可能的。

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

Scott Bellware 的一些补充阅读:行为驱动开发

测试示例:

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

When I started to look at BDD I investigated all the frameworks out there (for .net) and ended up using none of them. Main reason is I feel like the community hasn't settled on a syntax and best practises yet so instead I continued to use NUnit with a base class based on a blog post by Ben Scheirman. This worked out really well because BDD is not about the tooling but making the tests clean and understandable which is totally possible with normal tools like nunit.

Compared to my old unit tests the new style is much more readable and puts a lot more focus on naming and behavior. We're not that far from printing out the method names and have a discussion with the business people about the system.

Some additional reading by Scott Bellware: Behavior-Driven Development

Examle of a test:

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)
    }
}
白首有我共你 2024-07-19 08:00:56

据我了解...BDD 是一种看待 TDD 的新方式。 这更多的是一种精神上的转变,而不是一项新技术。

我的意思是说,从技术上讲,您可以使用单元测试工具来执行 BDD

As far as I understand... BDD is a new way of looking at TDD. It's more a mental shift than a new technology.

What I mean to say is that you could technically use Unit Testing Tools to do BDD

妄想挽回 2024-07-19 08:00:56

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

Behaviour Driven Development is a modern Agile Tool that enables your company to reasses the core competencies of the developers in order to find better ways of communication, increasing the interleaving of management vision, that will empower you to efficiently create value on a fundamentally new level of your intrinsic market position.
The mindset switch from Test Driven Development embodies a paradigm shift involving deep workflow analysis, constant feedback through state-of-the-art Agile methodologies, and careful attention to the underlying behaviour scenario transition matrix.

够运 2024-07-19 08:00:56

您可能想听一下 Hanselmillions Show # 146 - 测试驱动开发就是设计 - 最后的话关于 TDD

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

让他“兴奋”的书:Microsoft® .NE​​T 中的测试驱动开发(对于 .NET 开发人员,请收听播客了解上下文)

You may want to listen to Hanselminutes Show # 146 - Test Driven Development is Design - The Last Word on TDD.

Most interesting thing Scott Bellware says: "Test Driven Development is Design"

The book that made it "turn on" for him: Test-Driven Development in Microsoft® .NET (for .NET developers, listen to the podcast for context)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文