白盒测试—逻辑覆盖法&基本路径测试法
题目一:使用逻辑覆盖测试方法测试以下程序段
1. int logicExample(int x, int y)
2. {
3. int magic=0;
4. if(x>0 && y>0)
5. {
6. magic = x+y+10;
7. }
8. else
9. {
10. magic = x+y-10;
12.
13. if(magic < 0)
14. {
15. magic = 0;
16. }
17. return magic;
18. }
说明:程序段中每行开头的数字是对每条语句的编号
(1)画出程序的控制流图(用题中给出的语句编号表示)
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
1、语句覆盖
数据 | 语句 | 路径 |
{x=3, y=3} | 1、4 | a-b-e-f |
{x=-3, y=0} | 2、3、4 | a-c-d-f |
2、判定覆盖
两个判断(x>0 && y>0)(记为P1)和(magic<0)(记为P2)
数据 | P1 | P2 | 路径 |
{x=3, y=3} | T | F | a-b-e-f |
{x=-3, y=0} | F | T | a-c-d-f |
3、条件覆盖
两个判断(x>0 && y>0)(记为P1)和(magic<0)(记为P2),三个条件x>0(记为C1)、y>0(记为C2)和magic<0(记为C3)
数据 | C1 | C2 | C3 | 路径 |
x=3,y=0 | T | F | T | a-c-e-f |
x=-3,y=5 | F | T | F | a-c-e-f |
4、判定-条件覆盖
测试用例:
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
x=3,y=3 | T | T | T | T | F | a-b-e-f |
x=-3,y=0 | F | F | F | F | T | a-c-d-f |
5、条件组合覆盖
三个条件x>0(记为C1)、y>0(记为C2)和magic<0(记为C3) x>0 y>0 x>0 y<=0 x<=0 y>0 x<=0 y<=0
测试用例
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
x=3,y=3 | T | T | T | T | T | a-b-d-f |
x=3,y=0 | T | F | F | F | F | a-c-e-f |
x=-3,y=2 | F | T | F | F | F | a-c-e-f |
x=-3,y=0 | F | F | F | F | F | a-c-e-f |
6、路径覆盖
测试用例
数据 | C1 | C2 | C3 | P1 | P2 | 路径 |
x=3,y=5 | T | T | T | T | T | a-b-d-f |
x=0,y=2 | F | T | T | F | F | a-c-d-f |
这条路径不可能 |
|
|
|
|
| a-b-e-f |
x=-8,y=3 | F | F | F | F | F | a-c-e-f |
2、题目二:三角形问题
在三角形计算中,要求输入三角形的三个边长:A、B和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形的周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算环路复杂度V(g),找出基本测试路径
- if(inta>=intb+intc)
- or (intb>=inta+intc)
- or (intc>=inta+intb)
- strMsg="非三角形"
- else
- if(inta==intb)
- and intb==intc then
- strMst="等边三角形"
- else
- if(inta==intb)
- or(inta==intc)
- or(intc==intb) then
- strMsg="等腰三角形"
- else
- strMsg="普通三角形"
- end if
- end if
- end if
1、根据代码画出程序的控制流图