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 = 技术债务时间 / 开发时间

技术债务时间

上图中的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。


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

三、一个例子



上图项目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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容