《软件测试基础》课件第4章白盒测试.ppt

上传人(卖家):momomo 文档编号:7673763 上传时间:2024-06-30 格式:PPT 页数:47 大小:592.50KB
下载 相关 举报
《软件测试基础》课件第4章白盒测试.ppt_第1页
第1页 / 共47页
《软件测试基础》课件第4章白盒测试.ppt_第2页
第2页 / 共47页
《软件测试基础》课件第4章白盒测试.ppt_第3页
第3页 / 共47页
《软件测试基础》课件第4章白盒测试.ppt_第4页
第4页 / 共47页
《软件测试基础》课件第4章白盒测试.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、n概述n逻辑覆盖法n路径分析n数据流测试n程序插桩技术 白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提。白盒子测试分静态和动态两种:(1)静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时也称为结构分析。(2)动态白盒测试也称结构化测试,通过查看并使用代码的内部结构,设计和执行测试。对于一个程序,其程序控制流图G=(V,E,I,O)是一个有向图,其中V是结点的集合,E是边的集合,I是唯一的源结点(入口结点),而O是唯一的汇结点(出口结点)。结点表示语句,以标有编

2、号的圆圈表示。边表示语句间可能的控制流向 I,O相应于程序的开始语句和结束语句。三角形问题类三角形问题类C语言实现语言实现 main()1int a,b,c;2boolean IsTraingle3sacnf(“Enter 3 integer which is sides of a triangle.%d%d%d”,a,b,c);4printf(“Side a is%d”,a);5printf(“Side b is%d”,b);6printf(“Side c is%d”,c);7if(ab+c)AND(ba+c)AND(c25)AND(sex=M)then commission=commiss

3、ion+150;end if if(age=50 OR(commission 2000.0)then commission=commission-200;endif3 3个变量为:年龄个变量为:年龄age、性别、性别sex、佣金佣金commission a、b、c、d和和e为控制流上程序点为控制流上程序点。语句覆盖要求设计若干个测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。Test 1:age=50,sex=M,comm=2500作为测试用例,则程序按路径ace执行。这样该程序段的4个语句都得到执行,从而作到了语句覆盖。语句覆盖 Test 2:age=50,sex=F,com

4、m=2500程序则按abe执行,没有达到语句覆盖。从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地检验被测程序的每一个语句。假如这一程序段中两个判断的逻辑运算有问题,例如,第一个判断的运算符“”错成运算符“”或是第二个判断中的运算符“”错成了运算符“”仍使用上述前一个测试用例Test 1,程序仍将按路径ace执行,不能发现判断中逻辑运算的错误。判定覆盖要求设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次,即判断的真假值均要被检测。判定覆盖又称为分支覆盖。若选用两组测试用例:Test 1:age=50,sex=M,comm.=2500 Te

5、st3:age=20,sex=M,comm.=1500 则分别执行路径ace和abd,从而使两个判断的4个分支c,e和b,d分别得到检测。若选用另外两组测试用例:Test4age=40,sex=M,comm.=1500Test5 age=50,sex=F,comm.=1900 则分别路径acd及abe,同样也可覆盖4个分支.上述两组测试用例不仅满足判定覆盖,同时还满足语句覆盖。判定覆盖比语句覆盖更强一些。如果在此程序段中第2个判断条件comm2000错写成comm25 取真值,记为T1age25 取假值,即age25,记为sex=M 取真值,记为T2:sex=M 取假值,即sex=F,记为第2

6、个判断应考虑到;Age=50 取真值,记为T3Age=50 取假值,即age2000 取真值,记为T4 comm.2000 取假值,记为 4T1T2T3T 3个测试用例覆盖了4个条件的8种情况。覆盖了两个判断的4个分支b、c、d和c。测试用例 age sex comm 所走路径 覆盖条件 Test1 Test3 Test550 M 2500.0 20 M 1500.0 50 F 1900.0 a c e a b d a b e T1 T2 T3 T4 1T T2 3T 4T T1 2T T3 4T 测试用例 age sex comm 所走路径 覆盖分支 覆盖条件 Test6Test7 20 M

7、 2100.0 50 F 1500.0 a b e a b e be be 1T T2 3T T4 T1 2T T3 4T 覆盖了条件的测试用例不一定覆盖了分支。事实上,它只覆盖了4个分支中的两个。判定/条件覆盖要求设计足够的测试用例,执行被测程序,(1)使得判断中每个条件的所有可能取值至少被执行一次,(2)同时每个判断的所有可能判断结果也至少被执行一次。两个判断各包含两个条件,故,共有8种组合。1)age25,sex=M,记为T1,T22)age25,sex=F,记为T1,3)age25,sex=M,记为 ,T24)age25,sex=F,记为 ,5)age50,comm2000.0,记为T

8、3,T46)age 50,comm2000.0记为T3,7)age2000.0,记为 ,T48)age=2,对于P-use的程序图出度=2n4)C-use 当且仅当USE(v,n)是计算使用,对于C-use的程序图入度=1n5)定义使用路径 关于变量v的定义使用路径(记做du-path),存在定义和使用结点DEF(v,m)和USE(v,n),使得m和n是该路径的开始结点和结束结点。n6)清除路径 当定义结点和清除结点中间没有其他的定义结点的时候为清除路径。56473281910结点被定义的变量被引用的变量1X,Y,Z2XW,X3X,Y4Y,Z5YV,Y6ZV,Z7VX8WY9ZV10Zn语句2

9、使用了变量W,而在此之前并未对其进行定义(赋值)。n语句5,6使用了变量V,但在第一次执行循环时也未对其定义过。n语句6对变量Z的定义从未被使用过。n语句8对变量W的定义从未被使用过。一个重要概念S(V,n)。S(V,n)表示结点n之前的所有对V中的变量值做出贡献的所有语句片段的总和。很明显的,做出贡献的一定有USE(v,n),但是要注意的是这里的使用路径包括直接和间接的。举个例子说明。比如说在结点n有个变量a=a+b+c,那么很明显,影响a的值包括a、b、c,所以自然要将在结点n前影响到值a,b,c三个变量的所有结点都算进去,直到出现一个常量语句,例如b=30,那么说明没有什么再影响b了。在

10、程序的特定部位插入记录动态特性的语句,最终是为了把程序执行过程中发生的一些重要的历史事件记录下来。例如,记录在程序执行过程中某些变量值的变化情况,变化的范围等。这些插入的语句常常被称为“探测器”或者“探测点”。1)程序的开始,即程序块的第1个可执行语句之前2)转移指令之前n for,do,do-while,do until 等循环语句处。nif,else if,else及end if等条件语句各分支处。n输入/输出语句之后。n函数、过程、子程序调用语句之后。3)标号之前。4)程序的出口nreturn语句之后ncall语句之后 插桩策略主要解决的如何在程序中植入探针,包括植入的位置和方法。(1)

11、块探针 (2)分支探针 n在被测试的源程序中植入探针函数的桩,即函数的声明。而插桩函数的原型在插桩函数库中定义。在目标文件连接成可执行文件时,则必须连入插桩函数库。探针函数是否被触发就要依据插桩选择记录文件了,要求不同的覆盖率测试会激活不同的插桩函数。n白盒测试方法基于被测程序的源代码开发测试用例。常见的白盒测试方法有逻辑覆盖、数据流测试、域测试、符号测试、路径分析、程序变异以及程序插装等。n逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的结构作到一定程度的覆盖,如语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。路径覆盖是最强的逻辑覆盖准则,实际上我们只能有选择地测试程序中某些有代表的性路径。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《软件测试基础》课件第4章白盒测试.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|