从运行时分析生成测试

时间:2009-05-06 08:47:46

标签: c# .net unit-testing nunit parasoft

我们有大量遗留代码,其中有几部分计划用于重构或替换。我们希望优化当前对用户体验产生影响的部件,促进计划中新产品的重复使用,并希望也能提高可维护性。

我们对现有产品进行了相当好/全面的功能测试。这些是自动和手动驱动的GUI测试的混合,但它们可以让开发人员超过半天完全运行。 “低级域逻辑”具有良好的单元测试(NUnit),具有良好的覆盖范围。不幸的是,代码的其余部分没有单元测试(或者至少没有值得单元测试)。

我想找到的是一个工具,可以根据它们在功能中的用途和行为自动为特定方法/类特定接口生成单元测试试验。这些单元测试对于重构是非常宝贵的,并且也将作为C.I.的一部分运行。系统可以比当前发生的更早地检测回归(并且比“按钮X不起作用”更好地本地化回归。)。

是否存在任何此类工具?你对我有什么建议吗?

我遇到Parasoft .TEST,看起来它可能想要我想要的。 对于我的情况,您对此有何评论?

我不认为只是通过静态分析生成测试代码ala NStub的东西在这里很有用。我认为这实际上是代表性测试数据的生成非常重要。

请忽略自动测试生成的优点或缺点 - 这不是我通常所倡导的。 (尤其是因为你得到了破坏代码的测试!)

2 个答案:

答案 0 :(得分:2)

尝试Pex

  

从Visual Studio代码编辑器中,Pex可以找到方法的有趣输入输出值,您可以将其保存为具有高代码覆盖率的小型测试套件。 Pex执行系统分析,寻找边界条件,异常和断言失败,您可以立即调试。 Pex支持参数化单元测试,这是单元测试的扩展,可降低测试维护成本。

答案 1 :(得分:0)

好吧,你可以看一下PEX - 但我相信发明了自己的数据(它没有看你现有的测试,AFAIK)。

相关问题