在此版本中,我们专注于优化桌面版使用体验,添加大量新功能并改进现有功能: 
在桌面版中自定义规则和测试配置此版本针对在桌面版中自定义静态分析做了大幅改进。我们引入了一个基于浏览器的界面,允许根据组织的开发策略,在本地修改和保存代码分析规则和测试配置。请参阅自定义静态分析规则和创建自定义测试配置。 此外,您现在可以配置 Jtest 应用本地或 DTP 中存储的规则映射。 在 IDE 中执行基于变更的测试现在,您可以轻松识别和运行受本地修改代码影响的测试,无需运行大量未受变更影响的测试。这有助于优化测试工作,加快测试执行过程。请参阅测试影响分析。 在 IntelliJ IDEA 中收集单元测试覆盖率扩展对 IntelliJ IDEA 中运行的单元测试收集覆盖率信息的支持。请参阅在 IntelliJ IDEA 中收集单元测试覆盖率。 单元测试助手功能增强IntelliJ IDEA 支持现已支持在 IntelliJ IDEA 中使用单元测试助手的功能。 检测未覆盖的代码现在,您可以配置 UTA 识别未覆盖的代码。这有助于针对未覆盖的代码行创建测试,增加整体的代码覆盖率。请参阅未覆盖的代码。 克隆测试用例新增克隆现有测试方法的功能,提升测试创建过程的效率。克隆测试选项用于快速复制现有测试方法,并根据需要修改克隆的测试。请参阅创建基本单元测试。 IDE 支持- 支持 IntelliJ 2018.1
- 删除对过时 IDE 的支持。
其他变更- 使用 DTP 功能和工作流程需要 DTP 5.4.0。
- 在 DTP 上标记“不显示”优先级的任务不再模拟抑制,应转换为真实抑制;请参阅 DTP 5.4.0 发布说明。
- 现已弃用 Maven、Gradle 和 Ant 的
instrument 目标/任务。使用 agent 目标/任务收集覆盖率信息。 - 改进合并覆盖率信息的范例,可增加您的覆盖率结果。
新增和更新的测试配置添加以下内建测试配置: 删除已过时标准的测试配置: - 过时的 OWASP Top 10 测试配置(2007、2010、2013)
- 过时的 JDK 配置(JDK 1.5 和 7 中的新功能)
- CWE-SANS Top 25 2009
- DISA-STIG for Java
- Juliet 1.1 2011
- SAMATE NIST 2010
优化 GLOBAL 规则,可帮助您更高效地解决潜在缺陷。精确度的提高可能会影响性能。 新增代码分析规则添加以下规则: 规则 ID | 标题 |
---|
BD.API.ARGWRITE | 请勿依赖 write() 方法输出 0 到 255 范围之外的整数 | BD.PB.MULBUF | 请勿在单字节或字符流上创建多个缓冲包装器 | BD.PB.VREADOBJ | 请勿在 readObject() 中调用可重写方法 | BD.SECURITY.FPEXC | 检查浮点输入是否有异常值 | BD.SECURITY.LOG | 避免将未经验证的二进制数据传递给日志方法 | BD.TRS.INSTLOCK | 请勿使用实例锁来保护共享静态数据 | CODSTA.ORG.ASSERT | 不要在生产代码中使用断言 | PB.IKICO | 确保比较操作中使用的键是不可变的 | TRS.ISTART | 不要直接在 Thread 类实例上调用 'start()' 方法 | TRS.SGC | 不要在 'getClass' 方法返回的类对象上进行同步 | TRS.SOBC | 如果可以访问支持集合,则不要在集合视图上进行同步 |
更新代码分析规则- BD.PB.VOVR
BD.TRS.ORDER - OPT.USCL
FORMAT.U2B GLOBAL.ASI GLOBAL.DPPM GLOBAL.UPAC SECURITY.WSC.PPKG SECURITY.WSC.INIVF PB.NUM.UBD PB.CUB.IMM UC.AAI
DTP 处理以下规则的方式可能会不同,之前的抑制可能不再可用: 解决的 Bug 和 FRBug/FR ID | 说明 |
---|
FA-5994 | 无法将构造函数定义为 null,BD.EXCEPT.NP 不接受这种方法 | FA-6140 | 在报告 flowanalysis.output.performance.info 中的某些规则时,并非所有路径都被计数。 | JT-47125 | PB.CLOSE 针对 try-with-resources 误报 | JT-48547 | PB.CUB.IMM 潜在误报 | JT-48635 | SECURITY.IBA.VPPD-2 未正确触发 | JT-69723 | lambda 相关的误报 | JT-69873 | UC.AAI - 与 Java 8 不兼容 | JT-69939 | 9.5 和 10.3.1+ 行为不同 | UTA-1028 | 不显示潜在可模拟方法的建议 | UTA-2296 | 一些通过 UTA 创建的单元测试在客户的项目中失败 | XT-35411 | CVS 报告中从第二行开始存在的空格 |
|