Cucumber 一个文件中测试场景的最大/最佳数量

Cucumber 一个文件中测试场景的最大/最佳数量,cucumber,tdd,bdd,acceptance-testing,cucumber-java,Cucumber,Tdd,Bdd,Acceptance Testing,Cucumber Java,我有一个黄瓜功能文件超过66个场景!功能文件的标题确实代表了场景的全部内容 但是66步(200步)感觉像是一个相当大的数字。这是否表明我的专题标题太宽泛了 单个功能文件中最多应包含多少个场景(从最佳实践的角度来看) 提前感谢:)是的,对于单个文件来说,200是非常多的场景。很可能很难在文件中找到特定的场景,也很难将其组织起来。(多个较小的文件更容易组织;文件目录比带有注释的长文件或更糟糕的是一些未注释的排序方案更容易让人理解和维护。)运行文件也需要很长时间,这将使开发变得困难 更重要的是,单个功

我有一个黄瓜功能文件超过66个场景!功能文件的标题确实代表了场景的全部内容

但是66步(200步)感觉像是一个相当大的数字。这是否表明我的专题标题太宽泛了

单个功能文件中最多应包含多少个场景(从最佳实践的角度来看)


提前感谢:)

是的,对于单个文件来说,200是非常多的场景。很可能很难在文件中找到特定的场景,也很难将其组织起来。(多个较小的文件更容易组织;文件目录比带有注释的长文件或更糟糕的是一些未注释的排序方案更容易让人理解和维护。)运行文件也需要很长时间,这将使开发变得困难

更重要的是,单个功能的200个场景可能意味着该功能极其复杂或非常广泛。无论哪种情况,它都可能被分解为多个较小的功能文件。这也可能意味着场景太多了。对于某个变量的每个值可能都有一个场景(编写一个场景就足够了,不必担心不同的值),或者对于每个特性的每个细节都有一个场景(编写单元测试可能更好,对于细节来说,单元测试更小、更集中、更快)


但是,与任何关于代码大小的软件度量一样,可能存在一个典型的大小,但每个问题都是不同的。你的功能可能真的那么复杂。如果不了解域并查看功能文件,我们就不能这么说。

是的,对于单个文件来说,200是非常多的场景。很可能很难在文件中找到特定的场景,也很难将其组织起来。(多个较小的文件更容易组织;文件目录比带有注释的长文件或更糟糕的是一些未注释的排序方案更容易让人理解和维护。)运行文件也需要很长时间,这将使开发变得困难

更重要的是,单个功能的200个场景可能意味着该功能极其复杂或非常广泛。无论哪种情况,它都可能被分解为多个较小的功能文件。这也可能意味着场景太多了。对于某个变量的每个值可能都有一个场景(编写一个场景就足够了,不必担心不同的值),或者对于每个特性的每个细节都有一个场景(编写单元测试可能更好,对于细节来说,单元测试更小、更集中、更快)


但是,与任何关于代码大小的软件度量一样,可能存在一个典型的大小,但每个问题都是不同的。你的功能可能真的那么复杂。我们不能说不了解域和查看功能文件。

虽然我不知道您的系统和功能文件,但我可以肯定地说,对场景及其用途存在误解

场景的目的是通过示例对功能进行说明。通常,人们倾向于编写涵盖所有用例的场景。如果这样做,该功能将失去可读性

请记住,验收测试的编写和更改成本都很高。写下最基本的场景。如果有一个场景没有为理解该特性带来任何附加价值,那么该场景就不应该存在。将所有用例转移到较低级别的测试-单元测试中

在大多数情况下,该功能具有以单位表示的场景数,如果是复杂功能,则为十


编辑:如果场景数量接近10个,我宁愿将功能文件拆分为更多文件来描述功能的更深层部分。

虽然我不知道您的系统和功能文件,但我可以肯定地说,对场景及其用途存在误解

场景的目的是通过示例对功能进行说明。通常,人们倾向于编写涵盖所有用例的场景。如果这样做,该功能将失去可读性

请记住,验收测试的编写和更改成本都很高。写下最基本的场景。如果有一个场景没有为理解该特性带来任何附加价值,那么该场景就不应该存在。将所有用例转移到较低级别的测试-单元测试中

在大多数情况下,该功能具有以单位表示的场景数,如果是复杂功能,则为十


编辑:如果场景数量接近10,我宁愿将功能文件拆分为更多描述功能更深部分的文件。

这取决于具体情况。如果您有2000个包含100000个步骤的功能文件,那么它看起来很小。你应该考虑特征文件的相对大小,这取决于它。如果您有2000个包含100000个步骤的功能文件,那么它看起来很小。您应该考虑特征文件的相对大小。