单元测试覆盖度几种方法总结

一、语句覆盖:使程序中每一可执行语句至少执行一次。

1.1 分析:需要覆盖的可执行语句为x = x / a 和 x = x + 1

1.2 测试用例如下:a=2,b=0,x=3  路径覆盖:a-c-e

二、判定(分支)覆盖:使程序中每个判定的"真"和"假"至少执行一次

2.1分析:需要覆盖的路径为:a-c-e和a-b-d 或 a-b-e和a-c-d

2.2 测试用例如下:

⑴ a = 2, b = 0, x = 3 覆盖路径:a-c-e

⑵ a = 1, b = 0, x = 1 覆盖路径:a-b-d

⑶ a = 2, b = 1, x = 1 覆盖路径:a-b-e

⑷ a = 3, b = 0, x = 3 覆盖路径:a-c-d

三、条件覆盖:使程序中每个判定的每个条件取得各种可能的结果

3.1 分析:需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 1)

3.2 测试用例如下:

⑴ a = 2, b = 0, x = 3 取到a>1(同时满足a=2), b = 0, x>1

⑵ a = 1, b = 1, x = 1 取到a <= 1(同时满足a!=2), b != 0, x <= 2

⑶ a = 1, b = 0, x = 3 取到a <= 1(同时满足a!=2), b = 0, x >1

⑷ a = 2, b = 1, x = 1 取到a>1(同时满足a=2), b != 0, x<=1

四、判定/条件覆盖:程序中的每个输入和输出都至少被调用一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。

4.1分析:

需要覆盖的路径为:a-c-e和a-b-d 或 a-b-e和a-c-d

需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 1)

4.2 测试用例如下:

⑴ a = 2, b = 0, x = 3 覆盖路径a-c-e 取到a>1(同时满足a=2), b = 0, x>1

⑵ a = 1, b = 1, x = 1 覆盖路径a-b-d 取到a <= 1(同时满足a!=2), b != 0, x <= 1

五、条件组合覆盖:使程序中所有判定的条件组合至少执行一次

5.1 分析:需要覆盖的条件组合为:

a > 1, b = 0

a>1, b != 0

a <= 1, b = 0

a <= 1, b != 0

a = 2, x > 1

a = 2, x< = 1

a != 2, x > 1

a != 2, x <= 1

5.2 测试用例如下:

⑴ a = 2, b = 0, x = 3 覆盖组合1,5

⑵ a = 2, b = 1, x = 1 覆盖组合2,6

⑶ a = 1, b = 0, x = 3 覆盖组合3,7

⑷ a = 1, b = 1, x = 1 覆盖组合4,8

六、路径覆盖:使程序中每条路径至少执行一次

6.1 分析:需要覆盖的路径为:a-c-e、 a-b-d、 a-b-e、 a-c-d

6.2 测试用例如下:

⑴ a = 2, b = 0, x = 3 覆盖路径:a-c-e

⑵ a = 1, b = 0, x = 1 覆盖路径:a-b-d

⑶ a = 2, b = 1, x = 1 覆盖路径:a-b-e

⑷ a = 3, b = 0, x = 4 覆盖路径:a-c-d

PS 博客内容为个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值