此版本包括以下功能增强:
发布日期:2024 年 5 月 29 日
升级注意事项
- 为 Jtest 2024.1 授权需要使用 DTP 或 License Server 2024.1。升级至 Jtest 2024.1 之前,您必须升级为 DTP 或 License Server 2024.1 才能成功授权该产品。
- 与 DTP 和 License Server 的连接必须通过 HTTPS 建立。已不再支持 HTTP。
测试影响分析功能增强
- 现在,您可以启用持续发现和执行受影响测试的功能。Jtest 将自动通知您测试失败情况以及正在开发的已覆盖代码的变更;请参阅测试影响分析。
- Jtest 的试验影响分析能力变得更加准确。受影响的测试现在会根据修改的方法而不是修改的类进行计算。此外,不影响代码逻辑的代码变更不再会导致测试被视为受影响测试。
- 现在可以基于更广泛的方法计算受影响的测试,以确定修改过的代码,包括通过分析在 IDE 中进行的本地修改以及 Git 提交历史来确定修改的方法。有关配置的详细信息,请参阅测试影响分析。
单元测试助手功能增强
- Jtest 引入测试模板,您可以使用测试模板控制测试类的结构,以指定特定测试所需的通用配置。您可以为测试类和测试方法单独配置模板。模板可以在单元测试助手首选项中配置;请参阅配置首选项。
- 为修改的方法创建测试的功能经过扩展,除了 IDE 中的本地修改,还支持通过分析 Git 提交历史来确定修改过的方法。有关配置的详细信息,请参阅创建测试套件。
- 现已支持 Junit 5 中的 @Timeout 注解。
OpenAI 集成
- 通过 OpenAI 集成增强针对流分析违规的建议。
- OpenAI 响应现在可以翻译成中文或日文;请参阅使用 AI 优化测试。
代码覆盖率功能增强
- 优化对多用户模式应用覆盖率中线程跟踪的支持。
- 优化在 IDE 中收集覆盖率的性能。现在,您可以在执行受影响测试的时候监控覆盖率。
Android Kotlin 支持
- Jtest 现已支持在 Android Kotlin 项目中执行测试和收集覆盖率。
- Jtest 测试影响分析功能还对 Android Kotlin 测试的命令行执行提供实验性支持。
支持 Java 21
现已支持 Java 21:
- Jtest 现已支持分析和测试 Java 21 或更低版本的代码。
- 可以为 Java 21 或更低版本的代码创建单元测试。
Security Compliance Pack 功能增强
现已支持 CWE 4.14 版本并更新部分配置。请参阅新增和更新的测试配置部分。
静态分析功能增强
新增和更新的测试配置
添加对以下测试配置的支持,以扩展 Security Compliance Pack:
- CWE 4.14
更新以下测试配置:
- CWE Top 25 2022
- CWE Top 25 2023
- CWE Top 25 + On the Cusp 2022
- CWE Top 25 + On the Cusp 2023
- Critical Rules
- Flow Analysis Fast
- Flow Analysis Standard
- Flow Analysis Aggressive
- OWASP ASVS 4.0.3
- UL 2900
- VVSG 2.0
删除以下测试配置:
- CWE 4.13
更新的静态分析规则
更新以下规则:
规则 ID | 更新 |
---|---|
CODSTA.BP.PCF | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.CIOC | 此规则已更新为支持 JUnit 21 语法。 |
CODSTA.DINT | 此规则已更新为支持 JUnit 21 语法。 |
CODSTA.EPC.CLNC | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.OIM.CLONE2 | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.ORG.AMOC | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.ORG.DCI | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.ORG.UNDPN | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.POD.SMC | 此规则已更新为支持 JUnit 21 语法。 |
CODSTA.READ.CCB | 此规则已更新为支持 JUnit 21 语法。 |
CODSTA.READ.NSI | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.READ.PCTOR | 优化性能以及与 Java 17 语法的兼容性。 |
CODSTA.READ.UATS | 此规则已更新为支持 JUnit 21 语法。 |
EJB.CDP | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.CNDA | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.CNDF | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.CRTE | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.MDBC | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.NFDC | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.NFS | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.PCRTE | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.RILH | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.RT | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.RTC | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.RTP | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.THISARG | 优化性能以及与 Java 17 语法的兼容性。 |
EJB.THISRET | 优化性能以及与 Java 17 语法的兼容性。 |
EXCEPT.AIOC | 此规则已更新为支持 JUnit 21 语法。 |
EXCEPT.NTERR | 修复误报 OWASP.2021.N5.NTERR。 |
FORMAT.APAREN | 此规则已更新为支持 JUnit 21 语法。 |
FORMAT.CBRACE | 此规则已更新为支持 JUnit 21 语法。 |
FORMAT.FCB | 此规则已更新为支持 JUnit 21 语法。 |
FORMAT.OSPL | 此规则已更新为支持 JUnit 21 语法。 |
FORMAT.SAP | 此规则已更新为支持 JUnit 21 语法。 |
GC.AUTP | 优化性能以及与 Java 17 语法的兼容性。 |
GC.DUD | 优化性能以及与 Java 17 语法的兼容性。 |
GC.GC | 优化性能以及与 Java 17 语法的兼容性。 |
GC.GCB | 优化性能以及与 Java 17 语法的兼容性。 |
HIBERNATE.CAR | 优化性能以及与 Java 17 语法的兼容性。 |
HIBERNATE.UGNQ | 优化性能以及与 Java 17 语法的兼容性。 |
INIT.NFS | 优化性能以及与 Java 17 语法的兼容性。 |
INIT.SICUI | 优化性能以及与 Java 17 语法的兼容性。 |
JAVADOC.BT | 此规则已更新为支持 JUnit 21 语法。 |
JAVADOC.ECTT | 此规则已更新为支持 JUnit 21 语法。 |
JAVADOC.MISFORMAT | 此规则已更新为支持 JUnit 21 语法。 |
JDBC.DSLV | 优化性能以及与 Java 17 语法的兼容性。 |
JDBC.SCSF | 优化性能以及与 Java 17 语法的兼容性。 |
JDBC.UDS | 优化性能以及与 Java 17 语法的兼容性。 |
JUNIT.CSUPER | 优化性能以及与 Java 17 语法的兼容性。 |
JUNIT.ISMTC | 优化性能以及与 Java 17 语法的兼容性。 |
JUNIT.TCWNT | 优化性能以及与 Java 17 语法的兼容性。 |
NAMING.IFV | 优化性能以及与 Java 17 语法的兼容性。 |
NAMING.RPKG | 优化性能以及与 Java 17 语法的兼容性。 |
OOP.ACECC | 优化性能以及与 Java 17 语法的兼容性。 |
OOP.INSOF | 此规则已更新为支持 JUnit 21 语法。 |
OPT.ACDO | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.AGC | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.DIC | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.IRB | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.NCIO | 此规则已更新为支持 JUnit 21 语法。 |
OPT.NSF | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.SI | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.UEQ | 优化性能以及与 Java 17 语法的兼容性。 |
OPT.UISO | 此规则已更新为支持 JUnit 21 语法。 |
PB.API.DNCSS | 优化性能以及与 Java 17 语法的兼容性。 |
PB.API.KOEH | 修复了字符串类型键的错误。 |
PB.API.SBCC | 优化性能以及与 Java 17 语法的兼容性。 |
PB.API.URL | 优化性能以及与 Java 17 语法的兼容性。 |
PB.CUB.MAIN | 优化性能以及与 Java 17 语法的兼容性。 |
PB.EQLC | 此规则已更新为支持 JUnit 21 语法。 |
PB.LOGIC.JI | 优化性能以及与 Java 17 语法的兼容性。 |
PB.NAECS | 此规则已更新为支持 JUnit 21 语法。 |
PB.NUM.IMOF | 优化性能以及与 Java 17 语法的兼容性。 |
PB.OCSF | 优化性能以及与 Java 17 语法的兼容性。 |
PB.PDCL | 此规则已更新为支持 JUnit 21 语法。 |
PB.PDS | 此规则已更新为支持 JUnit 21 语法。 |
PB.TYPO.UOL | 优化性能以及与 Java 17 语法的兼容性。 |
PB.USC.AES | 优化性能以及与 Java 17 语法的兼容性。 |
PB.USC.FCBS | 修复使用 map compute 而不是 put 时报告的任务错误。 |
PB.USC.UNARY | 优化性能以及与 Java 17 语法的兼容性。 |
PROPS.BSPV | 优化性能以及与 Java 17 语法的兼容性。 |
SECURITY.IBA.DXXE | 修复误报。 |
SECURITY.WSC.AUIC | 优化性能以及与 Java 17 语法的兼容性。 |
SECURITY.WSC.CL | 优化性能以及与 Java 17 语法的兼容性。 |
SECURITY.WSC.CLI | 优化性能以及与 Java 17 语法的兼容性。 |
SECURITY.WSC.DSER | 优化性能以及与 Java 17 语法的兼容性。 |
SECURITY.WSC.SL | 优化性能以及与 Java 17 语法的兼容性。 |
SERIAL.ENNAC | 优化性能以及与 Java 17 语法的兼容性。 |
SERIAL.MRWD | 优化性能以及与 Java 17 语法的兼容性。 |
SERVLET.AJDBC | 优化性能以及与 Java 17 语法的兼容性。 |
SERVLET.BINS | 优化性能以及与 Java 17 语法的兼容性。 |
SERVLET.IF | 优化性能以及与 Java 17 语法的兼容性。 |
SERVLET.STM | 优化性能以及与 Java 17 语法的兼容性。 |
TRS.IMSE | 优化性能以及与 Java 17 语法的兼容性。 |
UC.AURCO | 修复针对 Map.computeIfAbsent() 的误报。 |
UC.EF | 此规则已更新为支持 JUnit 21 语法。 |
更新的流分析规则
更新以下规则:
规则 ID | 更新 |
---|---|
BD.PB.CC | 添加一个用于报告非分支条件的参数。 |
BD.PB.SBONE | 更新规则,以涵盖 StringBuffer 和 StringBuilder 类的新方法。 |
IDE 支持
现已支持以下 IDE:
- IntelliJ 2023.3
- IntelliJ 2024.1
- Eclipse 2023-12 (4.30)
- Eclipse 2024-03 (4.31)
其他更新
- 现在,连接独立版 License Server 时,可以启用身份验证(如果配置为要求进行身份验证);请参阅设置 Parasoft 许可证以及 license.network.auth.enabled。
- 现已支持 Lombok 1.18.32。
- 现在可以使用 report.xml.param{n}.key 和 report.xml.param{n}.value 设置指定添加到 report.xml 头文件中的自定义参数。
- 已重命名以下许可功能:
旧名称 新名称 Unit Test Bulk Creation Unit Test Single Class Creation Unit Test Tier 1 Unit Test Bulk Creation Tier 1 Unit Test Tier 2 Unit Test Bulk Creation Tier 2 Unit Test Tier 3 Unit Test Bulk Creation Tier 3 Unit Test Tier 4 Unit Test Bulk Creation Tier 4
确保您的许可证设置中列出了正确的功能名称;请参阅 jtest.license.custom_edition_features。 - 更改以下支持格式的默认报告文件名:
报告格式 之前 现在 SARIF for Azure DevOps
report.sarif report_azure.sarif XSL 自定义
report.html report_custom.html
详细信息,请参阅报告文件名。
已知局限性
不应依赖为 CDD 和度量指标规则以及. properties 和 .xml 文件生成的 AI 建议,因为这些建议有可能不准确。请参阅生成修复建议。
删除的支持
删除的 IDE 支持
删除对以下 IDE 的支持:
- IntelliJ 2020.1 - 2021.3
- Eclipse 4.8 - 4.22
因此,在 IDE 中运行 Jtest 或作为构建系统集成的一部分时需要 Java 11。不再兼容 Java 1.8。
删除规则
删除规则 | 推荐规则 |
---|---|
BD.PB.DEREF | BD.PB.CC |
BD.PB.INTOVERF | BD.PB.INTDL、BD.PB.INTUB、BD.PB.INTVC 和 BD.PB.INTWRAP |
BD.PB.POVR | BD.PB.VOVR |
解决的 Bug 和 FR
Bug/FR ID | 说明 |
---|---|
JT-75934 | JtestCov 无法正确识别已修改的文件 |
JT-75937 | Lombok 集成和 Java |
JT-76175 | 误报 OWASP.2021.N5.NTERR |
JT-76235 | 如何修复 JAVA.SECURITY.IBA.DXXE 的代码 |