并排功能和验收测试(SpecFlow)

时间:2016-02-05 10:58:57

标签: testing bdd functional-testing specflow acceptance-testing

编辑:此问题似乎是related

这个问题与功能测试和验收测试之间的差异无关!我在网上找到的几乎所有信息都解释了它们之间的区别。我知道功能测试(FT)可以解决边缘条件和错误情况,而验收测试(AT)可以解决业务需求。我用SpecFlow实现了这两个目标。

从项目结构/层次结构的角度来看,我在围绕两者分离时遇到了一些麻烦。目前,我有一个单元测试项目,其中包含AcceptanceTests文件夹和FunctionalTests文件夹。我的所有步骤定义都混在StepDefinitions文件夹中。

我发现我不得不重复自己,当我在Traits上分组时,MsTest窗格会将所有内容混合在一起。我想确定行业标准是什么,所以我有五个问题:

  • 我是否会在AT和FT的单独功能文件中重复"In order to... as a... I want to..."故事?

  • 我是否也会在FT中重复所有AT场景,或者仅仅是边缘条件场景?

  • 我应该将AT和FT放在他们自己的名称空间和/或他们自己的项目中吗?

  • 我是否应该尝试从AT的步骤定义中调用FT的场景步骤方法,看看英国“金融时报”正在进行咕噜咕噜的工作?

  • 欢迎任何关于我当前设置的建议(例如,两者都做得过头了吗?)。

1 个答案:

答案 0 :(得分:1)

将SpecFlow功能作为两者并不过分。

验收测试非常有价值,但是它们需要大量的工作来编写和维护,并且需要很长时间才能运行,因此您希望在捕获所有重要用例的同时尽可能少地使用它们。

相反,使用单元测试工具(如NUnit)测试您的“边缘条件和错误情景”。

您可能会发现,对于给定的功能,您需要一个用户出错的方案,以便指定错误处理的工作方式。但是你肯定不希望每个特定错误的场景;相反,在验证码的单元测试中捕获它们。