代码质量衡量指标

1 代码质量衡量指标

SQALE(Software Quality Assessment based on Lifecycle Expectations)方法整合了ISO-25010标准与代码规范,其目标是:以客观、准确、可复制和自动化的方式为评估软件应用程序的源代码提供支持;为管理技术债务提供一种有效的方法。SQALE是目前众多主流代码分析工具的参照标准,包括我们熟知的SonarQube,和CoderGears, SQUORE等商用代码扫描分析工具。

  • 编码规范:是否遵守了编码规范,遵循了最佳实践。
    [强制]等级规约必须遵守

  • 潜在问题:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码。
    数量小于10,安全风险类潜在Bug必须修复

  • 文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时的文档或注释。

  • 重复代码:违反了Don’t Repeat Yourself原则.
    重复代码不超过20%

  • 复杂度:代码结构太复杂(如圈复杂度高),难以理解、测试和维护.
    圈复杂度超过20的代码必须重构

圈复杂度 代码状况 可测性 维护成本
1-10 清晰、结构化
10-20 复杂
20-30 非常复杂
>30 不可读 不可测 非常高
  • 单元测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否足够。
    达到70%

  • 技术债:偿还债务所需耗费的资源/重写所有代码预估耗费的资源
    SonarQube中

    • [0, 5%] -> A , 默认需要达到的等级
    • (5%, 10%] -> B
    • (10%,20%] -> C
    • (20%, 50%] -> D
    • 高于50% -> E
      达到100%时,即债务开始超过资产,资不抵债,这时就称这种情况为“技术破产”。

    负债等级达到B或负债比率小于等于10%

参考资料


posted @ 2021-07-28 15:48  ideal_1412  阅读(2231)  评论(0编辑  收藏  举报