章节目录:
简介
静态代码分析允许您在不执行应用程序的情况下检查源代码。为执行静态分析,Jtest 使用高级代码解析引擎,根据一组编码规则来分析被测 Java 代码。可以检查以下文件类型:
- .java
- .properties
- .xml
- Manifest.mf
根据对代码应用的规则类型,Jtest 会执行下文描述的一种静态分析类型。
基于模式的分析
基于模式的分析根据编程标准(如 CWE 和 OWASP)检测源代码中已知会导致软件缺陷的结构。基于模式的静态分析有助于确保开发人员遵循最佳编码实践、最佳单元测试实践以及组织的开发策略。
这种分析类型和以下所有分析类型均通过内建或用户自定义测试配置来执行;请参阅配置测试配置。
代码重复分析
Jtest 可以检查重复代码,有助于改进应用程序设计并降低维护成本。代码在重复分析期间会被解析为更小的语言元素(标记)。这些标记会根据一组规则进行分析,以确定哪些应被视为重复代码。标记分析规则分为两种:
- 查找单个标记重复项的简单规则,例如字符串字面量
- 查找多个标记重复项的复杂规则,例如重复的方法或语句
在分析期间运行 Find Duplicated Code 内建测试配置以执行重复代码检测规则:
builtin://Find Duplicated Code
指标分析
Jtest 可以计算多个代码指标,如代码复杂度、对象之间的耦合度或缺乏内聚力,这可以帮助您了解代码中的潜在弱点。分析时运行度量指标内建测试配置执行指标分析规则:
builtin://Metrics
指标分析结果将添加到 HTML 和 XML 报告文件中;请参阅查看报告
设置指标阈值
您可以进行上限和下限设置,以便在计算出的指标超出指定值范围时报告静态分析任务。例如,如果要限制项目中的逻辑行数,可以配置度量指标测试配置,这样,在逻辑行数指标超过限制时将报告任务。
度量指标内建测试配置包含默认阈值。有一些规则,如文件数量(METRIC.NOF),无法为其设置阈值。
可通过以下方法指定指标阈值:
- 使用 DTP 中的测试配置界面(详细信息,请参阅 DTP 用户手册中的报告中心> 测试配置> 编辑测试配置> 度量指标选项卡)。
- 使用 IDE 中的界面编辑度量指标测试配置(请参阅创建自定义测试配置)。
- 手动编辑测试配置文件:
1.将度量指标内建测试配置(
<INSTALL_DIR>\
configs\builtin
)复制到用户配置目录(<INSTALL_DIR>\
configs\user
)。2.在编辑器中打开复制的配置,并将
[METRIC.ID].ThresholdEnabled
属性设置为true
。3.在
[METRIC.ID].Threshold
属性中按照以下格式配置下限和上限:[METRIC.ID].Threshold=l [下限值] g [上限值]
4.保存测试配置并使用自定义的度量指标测试配置运行分析。
流分析
流分析是一种静态分析技术,使用包括模拟应用程序执行路径在内的多种分析技术来识别可能导致运行时缺陷的路径。检测到的缺陷包括使用未初始化的内存、空指针解引用、被零除、内存和资源泄漏。
由于这种分析涉及识别和跟踪复杂的路径,因此能够暴露通常无法通过静态代码分析和单元测试发现的 bug,并且这些 bug 很难通过手动测试或检查发现。
流分析在不执行代码的情况下暴露 bug 的能力对于拥有遗留代码库和嵌入式代码的用户而言尤其有效(运行时检测在这种情况下无法检测到此类错误)。
分析时运行一个流分析测试配置执行流分析规则:
builtin://Flow Analysis Fast builtin://Flow Analysis Standard builtin://Flow Analysis Aggressive
配置流分析
有关如何配置流分析选项的信息,请参阅配置流分析。