白盒测试 静态质量度量法

来源:互联网 发布:火炬之光2mac版下载 编辑:程序博客网 时间:2024/05/23 20:19

根据ISO/IEC 9126国际标准的定义,软件的质量包括以下六个方面:

 功能性(FUNCTLONALITY);

 可靠性(RELIABILITY):

 可用性(USABILITY):

 有效性(EFFICIENCY):

 可维护性(MAINTAINABILITY):

 轻便性(PORTABILITY)。

以ISO 9126质量模型作为基础,我们可以构造质量度量模型,用于评估软件的每个方面。例如,按以下方法构造的质量模型可以度量程序的可维护性(maintainability)。首先,该模型从上到下分为3层:质量因素(factors)、分类标准(criteria)和度量规则(metrics)。其中质量因素对应ISO 9126质量模型的质量特性,分类标准对应ISO 9126质量模型的子特性,度量规则用于规范软件的各种行为属性。其次,按以下方式定义各参数及计算公式。

 度量规则(Metrics)。

度量规则使用了代码行数、注释频度等参数度量软件的各种行为属性,具体参数定义如表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

 

 分类标准(criteria)。

软件的可维护性采用以下四个分类标准来评估:

①可分析性(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):无法保障正常的软件可维护性。

其中前三者被认为是可以接受的,最后一个等级则是不可接受的。

 质量因素(factors)。

质量因素的取值与分类标准的计算方式相似:依据各分类标准取值组合权重方法来计算,如表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

                             +relativeCall_STABILITY

                             +relativeCall_TESTABILITY

表1-15relativeCall_MAINTAINABILITY的等级划分

等级描述

上限

下限

等级描述

上限

下限

EXCELLENT

6

6

FAIR

1

3

GOOD

4

5

POOR

0

0