(软件测试)代码覆盖(语句覆盖,分支覆盖,条件覆盖,条件组合覆盖,路径覆盖)

一、概念

语句覆盖/代码行覆盖:目标☞保证程序中每一条语句最少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;

判定覆盖/分支覆盖:是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,

                                 但若程序中的判定是有几个条   件联合构成时,它未必能发现每个条件的错误;

条件覆盖:是指选择足够的测试用例,使得运行这些测试用例时,

                  判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支;

条件组合覆盖:是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,

                       同时也是每个条件的所有可能结果至少出现一次;

路径覆盖: 是每条可能执行到的路径至少执行一次,试图覆盖软件中的所有路径;

语句覆盖是一种最弱的覆盖,

判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,

路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 

条件组合覆盖是除路径覆盖外最强的

二、测试的时候:

条件组合覆盖为主, 路径覆盖为辅

三、帮助理解的小例子(借鉴他人)

      if A and B then Action1 
      if C or D then Action2 

①语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。

②分支覆盖又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。上例需要设计测试用例使其分别满足下列条件即可(1)A=true,B=true,C=true,D=false(2)A=true,B=false,C=false,D=false。 

③条件覆盖要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二个判断应考虑到C=true,C=false,D=true,D=false,所以上例中可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false。 

④路径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值