首先,我没有关于parasoft .test或jtest经验的经验。我已经阅读了产品可以自动生成单元测试的数据表。
但我想知道自动生成的单元测试有多么有用。它确实不需要开发人员的任何其他努力吗?
欢迎任何经验分享。
非常感谢!
答案 0 :(得分:6)
我们最近使用JTest作为我们的产品。我们没有使用标准产品,我们使用了Eclipse插件。标准产品构建在OSGI框架上(阅读:它就像Eclipse),但您必须导入和创建项目。我们已经在使用Eclipse了,所以我们只需使用具有所有相同功能的插件即可。
虽然JTest可以为您做很多事情,但也有很多令人恼火的事情。例如,Jtest的静态分析工具是真正有价值的,恕我直言。它可以查找大量错误,并且具有非常好的报告系统。但是,虽然单元测试生成是可以的,但我认为我花了更多时间来修复和增强生成的测试,而不是我自己制作测试。管理Jtest也有点复杂和参与。
用于进行单元测试,存根对象,参数化单元测试等的内置机制没有很好地记录。至少,在我们使用该产品的两年里,我的小脑子无法很好地利用它们。但是,他们的许多非常棒的功能(如GUI跟踪,命令行界面,Bug侦探,报告系统等)都需要额外的,非常昂贵的许可证。
实际上,Jtest只是为您提供了一种简单的方法来管理静态和单元测试的执行。但它真的昂贵。我不敢相信他们每个许可证收取数千美元。你还会发现他们会想训练你,你几乎需要它,因为文档非常糟糕。这很奇怪,因为用户指南长达900页。
但这是一个很大的暗示:你可以免费做到这一点。如果我不得不这样做,我会努力使用这些产品(奇怪的是,外观和感觉非常类似于Jtest) http://code.google.com/javadevtools/codepro/doc/index.html
我不会让Jtest认为这将是一个可以添加到开发人员日常工作中的小东西。 Jtest可以成为一个巨大的时间和流程。
答案 1 :(得分:2)
Jtest是非常有用的。它生成它自己的测试用例,需要更多的努力来修复它们。我以不同的形式使用它。我删除了所有生成的不必要的测试用例。我创建了另一个创建数据库连接的文件并且设置了各种其他参数集。在配置之后,如果所有代码都准备就绪并且如果它没有准备就可以存储所需的方法,代码将无需模拟即可工作。
静态代码分析器很好(用于检查空指针异常) 检查代码约定非常好。 将自定义代码指南编写为用例并在代码上执行。
代码覆盖率。
测试时调试。
答案 2 :(得分:0)
自动生成的单元测试仍然需要开发人员来决定哪些结果是正确的,所以你必须坐下来完成工作。很多锅炉板代码当然是自动生成的,所以节省了很多时间。我没有太多使用它,但确实评估了早期雇主的jtest。如果我没记错的话,看起来像一个伟大的产品。 :)
答案 3 :(得分:0)
唉,永远不会有满足所有单元测试要求的银弹,但JTest& .Test(& C ++ Test for that matter)尽可能接近你。 Uggwar是正确的,开发人员仍然需要验证基本自动生成的测试的结果,但是还有更多的东西。
这些工具可以用来创建基本的回归测试,这些测试可以告诉你什么时候有变化,而不是它测试的是对还是错。您还可以跟踪正在运行的应用程序,然后生成JUnit / NUnit / CPPUnit测试,以重新创建应用程序中正在进行的操作。这些往往是更有用的测试,用作功能项的回归测试。
其他功能包括生成存根,使用电子表格作为数据源并提供对象存储库的功能。还有一段时间了......
试一试。