SQALE是什么

SQALE是什么

本文将解释在SonarQube中看到的SQALE Rating指标的意思以及计算方法,并给出一个例子。


一、SQALE简介


SQALE全称是Software Quality Assessment based on Lifecycle Expectations,是一套评估代码质量的方法。主要思路计算技术债务时间占开发所有代码所需要的时间的比例(Technical Debt Ratio),并按照比例的大小划分A到D的等级。

二、如何计算Technical Debt Ratio


Technical Debt Ratio计算公式

Technical Debt Ratio = 技术债务时间 / 开发时间

技术债务时间

SQALE是什么_第1张图片

上图中的Debt即是技术债务时间,216d表示修复所有的Issues需要216天。

每个Issue都由SonarQube默认了修复需要的时间,虽然可以通过配置修改,但SonarQube官方表示不建议修改。

评估开发时间

开发总时间 = 每一行代码开发所需要的时间 * 代码总行数

其中每一行代码开发所需要的时间是可以配置的,默认是30min。

计算公式中可配置参数

技术债务相关参数配置页面路径是General Settings->Technical Debt,部分参数截图如下:

  • 每一行代码开发时间


  • 一天工作小时数


  • A-E等级对应的Technical Debt Ratio范围,默认值是0.1,0.2,0.5,1,表示[0,0.1]为A,(0.1,0.2]为B,(0.2,0.5]为C,(0.5,1]为D。


  • 计算单位,可选项包括复杂度、一行代码,默认是一行代码。这里值得注意,上文中为了快速说清楚,忽略了一个细节。即评估开发时间的单位可以是复杂度,公式为:
    开发总时间 = 每一个复杂度开发所需要的时间 * 总复杂度

三、一个例子


SQALE是什么_第2张图片

上图项目Technical Debt Ratio=5.0%,SQALE Rating=A,下面展示计算过程,其中技术债务的相关参数均为SonarQube默认值。

技术债务时间 = 216d * 8 * 60min = 103680min

开发总时间 = 每一行代码开发所需要的时间 * 代码总行数 = 30min * 68820 = 2064600min

Technical Debt Ratio = 技术债务时间 / 开发总时间 = 103680 / 2064600 = 0.05 = 5.0%

0.05 in [0,0.1],故SQALE Rating = A


created by 两害
主要参考:
http://www.sonarsource.com/products/plugins/governance/sqale/installation-and-usage/#understandingSqaleRatings

你可能感兴趣的:(SQALE是什么)