此版本包括以下功能增强:
发布日期:2023 年 11 月 8 日
OpenAI 集成
- Parasoft Jtest 实现与 OpenAI 和 Azure OpenAI 的无缝集成,增强了测试能力。现在,您可以使用 OpenAI 或 Azure OpenAI 帐户针对静态分析违规生成修复建议,通过自然语言指令改进单元测试。这些特性能够帮助您高效解决静态分析违规或根据您的需求自定义测试场景。
- IDE 中的为 ... 生成修复建议操作使用生成式 AI 对报告的静态分析违规进行分析,结合相关代码提供 AI 生成的修复建议,以解决违规问题。详细信息,请参阅生成修复建议。
- 单元测试助手视图中的使用 AI 优化 [方法名] 操作允许向 OpenAI 提供者发送请求,根据用户提供的自然语言指令生成所选测试的更新或改进建议。详细信息,请参阅使用 AI 优化测试。
要使用该功能,必须先在 Parasoft 首选项中配置 OpenAI。请参阅配置 LLM 提供者设置。
单元测试助手功能增强
- 改进测试用例创建,对边界条件的考虑更加周到。
- 改进对原始类型数组初始化和 Optional 类方法调用的支持。
代码覆盖率功能增强
- 测试影响分析工作流程现已支持在基准报告中包含构建过程中收集的关于可覆盖代码行的元数据。在此之前,测试影响分析工作流程仅支持通过扫描应用程序二进制文件来收集此元数据的基准报告。
新增和更新的测试配置
添加对以下测试配置的支持,扩展 Security Compliance Pack:
- CWE 4.13
- CWE Top 25 2023
- CWE Top 25 + On the Cusp 2023
- OWASP API Security Top 10-2023
更新以下测试配置:
- DISA-ASD-STIG
- Thread Safe Programming
- UL 2900
删除以下测试配置:
- CWE 4.10
- CWE Top 25 + On the Cusp 2021
- CWE Top 25 2021
更新的静态分析规则
更新以下规则:
规则 ID | 更新 |
---|---|
SECURITY.WSC.AMA | 改进对 Cloneable 接口和 clone 方法的支持。 |
STRUTS.FWD | 针对缺失路径属性的用例增加额外的错误消息。 |
TRS.CIET | 修复“允许记录而无需重新抛出或重置状态”参数。 |
UC.UP | 附加“检查 lambda 表达式”参数,默认禁用。 |
优化以下 RuleWizard 规则的性能以及与 Java 17 语法的兼容性:
- CODSTA.BP.AULS
- CODSTA.OIM.CLONE
- CODSTA.OIM.CLONET
- EJB.LNL
- EJB.USF
- EXCEPT.AIOC
- EXCEPT.MTE
- EXCEPT.NCERR
- EXCEPT.TEFEC
- EXCEPT.TRY
- HIBERNATE.UNP
- OOP.PIFC
- PB.API.NDC
- PB.USC.RTE
- PORT.LNSP
- PORT.PEER
- SECURITY.BV.DSSM
- SECURITY.WSC.DCSM
- SECURITY.WSC.UMAIN
- TRS.AUTY
- TRS.NSM
- TRS.SOUF
- UC.AUL
- UC.BCMP
- UC.DIL
- UC.FMFC
- UC.VR
更新的流分析规则
更新以下规则:
规则 ID | 更新 |
---|---|
BD-PB-VOVR | 新增一个参数,报告分配给函数参数的未使用值。 新增一个参数,报告未使用和被覆盖的函数参数初始值。 |
IDE 支持
现已支持以下 IDE:
- IntelliJ 2023.2
- Eclipse 2023-06 (4.28)
- Eclipse 2023-09 (4.29)
其他更新
- 现已支持 Mac Silicon 芯片(M1/M2)。
- 现已支持在 IntelliJ 中显示多窗口。
- 改进使用 IntelliJ 新 UI 模式时的外观和体验,该模式首次在 IntelliJ 2022.3 中作为测试功能引入,在 IntelliJ 2023.2 中作为完整功能推出。
- 现在可以配置 Jtest 以 FIPS 兼容模式运行。 请参阅配置 FIPS 模式。
- 将附带的 JRE 升级至 11.0.21 版本。
- Visual Studio Code 用户现在可以将 Jtest 严重级别(1-5)映射到 VS Code 严重级别(错误/警告/信息/提示),并使用文本模式根据 Jtest 的严重级别过滤 VS Code 中的违规。
- 现已支持抑制下一行中的任务。请参阅下一行抑制。
- 现已支持 Gradle 8.x。
- 现已支持 Lombok 1.18.28 和 1.18.30。
- 现已支持自动将 jtestcli 和 Jtest 附带的 JRE 从隔离中移除,从而允许它们在 Mac OS 上执行。请参阅如何将 jtestcli 和 JRE 从隔离中移除以允许它们在 Mac OS 中执行?
解决的 Bug 和 FR
Bug/FR ID | 说明 |
---|---|
FA-9553 | 在大小未知的数组循环中未发现 BD.PB.ARRAY 违规 |
FA-9599 | 优化 BD-PB-CC 规则,使其在后处理违规时不会抛出描述的异常 |
FA-9642 | 基于对变量进行的复杂算术运算(例如 2 * x - x - x)的事实推导不准确 |
FA-9665 | BD-PB-CC 误报 |
JT-75551 | SECURITY.WSC.AMA 规则查询 |
JT-75562 | Jtest 覆盖率代理问题 |
JT-75581 | STRUTS.FWD 规则误报 |
UTA-7963 | 跟踪和做出断言功能生成错误的期望值 |
UTA-8055 | 未显式抛出异常时,不生成带有 RuntimeExceptions 的测试 |
UTA-8151 | [ IJ ] 对于具有嵌套模块的情况,会出现缺少依赖项弹出消息 |
UTA-8166 | 批量创建对话框中的文件选择数量错误 |
UTA-8244 | 即使用户有足够的令牌,批量创建对话框仍会阻止创建 |
UTA-8294 | 生成不增加覆盖率的额外测试 |
XT-41250 | 删除对 NetworkId 和基于网络标识符的许可证的支持 |
XT-41333 | 报告中的空文件被标记为未检查但已进行测试 |
XT-41729 | 日语环境中 CLI 生成的 PDF 报告不正确 |
弃用的规则
弃用规则 | 推荐规则 |
---|---|
BD-PB-POVR | BD-PB-VOVR |