1、1测试覆盖率测试覆盖率是指用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试根底的一个入口或属性,比方语句、分支、条件等。测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。但覆盖率不是目标,只是一种手段。测试覆盖率包括功能点覆盖率和构造覆盖率。功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。构造覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。(1) 语句覆盖率语句覆盖率=至少被执行一次的语句数量可执行的语句总数*10%(2) 判定覆盖率判定覆盖率=判定结果被评价的次数/判定结果的总数*100%
2、(3) 条件覆盖率条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数*10%(4) 定/条件覆盖率判定/条件覆盖率=条件操作数值或判定结果值至少被评价一次的数量/ (条件操作数值总数+判定结果总数) *100%(5) 条件组合覆盖率条件组合覆盖率涤件操作数值至少被评价一次的数量/条件操作数值的所有组合总数*100%2 逻辑覆盖根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖(条件组合覆盖)、组合覆盖。(1) 语句覆盖语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。语句覆盖的缺点是对程序
3、执行逻辑的覆盖率很低。为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可到达“语句覆盖标准。(2) 判定覆盖判定覆盖是通过设计足够多的测试用例,使得程序中的每一个判定至少获得一次真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少经历一次,也称为分支覆盖。判定覆盖的缺点是主要对整个表达式的最终取值进展度量,忽略了表达式的部取值。对图3-1的程序,如果设计两个用例,使它们能通过路径ace和abd,或者通过路径acd和abe,就可到达“判定覆盖标准,为此,可以选择输入数据为:A=3,B=0,X=1(沿路径acd执行)
4、 ;A=2,B=1,X=3(沿路径abe执行)。(3) 条件覆盖条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假) 都至少满足一次。条件覆盖的缺点是不能够满足判定覆盖。图3-1的程序有四个条件: A1、B=0、A=2、x1为了到达“条件覆盖标准,需要执行足够的测试用例使得在a点有:1、A1、X1,B=0DA1,B去0目A1,B=0A1回A=2,X1回8牛2,X必须注意到,回、回、回、四种情况是第二个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) 组合覆盖组合覆盖是通过执行足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和条件判定组合覆盖。实验报告三、实验容