使用SpecFlow或任何其他框架测试用户交互的所有可能排列

时间:2012-10-25 10:33:24

标签: c# .net tdd bdd specflow

我的设置如下:

  • 使用MVVM模式编写WPF客户端
  • 一组单元测试
  • 一套SpecFlow scenarious

在创建SpecFlow场景时,我首先绘制一个状态机图,以查看用户交互的所有可能排列以及从一个状态到另一个状态的要求。然后我创建了所有可能场景的列表。

例如:

  • 用户按是 - >上传文件 - >删除文档 - >点击 提交
  • 用户按是 - >上传文件 - > cliks提交
  • 用户按是 - >点击提交

这可以确保我们测试所有可能的场景,不要错过任何场景。然而,这是一个繁琐的过程,如果需求发生变化,它就会变得非常棘手。

我想知道是否有一个可以从状态机创建场景的框架,所以如果从状态机中删除该步骤,它会自动重新创建场景。

2 个答案:

答案 0 :(得分:7)

BDD场景工具通常用于启用,捕获和自动化开发团队与业务涉众之间的对话。你正在做的是测试。

我建议不要使用BDD工具,而是建立自己的工具,或在"测试框架下寻找其他人的工作。而不是在BDD和SpecFlow标签下。

BDD无法在详尽的测试中发挥作用。相反,它最适合用于说明应用程序行为的几个场景。这有助于开发人员确保他们了解业务问题,并证明他们的代码支持解决方案。

如果您使用BDD工具,您将开始发现您创建的方案很难维护。英语不能以与代码相同的方式重构。在单元测试(或更低级别的BDD工具 - I just use NUnit)下,您的状态机甚至可能会更好。

答案 1 :(得分:1)

如果您真的要从状态机生成测试用例,我建议您查看“基于模型的测试”工具。

在.NET世界中,规范资源管理器允许您这样做:SpecExplorer 2010