此版本包括以下功能增强:
发布日期:2022 年 5 月 11 日
OpenID Connect 支持
现在您可以通过 OpenID Connect 在 DTP 上进行身份验证,从而增加与 DTP 服务器进行交互的安全性。详细信息,请参阅在 UI 中配置 OpenID Connect 和在 .properties 文件中配置 OpenID Connect。根据您的需求,命令行中可以通过两种方法在 OpenID Connect 服务器上进行身份验证:设备代码和证书。默认情况下启用设备代码验证。
Docker Hub 中的 Jtest 容器镜像
您可以从 Docker Hub 下载能够直接使用的 Jtest 容器镜像:https://hub.docker.com/r/parasoft/jtest。另请参阅在 Docker 容器中部署 Jtest。
单元测试助手功能增强
支持 Mockito 3 和 4
新增对 Mockito 3 和 4 的支持。
使用 Mockito 进行静态方法和构造函数模拟
现已支持使用 Mockito 代替 PowerMock 进行静态方法和构造函数模拟,以便批量创建。对于已使用 PowerMock 的测试,仍然支持与静态方法和构造函数模拟相关的建议和快速修复。如果要在 2022.1 版本前创建的使用 PowerMock 的项目中启用静态方法和构造函数模拟以进行批量创建,则需要重新配置测试。有关更新 PowerMock 测试和将 PowerMock 测试转换为 Mockito 测试的详细信息,请参阅使用 mockito-inline 运行 PowerMock 时测试失败该怎么办?。有关 Mockito 不支持的情况,请参阅 Mockito 静态方法和构造函数模拟的局限性。
单元测试批量创建增强
- 批量创建期间生成的测试用例现在涵盖异常块。
- 我们优化了批量创建,移除不能提供额外覆盖率或不能编译的测试用例。
其他功能增强
- 改进为数值对象和空类型创建的断言。
支持并行构建
Jtest 现已支持收集 Maven 和 Gradle 并行构建的测试覆盖率。详细信息,请参阅使用 Maven 进行测试和分析以及使用 Gradle 进行测试和分析。
IDE 支持
新增对以下 IDE 的支持:
- IntelliJ 2021.2
- IntelliJ 2021.3
- Eclipse 2021-12 (4.22)
- Eclipse 2022-03 (4.23)
扩展 Security Compliance Pack
扩展 Security Compliance Pack,添加对 CWE 最新版本的支持,并更新部分配置。请参阅新增和更新的测试配置部分。
新增和更新的测试配置
添加以下测试配置:
- CWE 4.6
更新以下测试配置:
- OWASP Top 10-2021
- CERT
- DISA ASD STIG
更新的静态分析规则
更新以下规则:
- BEAN.SERIALIZABLE
- CODSTA.READ.CID
- EJB.AMSC
- EJB.MNDF
- EXCEPT.NCNPE
- EXCEPT.NTNPE
- FORMAT.FCN
- FORMAT.TC
- GC.FCF
- GC.FM
- GC.NCF
- INIT.LV
- INTER.COS
- INTER.CTLC
- JAVADOC.TSMJT
- JAVADOC.VMCR
- NAMING.IRB
- NAMING.USF
- OOP.MFP
- PB.API.OF
- PB.API.REP
- PB.CLOSE
- PB.NUM.BBDCC
- PORT.EXEC
- PORT.NATV
- SECURITY.EAB.CMP
- SECURITY.ESD.TFP
- SECURITY.IBA.AEAF
- SECURITY.IBA.ATF
- SECURITY.IBA.CSVFV
- SECURITY.IBA.UPS
- SECURITY.WSC.CLONE
- SECURITY.WSC.RDM
- SECURITY.WSC.SER
- SECURITY.WSC.SRD
- SECURITY.WSC.SSM
- SECURITY.WSC.USC
- SERIAL.FT
- SERIAL.ROWO
- SERIAL.SROS
- SERVLET.SOP
- SERVLET.UCO
- TRS.ANF
- TRS.AUTG
- TRS.NSYN
- TRS.THRD
- TRS.TSHL
- TRS.UCM
- TRS.UWNA
- UC.EF
- UC.SNE
更新的流分析规则
更新以下规则:
- BD.EXCEPT.AN
- BD.EXCEPT.NP
- BD.EXCEPT.NR
- BD.PB.CC
- BD.PB.NP
- BD.PB.STRNULL
- BD.PB.VOVR
- BD.SECURITY.TDALLOC
- BD.SECURITY.TDLOG
- BD.TRS.DIFCS
优化以下规则的违规消息,因此,DTP 中与这些规则有关的抑制可能不再可用:
- BD.SECURITY.CUSTOM
- BD.SECURITY.SENS
- BD.SECURITY.TDALLOC
- BD.SECURITY.TDCMD
- BD.SECURITY.TDCODE
- BD.SECURITY.TDDIG
- BD.SECURITY.TDENV
- BD.SECURITY.TDFILES
- BD.SECURITY.TDFNAMES
- BD.SECURITY.TDINPUT
- BD.SECURITY.TDJXPATH
- BD.SECURITY.TDLDAP
- BD.SECURITY.TDLIB
- BD.SECURITY.TDLOG
- BD.SECURITY.TDNET
- BD.SECURITY.TDPASSWD
- BD.SECURITY.TDRESP
- BD.SECURITY.TDRFL
- BD.SECURITY.TDSESSION
- BD.SECURITY.TDSQL
- BD.SECURITY.TDXML
- BD.SECURITY.TDXPATH
- BD.SECURITY.TDXSS
此外,BD.PB.ARRAYINP 规则的 ID 已更改为:BD.SECURITY.ARRAY。
其他功能增强
- 新增对 Gradle 7.3 和 7.4 的支持。
- 新增对 Lombok 1.18.22 的支持。
- 现已支持 IPv6。
- 改进使用 Maven 和 Gradle 插件依赖创建本地 Maven 资源库的方法。
- 改进 Jtest 运行包含流分析规则的测试配置时的性能。
- 提高源代码包含编译器生成的代码或类初始化代码情况下的流分析规则准确性。
- 现在,您可以为 Jtest 报告指定自定义名称。请参阅 report.file.name。
- 解决 log4j 漏洞(此版本使用 log4j 2.17.2)。
其他变更
- 弃用对 JUnit 3 的支持,并将在以后的版本中删除。
- 升级到 2022.1 版本可能会导致 Windows 和 Linux 上的机器码发生变化。在向 Parasoft 申请新的许可证之前,请验证您的机器码。请参阅获取机器码。
- 对流分析引擎的总体优化会使流分析 2022.1 报告的违规与之前的版本相比存在一些差异。
- 更改 JUnit 5 测试 ID 的格式,以支持功能增强的 UTA,并实现不同版本 Junit 之间测试 ID 的兼容性。这可能会导致存储在 DTP 上的某些数据无效。
- TFS SDK 库现已不再作为 Parasoft 的一部分提供。如果希望在您的机器上使用 TFS 支持,您需要向供应商获取 TFS SDK。
删除的环境支持
删除的 IDE 支持
删除对以下 IDE 的支持:
- IntelliJ 2017-2019
- Eclipse 4.4
- Eclipse 4.5
- Eclipse 4.6
- Eclipse 4.7
解决的 Bug 和 FR
Bug/FR ID | 说明 |
---|---|
FA-8531 | 优化 BD-PB-VOVR 规则的文档 |
FA-8696 | 优化 BD-TRS-DIFCS 规则的文档 |
FA-8739 | BD.PB.ARRAY 误报 |
FA-8824 | BD.SECURITY.TDALLOC 可能漏报 |
JT-73698 | 执行分析时能否跳过 Lombok 自动生成的代码? |
JT-74319 | 如何修复 PB.CLOSE 的违规 |
UTA-7116 | 创建参数化测试用例时不生成 CSV 输入 |
XT-39405 | 在 Java 15 以上版本的 Eclipse 2021-09 中,受影响的单元测试视图未填充数据 |
XT-39435 | 当密码包含“ ”空格字符时,无法获取许可证 |
XT-39530 | 使用 SSL 的 Perforce 上存在 scontrol 设置问题 |
XT-39839 | 如何使用 scope.path.accept.regexp 和 scope.path.reject.regexp |