软件工程白盒测试实验 下载本文

实验三 软件测试(白盒测试)

预习报告

一、实验目的

1掌握覆盖率的计算方法。

2 掌握语句覆盖,分支覆盖(判定覆盖),条件覆盖,条件。 分支组合覆盖,条件组合覆盖,组合覆盖的含义及区别。 3 掌握使用各种覆盖法,设计测试用例的方法。

二、实验原理

1测试覆盖率

测试覆盖率是指用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。 测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。但覆盖率不是目标,只是一种手段。测试覆盖率包括功能点覆盖率和结构覆盖率。

功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。

结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。 (1) 语句覆盖率

语句覆盖率=至少被执行一次的语句数量可执行的语句总数*10% (2) 判定覆盖率

判定覆盖率=判定结果被评价的次数/判定结果的总数*100% (3) 条件覆盖率

条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数*10% (4) 定/条件覆盖率

判定/条件覆盖率=条件操作数值或判定结果值至少被评价一次的数量/ (条件操作数值总数+判定结果总数) *100% (5) 条件组合覆盖率

条件组合覆盖率涤件操作数值至少被评价一次的数量/条件操作数值的所有组合总数*100% 2 逻辑覆盖

根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖(条件组合覆盖)、组合覆盖。

(1) 语句覆盖

语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。语句覆盖的缺点是对程序执行逻辑的覆盖率很低。 为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。 为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。 (2) 判定覆盖

判定覆盖是通过设计足够多的测试用例,使得程序中的每一个判定至少获得一次

真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少经历一次,也称为分支覆盖。判定覆盖的缺点是主要对整个

表达式的最终取值进行度量,忽略了表达式的内部取值。对图3-1的程序,如果设计两个用例,使它们能通过路径ace和abd,或者通过路径acd和abe,就可达到“判定覆盖”标准,为此,可以选择输入数据为: A=3,B=0,X=1(沿路径acd执行) ; A=2,B=1,X=3(沿路径abe执行)。 (3) 条件覆盖

条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假) 都至少满足一次。条件覆盖的缺点是不能够满足判定覆盖。 图3-1的程序有四个条件: A>1、B=0、A=2、x>1 为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有: A>1、A<1、B=0、B中0等各种结果出现,以及在b点有: A=2、牛2、x>1、X<1等各种结果出现。现在只需设计以下两个测试用例就可满 足这一标准:

A=2,B=0,X=4 (沿路径ace执行) ; A=1,B=1,X=1(沿路径abd执行)。 (4 )条件判定组合覆盖

条件判定组合覆盖(判定条件覆盖) 是通过设计足够多的测试用例,使得程序中每个判定包合的每个条件的所有情况(真/假) 至少出现一次,并且每个判定本身的判定结果(真/假) 也至少出现一次。条件

判定组合覆盖的测试用例一定同时满足判定覆盖和条件覆盖。条件判定组合覆盖的缺点是没有考虑单个判定对整体结果的影响,无法发现逻辑错误。对图3-1的程序; 可以设计两个测试用例满足条件判定组合覆盖: A=2,B=0,X=4(沿路径ace执行); A=1,B=1,X=1(沿路径abd执行)。 (5) 条件组合覆盖

条件组合覆盖也称多条件覆盖,是通过设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。条件组合覆盖的缺点是判定语 句较多时,条件组合值比较多。 再看图3-1的程序,我们需要选择适当的例子,使得下面8种条件组合都能出现: DA>1,B=0DA>1,B去0目A<1,B=0@A<1,去0 回A=2,X>1回A=2,X<1口A牛2,X>1回8牛2,X<1

必须注意到,回、回、回、@四种情况是第二个I语句的条件组合,而x的值在该语句之前是要经过计算的,所以还必须根据程序的逻辑推算出在程序的入口点X的输入值应是什么。

下面 四个例子可以使上述8种条 件组合至少出现一次: A=2,B=0,K=4使D、回两种情况出现; &=2,B=1,X=1使@、@两种情况出现; 8=1,B=0,X=2使国、O两种情况出现; &=1,B=1,X=1使@、回两种情况出现。 (6) 组合覆盖

组合覆盖是通过执行足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和条件判定组合覆盖。

实验报告

三、实验内容