zoukankan      html  css  js  c++  java
  • 代码质量衡量指标

    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%

    参考资料


  • 相关阅读:
    C macro : the " do { ... } while(0)" magic
    sscanf()函数
    poj-1200-hash-
    hduoj-1735 简单的贪心算法
    hduoj -2570-简单的贪心算法入门
    分治算法应用-最近点对的最小距离-hdu 1007 Quoit Design
    分治算法(转载)
    快速幂总结
    poj 1065 贪心算法
    toj ~3988~递归二叉树三种遍历的转换
  • 原文地址:https://www.cnblogs.com/hello-zy/p/15070894.html
Copyright © 2011-2022 走看看