白盒测试 静态质量度量法
来源:互联网 发布:火炬之光2mac版下载 编辑:程序博客网 时间:2024/05/23 20:19
根据ISO/IEC 9126国际标准的定义,软件的质量包括以下六个方面:
l
l
l
l
l
l
以ISO 9126质量模型作为基础,我们可以构造质量度量模型,用于评估软件的每个方面。例如,按以下方法构造的质量模型可以度量程序的可维护性(maintainability)。首先,该模型从上到下分为3层:质量因素(factors)、分类标准(criteria)和度量规则(metrics)。其中质量因素对应ISO 9126质量模型的质量特性,分类标准对应ISO 9126质量模型的子特性,度量规则用于规范软件的各种行为属性。其次,按以下方式定义各参数及计算公式。
l
度量规则使用了代码行数、注释频度等参数度量软件的各种行为属性,具体参数定义如表2-4所示。
表2-4度量规则参数表
简称
名称
最小值
最大值
PARA
Number of function parameters
0
5
PATH
Number of paths
1
80
LEVL
Number of levels
0
4
DRCT_CALLS
Number of direct calls
0
7
RETU
Number of RETURN statements
0
1
NBCALLING
Number of callers
0
5
GOTO
Number of GOTO statements
0
0
VOCF
Vocabulary frequency
1
4
LVAR
Number of local variables
0
5
COMF
Comments frenquency
0.2
∞
AVGS
Average size of statements
1
9
STMT
Number of statements
1
50
VG
Cyclomatic number(VG)
1
10
IND_CALLS
Number of relative call graph call-paths
1
30
TESTBTY
Relative call graph System testability
0
1
HYER_CPX
Relative call graph Hierarchical complexity
1
5
LEVELS
Number of relative call graph levels
1
12
STRU_CPX
Relative call graph Structural complexity
0
3
DDP
DC coverage rate
0
100
IB
SC coverage rate
0
100
PPP
Procedure-to-Procedure Path coverage rate
0
100
l
软件的可维护性采用以下四个分类标准来评估:
①可分析性(ANALYZABILITY)
②可修改性(CHANGEABILITY)
③稳定性(STABILITY)
④ 可测性(TESTABILITY)
每个分类标准由一系列度量规则组成,各个规则分配一个权重,由规则的取值与权重值计算出每个分类标准的取值。各分类标准组成如表2-5所示。
表2-5分类标准组
分类标准
度量规则
权重
Fuction_TESTABILITY
PARA
1
PATH
1
LEVEL
1
DRCT_CALLS
1
Fuction_STABILITY
PARA
1
DRCT_CALLS
1
RETU
1
NBCALLING
1
Fuction_CHANGEABILITY
GOTO
1
VOCF
1
LVAR
1
PARA
1
Fuction_ANALYZABILITY
COMF
1
AVGS
1
STMT
1
VG
1
relativeCall_ANALYZABILITY
LEVELS
1
STRU-CPX
1
relativeCall_STABILITY
HIER_CPX
1
IND_CALLS
1
relativeCall_TESTABILITY
IND_CALLS
1
TESTBTY
1
各分类标准的结果按以下标准区分等级,如表2-6至表2-12所示。
function_TESTABILITY=DRCT_CALLS+LEVL+PATH+PARA
表2-6 functionTESTABILITY的等级划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
4
4
FAIR
2
2
GOOD
3
3
POOR
0
1
function_STABILITY=NBCALLING+RETU+DRCT_CALLS+PAPA
表2-7function_STABILITY 等级划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
4
4
FAIR
2
2
GOOD
3
3
POOR
0
1
function_CHANGEABILITY=PARA+LVER+VOCF+GOTO
表2-8funtion_CHANGEABILITY的等级划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
4
4
FAIR
2
2
GOOD
3
3
POOR
0
1
funtion_ANALYZABILITY=VG+STMT+AVGS+COMF
表2-9function_ANALYXABILITY的划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
4
4
FAIR
2
2
GOOD
3
3
POOR
0
1
relativeCall_ANALYZABILITY=STRU_CPX+LEVELS
表2-10 relativeCall_ANALYZABILITY的等级划分
等级描述
上限
下限
EXCELLENT
2
2
GOOD
1
1
POOR
0
0
relativeCall_STABILITY=CALL_PATHS+HIER_CPX
表2-11 relativeCall_STABILITY的等级划分
等级描述
上限
下限
EXCELLENT
2
2
GOOD
1
1
POOR
0
0
relativeCall_TESTABILITY=TESTBTY+CALL_PATHS
表2-12 relativeCall TESTABILITY的等级划分
等级描述
上限
下限
EXCELLENT
2
2
GOOD
1
1
POOR
0
0
这样,依据这些标准和最终测试结果,可将代码的质量分成四个等级。
①优秀(EXCELLENT):符合本模型框架中的所有规则。
②良好(GOOD):未大量偏离模型框架中的规则。
③一般(FAIR):违背了模型框架中的大量规则。
④较差(POOR):无法保障正常的软件可维护性。
其中前三者被认为是可以接受的,最后一个等级则是不可接受的。
l
质量因素的取值与分类标准的计算方式相似:依据各分类标准取值组合权重方法来计算,如表2-13所示。
表1-13质量因素权重计算表
质量因素
分类标准
权重
Function_MAINTAINABILITY
Fuction_TESTABILITY
1
Fuction_STABILITY
1
Fuction_CHANGEABILITY
1
Fuction_ANALYZABILITY
1
relativeCall_MAINTAINABILITY
relativeCall_ANALYZABILITY
1
relativeCall_STABILITY
1
relativeCall_TESTABILITY
1
同样,依据质量因素取值,也将其分成四个等级:优秀(EXCELLENT)、良好(GOOD)、一般(FAIR)和较差(POOR),其中前三者被认为是可以接受的,最后一个等级则是不可接受的。
如表2-14和表2-15所示为function_MAINTAINABILITY和relative Call_MINTAINABILITY的等级划分。
function_MAINTAINABILITY=function_ANALYZABILITY
+function_CHANGEABILITY
+function_STABILITY
+function_TESTABILITY
表1-14 function_MAITAINABILITY的等级划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
12
12
FAIR
4
7
GOOD
8
11
POOR
0
3
relativeCall_MAINTAINABILITY=relativeCall_ANALYZABILITY
表1-15relativeCall_MAINTAINABILITY的等级划分
等级描述
上限
下限
等级描述
上限
下限
EXCELLENT
6
6
FAIR
1
3
GOOD
4
5
POOR
0
0
- 白盒测试 静态质量度量法
- 白盒测试方法-静态质量度量法
- 软件测试过程质量的度量
- 衡量软件测试质量的常用的质量度量指标
- 第28回 软件测试过程和质量的度量
- 第28回 软件测试过程和质量的度量
- 质量度量分析与测试技术 培训大纲
- 质量度量分析与测试技术 培训大纲
- 从测试角度度量项目质量的7个维度
- 基于Web的质量和测试度量指标
- 软件质量目标度量
- 软件质量目标度量
- 软件质量目标度量
- 质量度量模型
- 软件质量的度量
- 静态白盒测试
- 软件质量度量参考数据表
- 威胁模型质量度量指南
- zoj 2164 Hanafuda Shuffle
- 白盒测试 代码检查 三
- HDU 1075 What Are You Talking About
- jquery 拖动DIV
- struts2-jquery-plugin的使用全攻略
- 白盒测试 静态质量度量法
- 关于junit的疑问
- 白盒测试 第四代白盒测试方法
- 解剖实体框架(2)--实体框架的基本功能
- varchar和nvarchar的区别
- C语言的那些小秘密之异常处理
- 白盒测试 如何挑选白盒测试工具 一
- 设计模式之(三)创建者builder
- C#鼠标拖动图片picturebox