【问题标题】:Generating tests from run-time analysis从运行时分析生成测试
【发布时间】:2009-05-06 08:47:46
【问题描述】:

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

我们对现有产品进行了非常好的/全面的功能测试。这些是自动化和手动驱动的 GUI 测试的混合体,但开发人员可能需要半天以上的时间才能完全运行。 “低级域逻辑”有一套很好的单元测试(NUnit),覆盖率很好。不幸的是,代码的其余部分没有单元测试(或者,至少没有有价值的单元测试)。

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

有这样的工具吗?你对我有什么建议吗?

我遇到过Parasoft .TEST,看起来它可能确实想要我想要的。 关于我的情况,您对此有什么意见吗?

我不认为仅仅从静态分析生成测试代码的东西,ala NStub,在这里有用。我想实际上真正重要的是生成具有代表性的测试数据。

请忽略自动测试生成的优点或不足 - 我通常不提倡这样做。 (尤其是因为您获得了通过错误代码的测试!)

【问题讨论】:

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


    【解决方案1】:

    试试Pex

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

    【讨论】:

      【解决方案2】:

      好吧,你可以看看 PEX - 但我相信它会发明自己的数据(它不关注你现有的测试,AFAIK)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-29
        相关资源
        最近更新 更多