- 177
- 0
- 约9.8千字
- 约 79页
- 2018-01-20 发布于湖北
- 举报
动态白盒测试1
* 基本路径测试方法(续) 画出控制流图: 计算环形复杂度: 10(条边)- 8(个节点)+ 2 = 4 导出独立路径(用语句编号表示) 路径1:4→14 路径2:4→6→7→14 路径3:4→6→9→10→13→4→14 路径4:4→6→9→12→13→4→14 4 6 7 9 10 12 13 14 * 基本路径测试方法(续) 输入数据 预期输出 测试用例1 irecordnum = 0 itype = 0 x = 0 y = 0 测试用例2 irecordnum = 1 itype = 0 x = 0 y = 0 测试用例3 irecordnum = 1 itype = 1 x = 10 y = 0 测试用例4 irecordnum = 1 itype = 2 x = 0 y = 20 设计测试用例: * 习题 1、使用基本路径测试方法,为以下程序段设计测试用例。 void Do (int X,int A,int B) { 1 if ( (A1)(B=0) ) 2 X = X/A; 3 if ( (A=2)||(X1) ) 4 X = X+1; 5 } * 习题 2、在三角形问题中,要求输入三个边长:a,b,c。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形的周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则打印“等边三角形”。画出相应的程序流程图,并采用基本路径测试方法为该程序设计测试用例。 例:请看以下代码,它由C++语言书写。,把它转化成图形矩阵,,最后请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。 1. void ReadPara( CString temp) 2. { 3. if ( temp = = =) 4. m_oper.SetCurSel(0); 5. else 6. { 7. if (temp = = ) 8. m_oper.SetCurSel(1); 9. else 10. { 11. if ( temp = = = =) 12. m_oper.SetCurSel(2); 13. else 14. { 15. if( temp = = =) 16. m_oper.SetCurSel(3); 17. else 18. { 19. if ( temp = = ) 20. m_oper.SetCurSel(4); 21. else 22. m_oper.SetCurSel(5); 23. } 24. } 25. } 26. } 27. return; 28. } * 4.3.6.3条件测试路径选择 当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构。 对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例; 对于连锁型分支结构, 若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。当n较大时将无法测试。 * * 4.3.6.4 循环测试路径选择 循环分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环。 * * 循环测试路径选择 (1) 简单循环 ① 零次循环:从循环入口到出口 ② 一次循环:检查循环初始值 ③ 二次循环:检查多次循环 ④ m次循环: 检查在多次循环 ⑤ 最大次数循环、比最大次数多一次、少一次的循环。 * 例:求最小值 k = i; ? for ( j = i+1; j = n; j++ ) ? ? ? if ( A[j] A[k] ) then k = j; ? ? * a b e c j=n k=j j++ * 测试用例选择 * (2) 嵌套循环 ① 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值; ② 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。。 ③ 反复进行,直到所有各层循环测试完毕。 ④ 对全部各层循环同时取最小循环次 数,或者同时取最大循环次数 * (3) 连锁循环如果各个循环互相独立,则可以用与简单循环相同的方法进行测试
原创力文档

文档评论(0)