资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,白盒测试与OO测试,第五章、白盒测试技术基本路径测试,上一章内容回顾,逻辑驱动测试,语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖,循环测试,2,本章学习目标,基本路径测试,画出程序的控制流图,程序环路复杂性,导出测试用例,执行测试用例,3,内容进度,控制流图,程序环路复杂性,导出测试用例,4,基本路径测试,它在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。,5,前提条件,被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构,基本路径测试,代码,6,例子,void sort(int iRecordNum,int iType),1,2 int x=0;,3 int y=0;,4 while(iRecordNum-0),5 ,6 if(0=iType),7x=y+2;,8 else,9 if(1=iType),10 x=y+10;,11 else,12 x=y+20;,13 ,14,9,绘制流程图,10,绘制控制流图,11,复合条件流图表示,1 if a or b,2 x,3 else,4 y,对应的逻辑为:,判定节点:包含条件的结点,被称为判定结点,从每一个,判定结点发出两条或多条边。,12,内容进度,控制流图,程序环路复杂性,导出测试用例,13,步骤二,画出程序的控制流图,计算程序圈复杂度,导出测试用例,执行测试用例,计算程序圈复杂度,14,计算圈复杂度方法,1、流图中区域的数量对应于环型的复杂性;,2、给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;,有以下两种方法计算圈复杂度:,15,计算圈复杂度,流图中有四个区域;,V(G)=10条边-8结点+2=4;,对应上面圈复杂度的算法,计算如下:,16,内容进度,控制流图,程序环路复杂性,导出测试用例,17,导出测试用例,画出程序的控制流图,计算程序圈复杂度,导出测试用例,执行测试用例,导出测试用例,18,导出基本路径集,根据上面的计算方法,可得出四个独立的路径:,路径1:4-14,路径2:4-6-7-14,路径3:4-6-8-10-13-4-14,路径4:4-6-8-11-13-4-14,19,测试用例,通过路径,输入数据,预期结果,4-14,iRecordNum0,或者取iRecordNum 0),5 ,6 if(0=iType),7x=y+2;,8 else,9 if(1=iType),10 x=y+10;,11 else,12 x=y+20;,ret=x;,15,22,驱动模块/主程序,void sort(int iRecordNum,int iType);,int ret;,int main(),sort(0,0);,if(0=ret),printf(“pass”);,else,printf(“fail”);,return 0;,23,工具实现策略,工具化:图形矩阵(graph matrix),1,表示有连接,列,行,24,标记,根据上面的方法对例子画出图形矩阵如下:,1,1,1,1,1,1,1,1,1,1,4 6 7 8 10 11 13 14,4 6 7 8 10 11 13 14,25,小结,基本路径测试,画出控制流图,计算圈复杂度,设计测试用例,执行测试用例,辅助工具方法,26,课堂练习,把上一章的例子,把科学记数法转换为实数,代码参照上一章的正文。,27,28,本章内容总结,基本路径测试,画出程序的控制流图,程序环路复杂性,导出测试用例,执行测试用例,29,
展开阅读全文