当前位置:文档之家› Java静态分析Java代码检查

Java静态分析Java代码检查

Jtest —Java静态分析、Java代码检查、Java单元测试和Java运行时错误监测
——自动实现JAVA的单元测试和代码标准校验
∙迅速可靠地修改已有代码
∙控制开发成本和进度
∙优化开发资源
∙迅速掌握前沿技术带来优势的同时控制相应的风险
∙对于Java代码质量和可读性具备直观可视化效果
利用Parasoft Jtest自动识别并且预防在整个项目开发周期中Java程序的错误
Parasoft Jtest是为Java EE, SOA, Web以及其他Java应用程序的开发团队量身定做的一款全面测试Java程序的工具。

无论是编写高质量的代码还是在不破坏原有代码既有功能的前提下延长其生命周期,Jtest都能提供一个经实践证明有效的方法以保证代码按照预期运行。

Jtest使开发团队能够迅速可靠地修改代码,优化开发资源并且控制项目开发成本和进度。

自动查找隐蔽的运行缺陷
BugDetective是一种新的静态分析技术,它能够查找出隐藏在代码中的那些导致运行缺陷和造成程序不稳定的错误。

而这些错误往往是人工调试和检测起来耗时且难以发现的,有的甚至只有在程序实际应用中才会暴露出来,这就大幅增加了修复这些错误的成本。

BugDetective能通过自动追踪和仿真执行路径来找出这些错误,即使是包含在不同方法和类之间,和(或)包内含有众多顺序调用的复杂程序。

BugDetective 能诊断以及修复传统静态分析和单元测试容易遗漏的错误。

在程序开发周期中尽早发现这些错误能节省诊断时间,从而避免可能出现的重复工作。

自动代码检测
Jtest的静态代码分析能自动检测代码是否符合超过800条的程序编码规范和任意数量的用户定制的编码规则,帮助开发者避免出现这些隐蔽且难以修复的编码错误。

静态代码分析还能帮助用户预防一些特殊
用法的错误,提高安全性,增加代码的可读性和可维护性,并且将适合重构的代码定位。

静态代码分析能够自动解决大多数编码问题,从而迅速地进行代码优化。

静态代码自动分析排除了在同行代码走查(Peer Code Re-view)过程中逐行检查的必要性,使开发者更加注重于软件核心价值,比如检查设计、算法或实现方法等。

Jtest的代码走查模块能够自动化同等代码走查过程,增加了开发者的参与性与交流。

这就使代码走查的效率得到大幅提升,这对软件开发者而言(尤其是那些分布式团队)是非常关键的。

对代码进行自动结合人工的检查能够保证代码质量,使得QA能够集中于更高级别的检验,缩短面市时间以及增加项目的可预测性。

单元,组件以及应用级上检查并且捕捉代码行为
程序开发者和QA通过Jtest不仅能够建立应用于不同级代码正确性和可靠性的测试套件(Test Suite),还能为用于回归测试的基础版本捕捉代码行为。

开发者可以对Java代码的方法和类进行即时的独立调试以便尽早发现错误。

为了方便开发者进行初始测试,Jtest自动生成可扩展的,高覆盖率的Junit测试套件来发现可靠性上的问题,从而避免在常规回归测试中诱发严重的问题。

一旦Java EE的类被配置到了本地服务器上,Jtest就为这些类自动生成Cactus测试用例,在用户的真实Java容器里,执行这些测试用例。

对这些复杂且难以测试的Java EE应用程序(运行在PC或服务器)进行独立测试,使得一般只能在QA或更后期阶段才会暴露出的缺陷在早期就被发现,从而降低了修复难度和成本。

通过对应用程序实时配置的监视,Jtest Tracer能捕捉实际功能测试的行为从而进一步扩展回归测试用例。

只需要使用程序的GUI或是测试客户端(如Parasoft SOAtest for SOA/Web services或Parasoft WebKing for Web application)来执行想要验证的用例Jtest Tracer 就能从Junit测试用例中捕捉住这些操作。

如果测试用例中的相关功能损坏了,这些相应的测试就会失败。

自动为常规回归测试建立底层测试框架
总的来讲,这些测试用例构成了一个健壮的回归测试套件,自动在初期发现缺陷并且判断其对相应代码的修改是否会破坏既有功能。

这样的回归测试套件对于开发者迅速可靠地更改代码是相当有帮助的,尤其是针对设计复杂并需要不断升级维护的程序而言更为重要。

无论开发团队的代码库是否经过测试,或只经过很少的测试,Jtest都能迅速为其生成健壮的,低噪声的回归测试套件。

自动为常规回归测试建立底层测试框架
总的来讲,这些测试用例构成了一个健壮的回归测试套件,自动在初期发现缺陷并且判断其对相应代码的修改是否会破坏既有功能。

这样的回归测试套件对于开发者迅速可靠地更改代码是相当有帮助的,尤
其是针对设计复杂并需要不断升级维护的程序而言更为重要。

无论开发团队的代码库是否经过测试,或只经过很少的测试,Jtest都能迅速为其生成健壮的,低噪声的回归测试套件。

将Jtest加入到团队的工作流程框架中
Jtest支持部署全团队的测试标准,并提供可持续的工作流来将最佳实践无缝集成入团队现有流程中。

项目架构师首先可以自定义开发团队的测试配置,而后Parasoft的Team Configuration Manager(TCM)可以自动地对开发团队每个成员的Jtest进行相应配置。

开发者可以直接使用IDE来查找和修复这些问题,避免将这些问题传递到源码控制系统中。

其次,Jtest服务器每天定时检测整个项目的代码,并且将所发现的问题通过Email发送给团队经理和相关的负责人。

开发者能够将这些结果直接导入到IDE中来查找代码中的错误。

Jtest服务器还能将这些消息发送到Parasoft Group Reporting System(GRS),GRS通过收集和分析Jtest或是其它测试工具的数据,并按类别整理到项目质量和状态的概要数据中,然后分别提供给项目经理,架构师,开发者和测试者以供参考。

优点
∙迅速可靠地修改已有代码——无论开发团队有大量未经过测试的代码或是一些简单的测试,使用Jtest可以迅速地建立一个回归安全性网络。

∙控制开发成本和进度——在开发过程中能够尽早地发现错误从而大副降低开发成本和缩短开发时间。

对可能的用户路径进行广泛的测试,避免推迟软件发布时间或在软件发布后加入补丁。

∙优化开发资源——自动诊断大约80%的编码问题使得开发者能够减少在逐行检查和调试代码上花费的时间,从而使开发者的精力集中在设计,算法和实现上。

∙迅速掌握前沿技术带来优势的同时控制相应的风险——降低复杂的企业级应用程序的调试难度(如SOA/Web服务程序和Java EE的应用)。

∙对于Java代码质量和可读性具备直观可视化效果——通过对代码质量和预期目标的控制使用户从整体上把握开发进度。

功能
∙自动生成敏感的低噪声回归测试套件
∙自动发现可能会跨越方法、类或者包的运行缺陷
∙捕捉配置代码运行的真实行为以生成Junit测试用例
∙生成可扩展的Junit和Cactus测试用例来定位可靠性和代码行为方面的问题
∙执行测试套件以定位回归测试和未预见到的副作用
∙自动生成敏感的低噪声回归测试套件
∙用分支覆盖率来监控测试覆盖率以达到高覆盖率
∙在测试运行时定位内存泄漏
∙检查代码是否符合超过800多条的内建规则,包括100条安全性规则
∙对违反250条规则的代码进行快速纠正
∙可以通过图形工具或者提供一个含有违反相应规则的示例代码来修改参数从而定制用户自定义规则∙支持Struts, Spring, Hibernate, EJBs, JSPs, Servlets
∙可完整集成于Eclipse, RAD, JBuilder
∙可于InterlliJ IDEA和Oracle JDeveloper部分集成(导入结果)
∙可与大多数主流的源码控制系统完整集成
∙自动同行代码走查过程(包括准备,提示和导航)
∙在团队内部或是组织内部共享测试设置
∙生成HTML和XML报告
∙提供GUI(交互)和命令行(批处理)两种模式
系统需求
操作系统
∙Windows: Windows 2000, XP, 2003或Vista,7
∙Linux: Red Hat 9.0, Fedora Core 1-3或更高,Red Hat E.L. 2,3,4 ∙Solaris: Solaris 8,9,10
硬件配置
∙Intel Pentium III 1.0 GHz或更高(推荐)
∙UltraSPARC processor 1.0 GHz或更高(推荐)
∙最低1GB RAM; 推荐2GB RAM
∙Sun Microsystems JRE 1.3或更高(32位)
IDE (仅支持插件)
∙Eclipse 3.3-3.0, IBM Rational Application Developer 6.0-7.0, JBuilder 2007。

相关主题