Bdd 使用SpecFlow作为主要需求管理工具

Bdd 使用SpecFlow作为主要需求管理工具,bdd,specflow,Bdd,Specflow,我们计划将其作为基于web的项目的主要需求工具。此应用程序有许多常见目标形式的变体。这些变化主要是应用程序服务的每个用户国家/地区(多租户) Q1。SpecFlow是满足这些要求的好选择吗? 我们已经发现每个表单中的字段数量相当大,其中许多字段需要验证。有些在客户端,有些在数据可用性或其他服务器端验证。这在似是而非的流程中是乏味的,尽管并非完全不可能。但这不是SpecFlow的设计目的(行为驱动,而不是以数据为中心) Q2。请建议我们应遵循哪些最佳实践来捕获SpecFlow中的要求以及 Q3。在

我们计划将其作为基于web的项目的主要需求工具。此应用程序有许多常见目标形式的变体。这些变化主要是应用程序服务的每个用户国家/地区(多租户)

Q1。SpecFlow是满足这些要求的好选择吗?

我们已经发现每个表单中的字段数量相当大,其中许多字段需要验证。有些在客户端,有些在数据可用性或其他服务器端验证。这在似是而非的流程中是乏味的,尽管并非完全不可能。但这不是SpecFlow的设计目的(行为驱动,而不是以数据为中心)

Q2。请建议我们应遵循哪些最佳实践来捕获SpecFlow中的要求以及


Q3。在哪些领域我们需要使用其他工具。(如果SpecFlow无法很好地捕获需求)

我看不出任何明显的原因可以解释为什么不能使用SpecFlow来实现这一点。只需注意以适当的高抽象级别编写规范


如果您发布了一个您认为乏味的示例,那么您可能会给出一些建议。

SpecFlow是的.Net实现,也被称为。Cucumber’s中描述了各种场景

Gherkin允许您内联或以以下方式指定表中的数据:

场景大纲:吃
因为有黄瓜
当我吃黄瓜的时候
那我应该吃黄瓜
示例:
|开始|吃|左|
|  12   |  5  |  7   |
|  20   |  5  |  15  |
使用表格可以帮助您以易于阅读的方式指定表单的字段


如果仍然无法管理,另一个选项是使用NUnit,它允许您指定多个测试用例并生成测试用例集。如果你想组合一个黄瓜库的测试用例,你可能需要考虑切换到每个场景的支持。

也检查同伴产品的“SPORLO”作为可视化这些需求的一种方式。

一个乏味的例子是填写长的个人信息表单,其中需要在多个字段上进行数据验证。如出生日期、身份号码(如护照)、邮政编码、具有相同形式的多人信息(如配偶信息)、某些表格中的付款信息必须与来自银行等的数据相匹配。这是一个公共服务办公室,这些表格由柜台的工作人员填写,数据输入的效率是关键。使用工厂生成这些表格共有的数据怎么样?在Ruby中,我们使用FactoryGirl,我确信有一个与.Net等价的东西。它不是为这个生成数据。更多内容是关于使用SpecFlow编写此应用程序的规范。这是涵盖所有需求的最佳工具,还是我们应该使用其他工具。对不起,您的问题太模糊,我无法给出具体建议。试着用SpecFlow样式写出一个示例场景,看看它看起来如何。把它贴在这里,如果可以的话,我会给你建议。
Scenario Outline: eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

Examples:
| start | eat | left |
|  12   |  5  |  7   |
|  20   |  5  |  15  |