基本路径测试法
画出程序控制流程图 计算程序环路复杂性 确定独立路径集合
准备测试用例
4
例:下面是一个程序段,试设计基本路径测试的测试用
例,设计出的测试用例要保证每一个基本独立路径至少要执 行一次
22 24
I
H
1. int Test(int i_count, int i_flag) 2. { 3. int i_temp = 0; 4. while (i_count > 0) 5. { 6. if (0 == i_flag) 7. { 8. i_temp = i_count + 100; 9. break; 10. } 11. else 12. { 13. if (1 == i_flag) 14. { 15. i_temp = i_temp + 10; 16. } 17. else 18. { 19. i_temp = i_temp + 20; 20. } 21. } 22. i_count- -; 23. } 24. return i_temp; 25. }
1
控制流程图的图形符号
程序控制流程图
1 边 1
3
结点 区域
2 6 3 6 7 8 4 5 7 R3 8 R1 R2
4
9 10 R4
11 (a)程序流程图 )
11 (b)控制流图
2
程序控制流程图 a b x y y
if a and b then x else y
复合逻辑下的控制流程图
3
基本路径测试的步骤
画出程序控制流程图
4
C
6
A
D
E
13
F
G
8 19
J
B
15
计算程序环路复杂性
— 程序的环路复杂性给出程序基本路径集合中的独立路径条数 — 确保程序中每个可执行语句至少执行一次所必须的测试用例数目 的上界 — 独立路径:指至少引入一个新处理语句或一条新判断的程序通路 — 就是程序环路复杂性的三种方法:
H
J
导出程序基本路径
4
C
6
A
D
E
13
F
G
8 19
B
15 22
I
J
B(4,24) C,E,J(4,6,8,24) C,D,F, H, A, B (4, 6, 13, 15, 22, 4, 24) C,D,G, I, A, B (4, 6, 13, 19, 22, 4, 24)
H
24
设计测试用例
4
C
6
A
D
E
13
F
G
8 19
B
15 22
I
24
B(4,24) 输入数据: i_count = 0, 或者是i_count < 0的某一个值 预期结果: i_temp = 0 C,E,J(4,6,8,24) 输入数据: i_count = 1 i_flag = 0 预期结果: i_temp = 101 C,D,F, H, A, B (4, 6, 13, 15, 22, 4, 24) 输入数据: i_count = 1 i_flag = 1 预期结果: i_temp = 10 C,D,G, I, A, B (4, 6, 13, 19, 22, 4, 24) 输入数据: i_count = 1 i_flag = 2 预期结果: i_temp = 20
基本路径测试
— 在程序控制流图的基础上,通过分析控制构造的环路复杂性, 导出基本可执行路径集合,从而设计测试用例的方法 — 在基本路径测试中,设计出的测试用例要保证在被测程序的每 一条可执行语句上至少执行一次 — 程序的控制流程图
WHILE 循环结构
顺序结构
IF 选择结构
UNTIL 循环结构
CASE 多分支结构 选择结构
程序控制流图中的区域数 程序控制流图的边数 - 程序控制流图的结点数 + 2 程序控制流图中的判定结点数 + 1
4
C
6
A
D
E
13
F
G
8 19
B
15 22
I
区域数:4 边数 - 结点数 + 2 = 10 – 8 +2 = 4 判定结点数 + 1 = 3 + 1 = 4