本主题说明如何使用 C++test 计算度量。在本章节中:

关于度量

C++test 的度量分析计算各种代码指标,例如代码复杂性、对象之间的耦合以及缺乏内聚性,以帮助您评估代码库并监视更改。更具体地说,计算和跟踪指标可以帮助您:

  • 更好地了解代码复杂性以及代码更改可能影响哪些其他类。这有助于您就如何修改,重构和测试做出更明智的决定。
  • 识别设计不良的一些症状,并了解代码中潜在的弱点。

运行 度量 内置的测试配置以执行度量分析规则。

查看度量结果

指标分析结果在 DTP 服务器上可用;有关如何连接 DTP 的信息,请参阅 连接 DTP 。度量结果不包含在 C++test 生成的本地 HTML 或 XML 报告中。

自定义度量设置

可以使用 DTP 测试配置界面中的 度量 选项卡配置度量指标。 

  1. 在 DTP 中,齿轮图标菜单中选择 测试配置 。
  2. 单击测试配置,并单击 度量 选项卡以自定义和查看度量文档。 

有关详细信息,请参见 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]
  • No labels