我正在考虑如何构建验收测试的两种不同方法。我们有一个调用服务层的Silverlight项目(我拥有双方)。由于Silverlight的方式,调用Silverlight程序集的测试代码必须与其他非Silverlight测试位于一个单独的测试项目中。
1)采用我们提出的所有验收标准并将它们放入要素文件中。使用标记标记方案以指定它们将在其中运行的环境(@server,@ client等)。在功能文件中也包括手动测试,并使用@manual标签对其进行标记。
优点: 所有由BA编写的测试都将在一个地方供他们查看和编辑
缺点: 使用单元测试或集成测试来测试某些场景可能更有意义,而NUnit可能比SpecFlow更好的工具
2)为所有内容编写验收标准,然后在SpecFlow中自动执行一些标准,一些使用单元测试,一些使用集成测试等。只有SpecFlow自动方案将在SpecFlow中。我们可能会在功能文件中放置经过单元测试,集成测试或手动测试的方案,但这些方案实际上不会运行任何代码,它们只是用于文档目的。
优点: 减少开发人员的摩擦和开销。我们将使用我们为每次测试提供的最佳工具自动执行不同的测试。
缺点: 我们必须将SpecFlow未运行的场景与任何自动化的代码保持同步。
思考?还有另一种我没想到的方式吗?你是怎么做到的?
答案 0 :(得分:0)
我认为从测试的角度来看,你有两个不同的项目。
理论上,您的服务可以通过Silverlight应用程序以外的其他方式调用。它可能是一个HTML5应用程序,一些用Java编写的其他MVC容器等等。所以我会编写方案/规格/你自己为服务做什么。
同样,您拥有可以与模拟服务层交互的Silverlight应用程序。这将是您的NUnit等。然后您将在SpecFlow / Cucumber中进行额外的验收测试,这将是“集成”测试,显示整个应用程序将如何对用户起作用。
答案 1 :(得分:0)
您可能会有更多的运气将此类问题发布到the programmers site,因为这是一个概念性讨论而非特定的技术性查询。