跳到主要内容

保存的文章

构建合适的软件......没错,这很容易,对吧?

艾萨克·霍格|LeadingAgile
艾萨克·霍格
读: 构建合适的软件......没错,这很容易,对吧?

我们鼓励我们的教练,以保持他们的眼睛在球的球队:提供到达一个定义的目标,从而提供尽可能以最高效的,可预见的和可靠的方式的价值利益相关者的产物。这种递送过程中经常包括帮助团队通过使用行为驱动开发(BDD)和测试驱动开发(TDD)完善企业内部的产品阐述和发展实践。而这样做,这是我的观察,有超过之间如何把重点放在建立合适的软件,并建立该软件的权利队的区别有点混乱。

看来,这个混乱的重要驱动力之一与在那里验收测试驱动开发(ATDD)装配到开发生命周期的事情。目前,BDD和ATDD既松散描述澄清过程对于一个给定的业务目标迭代或递增各地验收标准导致刚刚在时间方案或基于实例的规范。亚博vip9通道

如果我们澄清事情有点...?

也许我们可以减少周围通过重新定义了BDD和ATDD的具体含义和地点如下“建立正确的软件...权”的困惑:

- 形式化BDD的周围通过面向目标的行为或情形定义“正确”的产品的实践意义。

- 形式化ATDD的周围由行为连接到自动化的验收测试建立“正确”的产品的实践意义。

如何以下作为一个高层次的地图“建立正确的软件...权”:

(1)

与BDD开始明确目标,确定基于行为的情况下,这将成为面向场景的用户故事验收标准

(2)

然后,(这是重新定义)使用ATDD作为迭代的面向目标的路线图,其中交付团队将每个行为为一组可执行的步骤,或可执行的验收测试,使用的技术,如FitNesse的,黄瓜,或类似

(3)

最后使用TDD的红 - 绿 - 清洁周期,开发高品质的产品,所需要的功能,看的可执行验收测试通过的每一步

这种方法阐明了条件和提供的开发生命周期的BDD,ATDD和TDD中具有特定含义的地方。根据我的经验上面的图已经减少混乱围绕如何“建立正确的软件...权”。

让我知道你的想法。我很想听听你的想法和围绕着这样一个映射的担忧。

下一个>敏捷发布的直观证据

艾萨克是一个企业敏捷教练LeadingAgile。在加入LeadingAgile他在这两个产品管理和研发机构领导职位提供。

评论(3)

  1. janvanderhaegen
    回复

    嘿以撒,

    我个人觉得你是切割BDD短仅描述敏捷方法,忽略了技术方面,然后再补充与ATDD和TDD。

    By Dan North’s definition of BDD (“BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.”) you’ll notice that BDD in fact includes ATDD. (“High-automation”, “tested software”). Your definition seems minimize BDD to the outside-in pull-based agile methodology.

    我觉得会有用,说明ATDD是BDD的周期少了一个困惑。

    继续沿着这条道路,你在ATDD描述可执行步骤实际上单元测试(从技术POV)。Each step should be generating multiple unit tests by the way, for example a unit test on the domain model layer, a unit test on the integration layer, a unit test on the coded UI layer, … TDD’s Red-Green-Clean cycles are the obvious way to then go and implement the software… (This is the “multi-level / multiple-scale” aspect of BDD)

    我觉得会有用,说明TDD是BDD的下一个周期减少混乱。

    Eventually the point that I’m trying to make is that BDD is the whole thing: describing business problems from the POV of the stakeholders, write down these goals into scenarios (specification-by-example), make automated tests (multiple, on various scales) to verify each step, then Red-Green-Clean until tests prove the software (not just the code) works, do hallway testing / review meetings / …, deliver the software.

    许多企业对亚博vip9通道人削减技术方面的BDD短,正如许多开发商降价的相互作用/讨论周期的BDD短。(“只要给我的规格,所以我可以写这样的代码” ...)

    照顾自己,

    一月

    回复
    • 艾萨克·霍格
      回复

      嘿月,

      感谢您抽出时间来阅读后,也为您周到的答复。我完全同意你的观点BDD是整个事情,迭代通信开发和交付正确的产品过程达成一致。

      即使如此,而BDD是整个事情,它可能会或可能不会包括在ATDD同样的方式,ATDD可能会或可能不会包括TDD。例如,一些小组使用BDD来从高级产品目标派生行为而不使用ATDD那些行为(验收标准)蒸入一组自动验收测试。同样,一些球队提炼他们的验收标准,然后制定不使用TDD解决方案。

      所以,虽然也有其他的方法来“构建正确的软件,正确的”,我认为我们从具有图,包括正式与BDD与ATDD TDD受益。请让我知道你在想什么!

      此致
      -Isaac

      回复

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*