此版本包括以下功能增强:

发布日期: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}.keyreport.xml.param{n}.value 设置指定添加到 report.xml 头文件中的自定义参数。
  • 已重命名以下许可功能:
    旧名称新名称
    Unit Test Bulk CreationUnit Test Single Class Creation
    Unit Test Tier 1Unit Test Bulk Creation Tier 1
    Unit Test Tier 2Unit Test Bulk Creation Tier 2
    Unit Test Tier 3Unit Test Bulk Creation Tier 3
    Unit Test Tier 4Unit Test Bulk Creation Tier 4
     
    确保您的许可证设置中列出了正确的功能名称;请参阅 jtest.license.custom_edition_features
  • 更改以下支持格式的默认报告文件名:
    报告格式之前现在

    SARIF for Azure DevOps

    report.sarifreport_azure.sarif

    XSL 自定义

    report.htmlreport_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.DEREFBD.PB.CC
BD.PB.INTOVERFBD.PB.INTDL、BD.PB.INTUB、BD.PB.INTVC 和 BD.PB.INTWRAP
BD.PB.POVRBD.PB.VOVR

解决的 Bug 和 FR

Bug/FR ID

说明

JT-75934JtestCov 无法正确识别已修改的文件
JT-75937Lombok 集成和 Java
JT-76175误报 OWASP.2021.N5.NTERR
JT-76235如何修复 JAVA.SECURITY.IBA.DXXE 的代码

  • No labels