质量相关模型

我们在持续集成过程中,会拿到相关性的数据,有些数据可以通过持续集成平台的插件来收集,有部分的数据则通过sonar来收集(sonar也是集成了许多插件), 通过对持续集成过程中的数据进行收集,进行数据分析和数据挖掘,给用户对于项目、产品中的质量显性化。
   持续集成整个过程划分为以下几个部分,编译、 部署、  构建;每个过程中都会产生不同数据,并且会存放于不同数据源,而我们需要收集数据就是来之于持续集成过程中产生各种数据,并根据我们需要进行数据清洗并放入我们仓库里,以便于后续质量评估分析、质量趋势分析、质量可回溯分析等

这里简要介绍一下几种模型:

一、svn:

当持续集成到设置的频率触发时(设置方式不同,则触发模式不同,这里只讨论只有新增才会触发模式),会check svn提供的钩子检查是否有更新,并拿到所需要的svn数据。

指标 指标说明 构建阶段 数据源
svn url 当前构建svn分支 scm checkout or update jenkins
svn modifier 当前构建版本代码提交人(需要根据提交人得到真正提交的名字) scm checkout or update 
jenkiins
svn version 当前构建的版本 scm checkout or update 
jenkins
svn item 当前触发构建变化文件 scm checkout or update 
jenkins 
svn update date 当前触发构建变化文件提交时间 scm checkout or update 
jenkins 
svn message 当前触发构建变化文件的说明 scm checkout or update 
jenkins 
svn mod_type 当前触发构建变化文件的变更类型,分为增、删、修改 scm checkout or update 
jenkins 

    

二、testCase

指标 指标说明 构建阶段 数据源
package name testcase包名 构建 jenkins
class_name testCase类名 构建 jenkins
method_name testCase名称 构建 jenkins
build_duration testCase构建时间 构建 jenkins 
case_status testCase构建状态 构建 jenkins
case_error_mgs testCase错误堆栈信息 构建 jenkins
case_count testCase运行总数 构建 jenkins
case_type testCase类型 构建 jenkins
case成功数 test成功数 计算 平台
case失败数 test失败数 计算 平台

三、代码变化

指标 指标说明 构建阶段 数据源
code_count 代码总行 sonar sonar
code_change_line 代码变更行数 sonar sonar
code_change_link 代码变更详细内容--待定    
包数/类/等是否需要      
       

四、代码重复度:(所有的详细内容都需要有链接去看详细的信息)

指标 指标说明 构建阶段 数据源
duplicated_blocks 
重复的代码块数 sonar sonar
duplicated_blocks_link 
重复代码块数详细链接 -- --
duplicated_files 
涉及到重复代码的文件数目 sonar sonar
duplicated_lines 
涉及到重复代码文件数 sonar sonar-----
duplicated_lines_density 
重复行占代码总代码行数百分比=Duplicated lines / Lines * 100    

五、违反规则(根据sonar本身定义的规则来执行,包括findbugs等)

指标 指标说明 构建阶段 数据源
违规总数 违反规则总数 sonar sonar
新违规数 新增加违反规则总数 sonar sonar
不同级别违规数 不同级别违规的数目,分为阻碍、严重、主要、次要、建议 sonar sonar
新增的不同基本违规数 新增不同级别违规的数目,分为阻碍、严重、主要、次要、建议 sonar sonar
每个不同的违规都要增加出现违规的代码地方链接以及相关规则说明      

六、覆盖率:

指标 指标说明 构建阶段 数据源
coverage 覆盖率=(条件为true的分支+条件为flase的分支+覆盖代码行数)/(2*B+EL)
B:分支的总行数
EL:可执行的代码总行数

sonar/构建 sonar/jenkins
new_coverage 新的或者更新代码的覆盖率    
new_uncovered_lines 新增代码未覆盖的行数    
uncovered_lines
单元测试未覆盖的行数    

七:圈复杂度

指标 指标说明 构建阶段 数据源
圈复杂度 if、for、while、case、catch、throw return、&& || ?等圈复杂度+1.具体说明请看wiki sonar sonar
类平均复杂度 类的平均圈复杂度
sonar sonar
文件平均复杂度 文件平均复杂度
sonar sonar
方法平均复杂度 方法平均复杂度 sonar sonar

八、设计:

指标 指标说明 构建阶段 数据源
继承深度数 DIT DIT度量为每个类提供一个从对象层次结构开始的继承等级度量,
在java中,所有的类继承于object,所以DIT最小值为1
sonar
NOC 子类的数目,度量类的直接以及间接子类个数 sonar sonar
RFC 类的响应集合 sonar sonar
CA 类的传入耦合:有多少其他类使用到了这个类 sonar sonar
CE 类的传出耦合 sonar sonar
LCOM4 
衡量类中的聚合组件(一组方法和字段的集合)
sonar sonar
PC 包循环依赖数量 sonar sonar
PT 可以去掉文件依赖数据 sonar sonar
PFE 可以去掉的包依赖数量 sonar sonar
PEW 包之间的文件依赖总数 sonar sonar
PTI 包复杂等级,最好的值为0% sonar sonar
FC 文件循环依赖。 sonar sonar
FT 可以去掉的文件依赖数量 sonar sonar
FEW 包之间的文件依赖总数
sonar sonar
FTI 2 * (FT / FEW) * 100文件依赖的循环总数
sonar sonar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值