最近在复习软件测试的考试,每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼,这次终于决定好好整理出来。
这里以一个题目引入:
if (a>1) and (b = 0) then x = x / a if (a = 2) or (x > 1) then x = x+ 1
- 根据以上程序段画出程序流程图
- 按照要求给出六种逻辑覆盖的测试用例
注:[可执行语句:流程图中的矩形;判定:流程图中的菱形]
(一) 语句覆盖:选择足够多的测试用例,使程序中每一可执行语句至少执行一次
分析:需要覆盖的可执行语句为x = x / a 和 x = x + 1
测试用例如下:
a = 2, b = 0, x = 3 覆盖路径:a-c-e
(二) 判定(分支)覆盖:选择足够多的测试用例,使程序中每个判定的”真”和”假”至少执行一次
分析:需要覆盖的路径为:a-c-e和a-b-d 或 a-b-e和a-c-d
测试用例如下:
答案1 a = 2, b = 0, x = 3 覆盖路径:a-c-e a = 1, b = 0, x = 1 覆盖路径:a-b-d 答案2 a = 2, b = 1, x = 1 覆盖路径:a-b-e a = 3, b = 0, x = 3 覆盖路径:a-c-d
(三) 条件覆盖:选择足够多的测试用例,使程序中每个判定的每个条件取得各种可能的结果
分析:需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 2)
测试用例如下:
答案1 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 答案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<=2
(四) 判定/条件覆盖:选择足够多的测试用例,使程序中每个判定的"真"和"假"至少执行一次,并且每个判定的每个条件取得各种可能的结果。
分析:
- 需要覆盖的路径为: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 <= 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 <= 2
(五) 条件组合覆盖:选择足够多的测试用例,使程序中所有判定的条件组合至少执行一次
分析:需要覆盖的条件组合为:
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
测试用例如下
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
(六) 路径覆盖:选择足够多的测试用例,使程序中每条路径至少执行一次
分析:需要覆盖的路径为:a-c-e、 a-b-d、 a-b-e、 a-c-d
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
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206043.html原文链接:https://javaforall.net
