代码质量衡量指标
时间:2021-07-28
本文章向大家介绍代码质量衡量指标,主要包括代码质量衡量指标使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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%
参考资料
原文地址:https://www.cnblogs.com/hello-zy/p/15070894.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- win10 装centos7 虚拟机
- 怎样给centos系统扩展磁盘分区的实现方法
- android系统分享的自定义功能的示例代码
- Linux centOS安装JDK和Tomcat的教程
- Android ContentProvider实现获取手机联系人功能
- Centos 安装 PHP7.4 和 Nginx的操作方法
- vsftpd用户禁止ssh登陆的实现方法
- Android实现EditText图文混合插入上传功能
- Android实现红包雨动画效果
- 手把手教你启用Win10的Linux子系统(图文超详细)
- Android onCreateOptionsMenu的使用方法总结
- android截图事件监听的原理与实现
- 我常用的一些linux命令小结
- linux下安装mongodb教程
- Android中使用TagFlowLayout制作动态添加删除标签