java代码审查工具_Java程序员常用的软件测试工具——Jtest进行单元测试实战全剖析...

Jtest 是 Parasoft 公司推出的一款针对 Java 语言的自动化代码优化和测试工具,它通过实现对 Java 应用程序的静态分析和单元测试,从而提高代码的可靠性以及 Java 软件开发测试团队的工作效率。

49087294fa564d68206f5ac04f0cada5.png

Jtest安装

Jtest目前支持多个IDE,例如Eclipse、IntelliJ、NetBeans,大家可以根据自己的使用需求进行选择。本文将以Eclipse为例,介绍这款优秀的Java代码优化及测试工具。

1、将Jtest安装包下载至本地,打开Eclipse,选择Help->Install New Software,如图1所示。

e36518ad98648051ed507fd763da72e6.png

图一

2、点击Add->Archive,选择Jtest安装包,如图2所示。

3、安装完成,重启Eclipse。

8e74ee0970786c3d5b3e2b6567e63ddb.png

图二

Jtest配置

1、在Eclipse中选择Window->Preferences

506742fec6bf786b86dc6e9c6a52cfa0.png

图三

2、选择Parasoft,可对以下内容进行相关配置,如图4所示。一般来说,License为必选项,配置完毕后方可使用,其他内容为可选项。其中,DTP是一个完整的软件开发管理平台,可以用来接收报告、审查任务、分配任务到Jtest。

9d05eadb8b9fae51be4e32acd8bdc5d9.png

图四

静态分析

静态代码分析是指不运行源程序,仅通过分析源程序的语法、结构、接口等来检查程序正确性,找出代码隐藏的缺陷之处。Jtest支持模式匹配分析、流分析、重复代码分析、度量指标分析四种分析模式。

1、选中Java文件,点击Parasoft->运行"Recommended Rules",如图5所示。

318cb2f637d7664f37deefc77e1ad587.png

图五

2、运行完成后,勾选生成报告,配置相关信息。报告自动在Eclipse窗口中打开,分析结果可在Findings窗口中查看,其他详细信息可查看Parasoft Jtest 报告,如图6所示。

67fb79231305b5454276345ba81e8b24.png

图6

3、Jtest 不仅支持基于其默认的代码检查配置进行静态代码检查,同时还支持用户定制代码检查配置甚至自定义编码规则,这一功能使得开发人员可以基于不同场景定制所需要的编码规范,如图7所示。

96bfb1047a51a9cedddab45875a0d54d.png

图7

4、右键选择Java文件,选择Jtest测试方式。运行完毕后,可在Coverage窗口中查看代码行覆盖率,左侧绿格为已覆盖的行,红格为未覆盖的行,如图7所示。

7c87ebb7fb4ac01739ebe18b898dc6e6.png

图8

单元测试

Jtest能够自动生成测试用例,对驱动程序进行单元测试,并且Jtest 在首次测试一个或一组类时自动保存所有的测试输入和设置,当需要执行回归测试时,只需选择测试项目,即可重复执行原有的测试用例。

1、在Java文件中双击类或方法名,Unit Test Assistant 将会显示可以对其进行的操作,如图8所示。点击相应按钮,为类或方法添加测试用例,填写完相关配置信息,则生成对应的Test文件。

22b2fb17df6a9daf24777f2f1bd76657.png

图9

2、Jtest支持参数化的单元测试用例,同上在Unit Test Assistant窗口中进行操作,可以根据需要修改生成的参数化测试用例默认值,如图9所示。

347f4e35d376c18e955f7d0f9600a1fe.png

图10

3、在Unit Test Assistant窗口中可运行自动生成的Test文件和ParameterizedTest文件,并在JUnit窗口中查看运行结果,在Coverage窗口中查看代码行覆盖率,如图10所示。

451ebb0f0e1434029552de5aee7f89a5.png

图11

4、此外,Unit Test Assistant可以为Spring 组件创建和执行标准Junit测试,也可以运行运用Spring测试框架的Spring集成测试。

总之,Jtest是一款优秀的Java代码优化及单元测试工具。对于开发人员,Jtest能够自动检查并纠正这些隐蔽且难以修复的编码错误,使得开发团队显著减少在逐行检查和调试代码上花费的时间。对于测试人员,通过结合单元测试和代码覆盖率,可以为测试人员的用例编写提供指导,一是保证测试用例全面,不会遗漏关键分支路径;二是保证不会编写大量冗余的测试用例,真正做到提高测试效率和测试质量。

我是一名从事了多年软件测试的老测试员,今年年初我花了一个月整理了一份最适合2020年学习的软件测试学习干货,可以送给每一位对软件测试感兴趣的小伙伴,想要获取的可以关注我的头条号并在后台私信我:【测试】,即可免费获取。