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



编辑:这个问题似乎相关

这个问题不是关于功能测试和验收测试之间的区别!我在网上能找到的几乎所有信息都解释了它们之间的区别。我知道功能测试(FT(解决边缘条件和错误场景,而验收测试(AT(解决业务需求。我用SpecFlow实现了这两点。

从项目结构/层次结构的角度来看,我很难理解两者的分离。目前,我有一个单元测试项目,其中包含一个AcceptanceTests文件夹和一个FunctionalTests文件夹。我所有的步骤定义都混杂在一个StepDefinitions文件夹中。

发现我不得不重复很多次,当我对特征进行分组时,MsTest 窗格只是将所有内容混合在一起。我想确定行业标准是什么,所以我有五个问题:

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

  • 我是否也在《金融时报》中重复所有 AT 的场景,还是只重复边缘条件场景?

  • 我应该将AT和FT保留在自己的命名空间和/或自己的项目中吗?

  • 我是否应该尝试从AT的步骤定义中调用FT的场景步骤方法,因为无论如何,FT正在完成繁重的工作?

  • 欢迎对我当前的设置提出任何建议(例如,两者兼而有之是否矫枉过正?

两者😉作为 SpecFlow 功能执行是矫枉过正的。

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

相反,请使用单元测试工具(如 NUnit(测试您的"边缘条件和错误场景"。

您可能会发现,对于给定的功能,您需要一个用户犯错误的单一方案,以便您指定错误处理的工作方式。但是您绝对不希望每个特定错误都有一个场景;相反,请在验证代码的单元测试中捕获这些内容。

最新更新