您好,欢迎访问三七文档
软件工程SoftwareEngineering成都信息工程学院计算机系1软件工程SoftwareEngineering软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院2基本路径测试方法把覆盖的路径数压缩到一定限度内,使得程序中的循环体最多只执行一次。它是在程序控制流程图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。基本路径测试—白盒测试用例设计之二★基本路径测试步骤:1.绘制程序的控制流图2.由环路复杂性得到基本路径集3.导出测试用例软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院31.绘制程序的控制流程图(复习)基本路径测试(续1)213687549101112,34,511109876软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院42.程序环路复杂性、基本路径集程序的环路复杂性给出了程序基本路径集中的独立路径条数。从控制流程图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。基本路径测试(续2)软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院5环路复杂性度量V(G)(复习)环路复杂性度量V(G)的意义:等于程序中独立路径的条数。三种计算方法:1.V(G)=控制流程图中区域的个数2.V(G)=m-n+2p(m和n分别是控制流程图中的边数和节点数,p为强连通分量)3.V(G)=P+1(P是控制流程图中的谓词节点数)谓词结点:代表条件判断的结点基本路径测试(续3)12,34,511109876软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院6例如,在图示的控制流图中,一组独立的路径是path1:1–11path2:1-2-3-4-5-10-1–11path3:1-2-3-6-8-9-10-1–11path4:1-2-3-6-7-9-10-1-11路径path1,path2,path3,path4组成了控制流图的一个基本路径集。2,34,5111098761基本路径测试(续4)软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院73.导出测试用例导出测试用例,确保基本路径集中的每一条路径的执行。根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到—用逻辑覆盖方法。每个测试用例执行之后,与预期结果进行比较。基本路径测试(续5)软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院8从小到大排序:VoidSelectSort(datalist&list){for(inti=0;ilist.n-1;i++){intk=i;for(intj=i+1;jlist.n;j++)if(list.V[j].getKey()list.V[k].getKey())k=j;if(k!=i)Swap(list.V[i],list.V[k]);}}举例:基本路径测试(1)软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院94679851231011程序流程图中:list.V[j].getKey简写为V[j];list.n简写为n.下同.环路复杂性=5举例:基本路径测试(2)i=0;in-1returnk=i;j=i+1;jnV[j]V[k]k=j;j=j+1;ikSwap(list.V[i],list.V[k]);i=i+1;4679851231011TFTFTF软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院10基本路径集:Path1:1-2-3Path2:1-2-4-5-9-10-11-2-3Path3:1-2-4-5-9-11-2-3Path4:1-2-4-5-6-7-8-5-9-10-11-2-3(或1-2-4-5-6-7-8-5-9-11-2-3)Path5:1-2-4-5-6-8-5-9-10-11-2-3(或1-2-4-5-6-8-5-9-11-2-3)4679851231011举例:基本路径测试(3)软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院11举例:基本路径测试(4)测试用例Path1:1-2-3取n=1Path2:1-2-4-5-9-10-11-2-3取n=2预期结果:路径5-9-10-11-2-3不可达Path3:1-2-4-5-9-11-2-3取n=2,预期结果:路径5-9-11-2-3不可达i=0;in-1returnk=i;j=i+1;jnV[j]V[k]k=j;j=j+1;ikSwap(list.V[i],list.V[k]);i=i+1;4679851231011TFTFTF软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院12举例:基本路径测试(5)Path4路径A:1-2-4-5-6-7-8-5-9-10-11-2-3取n=2,V[0]=2,V[1]=1预期结果:k=1,V[0]=1,V[1]=2i=0;in-1returnk=i;j=i+1;jnV[j]V[k]k=j;j=j+1;ikSwap(list.V[i],list.V[k]);i=i+1;4679851231011TFTFTF软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院13举例:基本路径测试(6)Path4:路径B:1-2-4-5-6-7-8-5-9-11-2-3取n=2,V[0]=2,V[1]=1预期结果:k=1,路径9-11-3不可到达i=0;in-1returnk=i;j=i+1;jnV[j]V[k]k=j;j=j+1;ikSwap(list.V[i],list.V[k]);i=i+1;4679851231011TFTFTF软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院14举例:基本路径测试(7)Path5:路径A:1-2-4-5-6-8-5-9-10-11-2-3取n=2,V[0]=1,V[1]=2预期结果:k=0,路径9-10-11-2-3不可到达路径B:1-2-4-5-6-8-5-9-11-2-3取n=2,V[0]=1,V[1]=2预期结果:k=0,V[0]=1,V[1]=2i=0;in-1returnk=i;j=i+1;jnV[j]V[k]k=j;j=j+1;ikSwap(list.V[i],list.V[k]);i=i+1;4679851231011TFTFTF软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院15作业1.从小到大排序:VoidSelectSort(datalist&list){for(inti=0;ilist.n-1;i++){intk=i;for(intj=i+1;jlist.n;j++)if(list.V[j].getKey()list.V[k].getKey())k=j;if(k!=i)Swap(list.V[i],list.V[k]);}}(1)试画出它的程序流程图(2)并计算它的环路复杂性;(3)用基本路径覆盖法给出测试路径。(4)为各测试路径设计测试用例(循环次数限定为0次、1次)。软件工程SoftwareEngineering——第七章软件测试成都信息工程学院计算机学院16练习2.下面是一趟插入排序的程序,把R[i+1]插入到R[1..i]的适当位置R[0]=R[i+1];j=i;while(R[j]R[0]){R[j+1]=R[j];j=j-1;}R[j+1]=R[0];(1)试画出它的程序流程图(2)并计算它的环路复杂性;(3)用基本路径覆盖法给出测试路径。(4)为各测试路径设计测试用例(循环次数限定为0次、1次)。
本文标题:基本路径测试
链接地址:https://www.777doc.com/doc-3512677 .html