《基于切片的测试.ppt》由会员分享,可在线阅读,更多相关《基于切片的测试.ppt(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、结构性测试结构性测试 基于程序切片的测试基于程序切片的测试苏州大学计算机科学与技术学院234w语句与变量的关系w定义:输入定义 赋值定义 使用:谓词使用 计算使用 输出使用56w假设程序片S(V,n)是一个变量的程序片,即集合V由单一变量v组成。n语句片段n是v的定义结点,则n包含在该片中n语句片段n是v的使用结点,则n不包含在该片中n其他变量的谓词使用和计算使用影响到v的取值,则该语句包含在该片中。78 静态切片和动态切片静态切片和动态切片w静态切片包含了所有可能影响兴趣变量的语句,考虑了程序所有可能的执行路径。w动态切片是在某一特定的输入下,由所有可能影响一兴趣点处某个兴趣变量的所有语句组
2、成.它只考虑程序的某一条执行路径。9程序切片实例1.scanf(“%d”,&n);2.sum=0;3.product=1;4.while(n0)5.sum=sum+n;6.product=product*n;7.n=n-1;8.在第8行处关于变量sum的切片为:1.scanf(“%d”,&n);2.sum=0;3.4.while(n0)5.sum=sum+n;6.7.n=n-1;8.9.当输入n=0时,在第8行处关于变量sum的动态切片10.scanf(“%d”,&n);11.sum=0;12.13.while(n0)14.15.16.17.1011结点结点6为结点为结点5的后向必经结点的后向
3、必经结点12控制依赖控制依赖 语句p是否执行,决定了q是否执行.q控制依赖于p数据依赖数据依赖 语句p和q,存在一个变量v在p中定义,而在q 中使用且沿着p到q路径上其它位置在没有重定义v,则称q数据依赖于p.程序依赖图程序依赖图PDG 程序依赖图G=(N,E)为一个有向图:N=n|n为程序的语句,E=(m,n)|n控制依赖于或数据依赖于m书上例子13141516171819201.inword=0;2.nl=0;3.nw=0;4.c=getchar();5.while(c!=EOF)6.if(c=n)7.nl=nl+1;8.if(c=|c=t)9.inword=0;10.else if(in
4、word=0)11.inword=1;12.nw=nw+1;13.14.c=getchar();15.16.printf(“%dn”,nl);17.printf(“%dn”,nw);练习:计算 Slic(17,nw)211.inword=0;2.nl=0;3.nw=0;4.c=getchar();5.while(c!=EOF)6.if(c=n)7.nl=nl+1;8.if(c=|c=t)9.inword=0;10.else if(inword=0)11.inword=1;12.nw=nw+1;13.14.c=getchar();15.16.printf(“%dn”,nl);17.printf(
5、“%dn”,nw);Slic(17,nw)=17,3,12,10,1,9,11,8,4,5,14,13,15 程序的程序依赖图(PDG)141761109716825312411entryentry22wP112练习w给出sales和commission的格23sales的格27 sales=lockSales+stockSales+barrelSaleswS(sales,27)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27wS(sales,28)=28+S(sales,27)wS(sales,29)=29+S(sales,27)wS(s
6、ales,33)=33,29+S(sales,27)wS(sales,34)=29,34+S(sales,27)wS(sales,37)=37,29,34+S(sales,27)wS(sales,38)=38,29,34+S(sales,27)24commission的格wS31:S(commission,31)=31+S(sales,29)=29,31+S(sales,27)wS32:S(commission,32)=32,31+S(sales,29)=29,32,31+S(sales,27)wS33:S(commission,33)=33,32,31+S(sales,29)+S(sales
7、,33)=33,32,31,29+S(sales,29)=33,32,31,29+S(sales,27)wS34:S(commission,36)=36+S(sales,29)+S(sales,34)=36,29,34+S(sales,27)wS35:S(commission,37)=37,36+S(sales,29)+S(sales,34)+S(sales,37)=37,36+S(sales,34)=37,36,29,34+S(sales,27)wS36:S(commission,38)=38+S(sales,29)+S(sales,34)+S(sales,38)=38+S(sales,38)=38,29,34+S(sales,27)25commission的格wS37:S(commission,41)=S31+S32+S33+S34+S35+S36 =29,31,32,33,34,36,37,38+S(sales,27)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27,29,31,32,33,34,36,37,3826272829