|
下面是一家外国媒体对Jtest8.0的评论,特别称赞Jtest8.0的BugDetective新增功能,请参考:
(原文请见:http://www.infoworld.com/article/06/10/06/41TCjtest_1.html)
Jtest继续向代码测试领域的霸主地位迈进
――Parasoft Java测试工具8.0版本展示其优秀的BugDetective分析功能
Parasoft继续发布其最新版本的Jtest Java测试套装以猎杀劣质的Java代码。而且Jtest知道,劣质Java代码的定义也在不断扩展:一个代码都会因为开发人员没有遵从最优方法而成为劣质的代码,使得其他程序员很难理解和与之协调。而另一个代码会因为其结构太差,过于复杂而变为劣质代码,因为它执行的时候崩溃了。还有一些代码可以会因为其编写不符合安全规则,很容易被黑客攻击而沦为劣质代码之列。
我使用过以前Jtest的两个版本:Jtest 7.0和Jtest 5.0,而在8.0的版本中,Jtest提升和扩展了几个已有的特色。比如,Jtest 7.0的静态分析引擎,自带500条规则来定位问题和编码冲突。而Jtest 8.0静态分析组件则更是自带有700多条这种规则。
新的规则涵盖了Java5规格和Hibernate,你依然可以自定义你自己的规则,尽管我发现Jtest使用的精细的语法规则会使用处理起来变得复杂一点点。一方面,用于定义规则的语言可以让你覆盖更多的偶然情况,另一方面,这种语言的丰富性可以让你学到很多东西。
Jtest的静态分析方法与得到了一些修改,使之成了一种静/动态混合分析工具。特别地,新的BugDetective模块检测代码和类文件(不需要执行代码),探测执行路径,并发现那些一般要运行很长时间测试才能被发现的潜在bug. BugDetective的执行探测不仅限于一个方法,一个类,或一个包;它可以穿越所有的逻辑界限。另外,当它发现一个问题时,它不只是定位问题发生的地方,而且还会识别问题的根源所在,这样就能找出系统的劣质代码所在。
BugDective还会定位潜在的空指针异常、资源泄漏(如忘了关闭一个开放的接口)和许多安全问题。在最近一次的例子中,大部分的BugDetective安全规则都定位到了易攻击的代码脆弱性。
Jtest7的测试用例Sniffer技术在Jtest8中变作了一个新的名字:Tracer. Tracer深入一个应用程序并收集其执行的信息。根据这些信息,Tracer然后创建一个测试主机还对应用程序进行测试。
大多数测试都是根据JUnit来创建的,但Jtest还增加了对Cactus的支持。
其他的改进也有明显的体现。比如,过去Jtest版本都是在类级别上生成测试。现在你可以设置测试生成过滤器,可生成,比如说,只对public方法而忽略private和protected方法的测试。
如果Jtest连接到一个版本控制系统,测试还能得到更方便的控制。那样你就可以只测试那些从哪天以来改动过的代码,并对新生成的测试代码进行严格控制。
BugDetective可能是Jtest8.0的一个最好的新增功能。它能够被最大可能地(如果你有时间)配置来探测程序的执行路径。默认探测深度是设置成100个连续执行行,但这个数字可以被调得更大。在这个处理器丰富的时代,放一批的机器来作整夜测试是完全容易实现的,好好地探测你的代码,或许还会发现那些你根本就意想不到严重问题。这就是Jtest最闪亮的地方之一。 |
|