本主题说明如何使用 C++test 计算度量。在本章节中:
关于度量
C++test 的度量分析计算各种代码指标,例如代码复杂性、对象之间的耦合以及缺乏内聚性,以帮助您评估代码库并监视更改。更具体地说,计算和跟踪指标可以帮助您:
- 更好地了解代码复杂性以及代码更改可能影响哪些其他类。这有助于您就如何修改,重构和测试做出更明智的决定。
- 识别设计不良的一些症状,并了解代码中潜在的弱点。
运行 度量 内置的测试配置以执行度量分析规则。
查看度量结果
指标分析结果在 DTP 服务器上可用;有关如何连接 DTP 的信息,请参阅 连接 DTP 。度量结果不包含在 C++test 生成的本地 HTML 或 XML 报告中。
自定义度量设置
可以使用 DTP 测试配置界面中的 度量 选项卡配置度量指标。
- 在 DTP 中,齿轮图标菜单中选择 测试配置 。
- 单击测试配置,并单击 度量 选项卡以自定义和查看度量文档。
有关详细信息,请参见 DTP 手册:
设置指标阈值
您可以设置上限和下限,以便在度量值超出指定值范围时报告违反静态分析的情况。例如,如果要限制项目中逻辑行的数量,则可以配置【度量】测试配置,以便在【逻辑行数】度量标准超过限制时报告违规。
C++test 附带的 Metrics 测试配置包括默认阈值。有些规则(例如文件数 METRIC.NOF)无法设置阈值。
度量阈值可以使用以下方法设置:
- 通过使用 DTP 中的测试配置界面:
- 通过手动编辑测试配置文件:
1。跳转至 Parasoft> 测试配置> 内置,右键单击所选定测试配置并选择 导出... 以将配置保存为 .properties 文件。
2.在编辑器中打开 exported .properties 文件,并将[METRIC.ID].ThresholdEnabled
属性设置为 true。
3.根据以下格式在[METRIC.ID].Threshold 属性
中配置上下边界:[METRIC.ID].Threshold=l [lower boundary value] g [upper boundary value]
4.保存文件,并跳转至 Parasoft> 测试配置。
5.右键单击 用户定义 文件夹,选择 Import... 选项,浏览修改后的测试配置文件,然后单击 打开。
内置度量指标
可以使用以下度量指标:
- 对象之间的耦合度 [METRIC.CBO]
- McCabe 圈复杂度 [METRIC.CC]
- 文件中注释和逻辑行数量的比率 [METRIC.CLLOCRIF]
- 方法中注释和逻辑行数量的比率 [METRIC.CLLOCRIM]
- 类型中注释和逻辑行数量的比率 [METRIC.CLLOCRIT]
- 'if' 语句的嵌套深度 [METRIC.DIF]
- 基本的圈复杂度 [METRIC.ECC]
- 扇出 [METRIC.FO]
- Halstead 难度 [METRIC.HDIFM]
- Halstead 工作量 [METRIC.HEFM]
- Halstead 智能内容 [METRIC.HICM]
- Halstead 程序长度 [METRIC.HLENM]
- Halstead 程序级别 [METRIC.HLEVM]
- Halstead 缺陷的数量 [METRIC.HNOBM]
- Halstead 程序时间 [METRIC.HTTPM]
- Halstead 程序词汇 [METRIC.HVOCM]
- Halstead 程序体积 [METRIC.HVOLM]
- 类的继承深度 [METRIC.IDOC]
- 内聚缺乏度 [METRIC.LCOM]
- 改进的圈复杂度 [METRIC.MCC]
- 可维护性指数 [METRIC.MI]
- 嵌套块深度 [METRIC.NBD]
- 文件中空白行的数量 [METRIC.NOBLIF]
- 方法中空白行的数量 [METRIC.NOBLIM]
- 类型中空白行的数量 [METRIC.NOBLIT]
- 类的数量 [METRIC.NOC]
- 文件中注释行的数量 [METRIC.NOCLIF]
- 方法中注释行的数量 [METRIC.NOCLIM]
- 类型中注释行的数量 [METRIC.NOCLIT]
- 文件数量 [METRIC.NOF]
- 文件中逻辑行的数量 [METRIC.NOLLOCIF]
- 方法中逻辑行的数量 [METRIC.NOLLOCIM]
- 类型中逻辑行的数量 [METRIC.NOLLOCIT]
- 类型中方法的数量 [METRIC.NOMIT]
- 方法的参数数量 [METRIC.NOPAR]
- 文件中物理行的数量 [METRIC.NOPLIF]
- 方法中物理行的数量 [METRIC.NOPLIM]
- 类型中物理行的数量 [METRIC.NOPLIT]
- Private 类型成员的数量 [METRIC.NOPRIVMIT]
- Protected 类型成员的数量 [METRIC.NOPROTMIT]
- Public 类型成员的数量 [METRIC.NOPUBMIT]
- 方法中 return 语句的数量 [METRIC.NORET]
- 文件中源代码行的数量 [METRIC.NOSLIF]
- 方法中源代码行的数量 [METRIC.NOSLIM]
- 类型中源代码行的数量 [METRIC.NOSLIT]
- 类型的数量 [METRIC.NOT]
- 类响应 [METRIC.RFC]
- 严格的圈复杂度 [METRIC.SCC]
- 类的加权方法 [METRIC.WMC]