希望获得自动化测试工具(投票应该把好的工具带到顶部)
理想的工具将:
-
消除了为方法提供一组值的需要 .
-
采用交互式探索性测试等技术,其中检查代码以确定行使所有代码路径所需的值 . 即,方法的单元测试由代码的复杂性决定
例如,如果方法检查整数参数是123,则至少生成2个单元测试:一个是该参数为123,另一个是不是 .
对于Java,我的理解是这些是一些选项,但不是.NET
-
TestGen4J
-
AgitarOne
从微软研究院听说过Pex - For .NET,但这是非商业许可证
谢谢
3 回答
Pex支持参数化单元测试,并使用动态符号执行(某种自动探索性测试)来生成输入 . Pex可以理解MSIL的语义,即任何托管方法调用的语义 . 在'123'的例子中,Pex会找到两个测试 .
它允许开发人员编写参数化单元测试 - 因此它完全符合测试优先开发风格 .
对于商业软件,Pex需要MSDN许可证 . 更多信息,请致电http://research.microsoft.com/pex
一个pex开发人员:)
我以任何有意义的方式猜测方法调用的语义 . 有一篇非常好的文章关于这个here - 非常值得一读 .
另一个自动生成单元测试的好工具是Randoop .
Randoop适用于Java(http://mernst.github.io/randoop/)和.NET(https://github.com/abb-iss/Randoop.NET) .
Randoop在包括Sun和IBM的JDK以及核心Microsoft .NET组件在内的广泛使用的库中发现了以前未知的错误 .