Home 关于 BDD 的一些总结与想法
Post
Cancel

关于 BDD 的一些总结与想法

BDD 是个方法论

一开始,我认为 BDD = Gherkin + TDD ,即一种自动化测试方法。但有篇文章(BDD 就是测试吗? )告诉我:这个想法是错的。文章作者认为 BDD 包含测试阶段,但它的核心并不是自动化测试,测试只是个手段,BDD 最重要的部分是各角色(测试,开发,产品等)在讨论需求(协作)阶段用各种方法来明确需求,避免遗漏。

如果从鹅厂的研发模式来看,所谓的“协作”阶段,大约等于我们的需求宣讲。所不同的是我们的需求宣讲过于随意而无定法,输入是产品人员自身的文档(tapd)+ 宣讲过程中的各角色讨论。而 BDD 在这方面有什么不同?BDD 提供了些工具用来进行细致地讨论,并且其输出是可执行的 Gherkin 验收标准。而鹅厂的输出可能是 TAPD + 一些修改意见。表格对比

  鹅厂 BDD
输入 产品需求 + 会议讨论 产品需求 + 会议讨论 + 一些实用的工具
输出 更正后需求 更正后的需求
可自动执行验收标准    

关于 BDD ,有很多怀疑者,也有不少革新实践者

既然是个方法论,那就必然是个不断演化更新的事物。与 BDD 理念相近的实践有很多,正在读的书

第一本有中文版,第二本的内容简介:

从 BDD 的沟通技能开始,演示如何分析需求以避免开发出不合需求的软件。 并确保你的每一行代码都和项目目标相关。而当建立了这种协作形式后,你将会学习如何使用自动验收标准来指导并监控开发过程,并通过学习 BDD 原则写出更可维护的代码。2020版本会添加 devops 相关的内容。

对一个不断更新的事物,读书看文章,明确知道他的日期非常重要。因为即使作者,也可能几个月后就对之前的想法推翻重来。所以,我们的实践需要独立思考,分析。

实践?

按 BDD 的标准,如果要实施,可能并不是不可行,但这协作阶段,需要让所有开发,测试,产品践行一种新的讨论方式,并同在产出中添加一种新的内容,是个不小的挑战。

关于实践推广,这篇文章给了些反例:10 easy ways to fail at BDD。按他的建议及目前团队的情况,也许可以这样做:

  1. 不把其他角色卷进来,协作阶段,按这篇英文文章-2011(中文摘译)给的的方法来输出 Gherkin 示例。
  2. 从一个独立项目开始
This post is licensed under CC BY 4.0 by the author.