在此版本中,我们专注于扩展 Jtest 的单元测试功能并增强安全合规性解决方案。

IDE 支持

新增对以下 IDE 的支持:

  • Eclipse 2019-06 (4.12)
  • Eclipse 2019-09 (4.13)

增强单元测试

支持 Junit 5

Jtest 现已支持 JUnit 5。您可以在桌面和命令行执行 JUnit 5 测试并收集覆盖率信息。此外,桌面版用户可以使用单元测试助手创建和增强 Junit 5 测试,以及在 Eclipse 或 IntelliJ IDEA 中执行测试影响分析。

新增的 JUnit 5 Best Practices 测试配置可帮助您处理同时包含 JUnit 4 和 JUnit 5 测试的项目,也可帮助您将测试从旧版框架迁移到 JUnit 5 中;请参阅内建测试配置。

与在旧版框架(如 Junit 3 或 JUnitParams 10.0.4)中创建的测试相关联的历史结果在 DTP 中可能不再可用。

扩展 Security Compliance Pack

增加对最新版通用弱点枚举(CWE)的支持。新增静态分析规则并扩展部分现有规则,实现对 CWE 3.4 的支持,包括 CWE Top 25 2019 和 On the Cusp 指南;请参阅下面的新增和更新的测试配置部分。

新增和更新的测试配置

添加以下测试配置:

  • CWE 3.4
  • CWE Top 25 2019
  • CWE Top 25 + On the Cusp 2019
  • JUnit 4 Best Practices

  • JUnit 5 Best Practices

TDD 测试配置已重命名为“TDD Best Practices”。

删除的测试配置

  • CWE 3.2
  • CWE-SANS Top 25 2011
  • CWE SANS Top 25 2011 + On the Cusp
  • Unit Test Assistant
  • Unit Testing Best Practices

其他变更

  • 添加 -project.jsonpath 选项。手动创建 .json 文件(使用 -project.* 选项)时,您可以通过配置此选项来自定义文件的默认名称和位置;请参阅创建自定义 .json 数据文件
  • 改变覆盖率数据文件的结构,增强静态和动态覆盖率的匹配机制。因此,Jtest 不再允许分析 Jtest 旧版本生成的覆盖率数据文件。要收集和合并覆盖率数据,需确保您的基础架构中所有 Jtest 实例的版本一致。 
  • License.network.enabled 选项重命名为 license.network.use.specified.server;请参阅设置许可证
  • 优化内存使用以提高性能。

新增和更新的静态分析规则

添加以下规则:

规则 ID标题
BD.SECURITY.TDCODE在用于生成代码的方法之前,验证可能受污染的数据
BD.SECURITY.TDSESSION不要在 HTTP 会话中存储不可信的数据

FORMAT.MCH

在每个源文件中包含有意义的文件头注释

JUNIT.AUL

避免在 JUnit 测试中使用循环

JUNIT.IGNORE

确保使用 @Ignore 的 JUnit 5 测试类使用

@ExtendWith(IgnoreCondition.class) 或者 @EnableJUnit4MigrationSupport 进行注解

JUNIT.RPL5

在将测试迁移到 JUnit 5 时不要使用 JUnit 4 注解

JUNIT.TDIR

不要在 JUnit 5 测试中使用 TemporaryFolder 规则

SECURITY.UEHL.DCEMSL

使用 Seam 日志 API 记录消息时,避免不可信的输入

SECURITY.WSC.BUSSB

防止外部进程阻塞输出或错误流

SECURITY.WSC.PBRTE

始终指定执行命令的绝对路径

SERIAL.VOBD

在反序列化之前验证对象

SPRING.DCSRFJAVA

不要禁用 CSRF 保护

SPRING.DCSRFXML

不要禁用 CSRF 保护

SPRING.REQMAP

确保使用 @RequestMapping 注解的方法指定

它们调用的 HTTP 请求方法

此外还添加了 NOMCIM 指标来计算方法中的方法调用次数。


更新以下静态分析规则以优化分析结果:

  • BD.SECURITY.TDFNAMES
  • CODSTA.BP.NTX
  • FORMAT.CBRACE
  • FORMAT.LL
  • GC.OSTM
  • GLOBAL.ACD
  • JUNIT.AEAT
  • JUNIT.ANAT
  • JUNIT.ANBA
  • JUNIT.ASAT
  • JUNIT.ASSERT
  • JUNIT.AST
  • JUNIT.CBA
  • JUNIT.DIR
  • JUNIT.ETCTA
  • JUNIT.FAIL
  • JUNIT.FICB
  • JUNIT.ISMTC
  • JUNIT.MAIN
  • JUNIT.OSIC
  • JUNIT.OSUM
  • JUNIT.OTDM
  • JUNIT.SIA
  • JUNIT.SIFN
  • JUNIT.TATC
  • JUNIT.TEST
  • JUNIT.UPJT
  • NAMING.NTEST
  • PB.TYPO.EB
  • SECURITY.WSC.ASAPI
  • SECURITY.WSC.DMDS
  • SECURITY.WSC.ICA
  • SECURITY.WSC.SL
  • SECURITY.WSC.STREP
  • TRS.ISTART
  • TRS.UCM

更改以下规则的严重等级:

  • SECURITY.WSC.ASAPI - 从严重度 5 提高至严重度 3

更新以下规则的输出消息,因此,与这些规则有关的 DTP 抑制可能不再可用:

  • BD.PB.CHECKRET
  • JUNIT.AEAT

  • JUNIT.ANAT

  • JUNIT.ASAT

  • JUNIT.FAIL
  • JUNIT.OSUM
  • JUNIT.OTDM
  • SECURITY.WSC.ASAPI
  • TRS.ISTART

解决的 Bug 和 FR

Bug/FR ID说明
JT-70763在 Jtest 10.x 中实现 FORMAT.MCH 规则的请求
JT-70857已弃用规则的文档
JT-71241审查报告不存在的退出码 137 的原因
JT-71244作为虚拟文件夹导入时未找到依赖项
JT-71273使用“Create separate module per source set”选项导入到 IntelliJ 的项目,测试范围为空
JT-71381预/后分析脚本启动失败时,Parasoft 控制台缺少问题详细信息
JT-71382Jtestcli.bat 通过 Eclipse Runner 执行时无法从 DTP 获取许可证
JT-71397扩展 FORMAT.LL 规则,使用与编辑器一致的方式处理制表符
JT-71592Project.location 路径不存在时出现错误消息
JT-71830GLOBAL.ACD 规则在 ACD.java 中发生 NumberFormatException 异常
JT-71831PB.EB 规则中出现 ArrayIndexOutOfBoundsException: 0
UTA-3956因命名冲突未能创建测试类
UTA-4459   Spring MVC 测试使用常量名称而不是值。
UTA-4511 不应模拟对 getClass 或 toString 的调用
UTA-4529 dumb 模式导致建议不稳定。
UTA-4529UTA 语法树不完全支持注解值。
UTA-4554测试用例创建期间反编译类出现性能问题。
XT-36609密码中的 £ 字符会阻止 Parasoft 工具连接到 DTP
XT-36611使用‘min’选项发布 sim-link 源代码失败
XT-36843尝试获取许可证时,使用 cpptestcli 的并发构建不等待超时
XT-36950从 XML Graphics Project 更新存在漏洞的库
XT-37358100% 成功通过测试时,报告中不会显示 100%

  • No labels