软件测试-白盒测试.ppt

上传人:牧羊曲112 文档编号:6610968 上传时间:2023-11-17 格式:PPT 页数:46 大小:1.13MB
返回 下载 相关 举报
软件测试-白盒测试.ppt_第1页
第1页 / 共46页
软件测试-白盒测试.ppt_第2页
第2页 / 共46页
软件测试-白盒测试.ppt_第3页
第3页 / 共46页
软件测试-白盒测试.ppt_第4页
第4页 / 共46页
软件测试-白盒测试.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《软件测试-白盒测试.ppt》由会员分享,可在线阅读,更多相关《软件测试-白盒测试.ppt(46页珍藏版)》请在三一办公上搜索。

1、软件测试教程,福建工程学院软件学院 叶家青 2011年2月21日,第四章 白盒测试,逻辑覆盖测试路径分析测试 其他白盒测试实例设计,本章内容,2,白盒测试时软件测试实践中最为有效和实用的方法之一。白盒测试是基于程序的测试,检测产品的内部结构是否合理以及内部操作是否按规定执行,覆盖测试和路径测试是其两大基本策略。本章重点围绕逻辑覆盖和路径分析这两种方法展开介绍常见的白盒测试方法,并通过实例说明如何实际运用白盒测试技术。,本章概述,3,1.1逻辑覆盖测试,语句覆盖;判断覆盖;条件覆盖;判断/条件覆盖;条件组合覆盖;路径覆盖;,4,例子程序,程序4-1:1、If(x100&y500)then2、sc

2、ore=score+13、If(x=1000|z5000)then4、score=score+5,5,程序流程图,6,(x100)(y500),(x=1000)(z5000),Score=score+1,Score=score+5,a,F,T,b,c,F,T,d,e,1.1逻辑覆盖-语句覆盖,语句覆盖是指设计若干个测试用例,程序运行时每个可执行语句至少被执行一次。在保证完成要求的情况下,测试用例的数目越少越好。,7,1.1语句覆盖-测试用例,8,表4-1 测试用例组I,如果条件组合and错误写成or,或者相反,再或x=1000误写成x=1500。应用测试组1、2能发现问题吗?,1.2.逻辑覆盖

3、-判断覆盖,判断覆盖是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的真值分支和假值分支至少被执行一遍。,9,1.2.判断覆盖-测试用例,10,表4-2 测试用例组2,1.2.判断覆盖-测试用例(引),11,表4-3 测试用例组3,从这两组测试用例看,不仅满足了判断覆盖的要求,同时也满足了语句覆盖的要求。如果将z5000改成z3000,应用测试组4,5能发现问题吗?,1.3.逻辑覆盖-条件覆盖,12,条件覆盖是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件中的每个判断式的真值和假值至少被执行一遍。,1.3、条件覆盖-测试用例,13,表4-4 测试用例组4,判断覆盖,1.

4、3、条件覆盖-测试用例(引),14,满足判断覆盖了吗?,15,1.4、逻辑覆盖-判断/条件覆盖,判断/条件覆盖是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的真假值分支至少被执行一遍,并且每个判断条件内部的判断式的真假值分支也要被执行一遍。,16,1.4、判断/条件覆盖-测试用例,表4-6(a)测试用例组6,17,1.4、判断/条件覆盖-测试用例,表4-6(b)测试用例组6,18,1.5、逻辑覆盖-条件组合覆盖,条件组合覆盖是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的内部判断式的各种真假组合可能都至少被执行一遍。可见,满足条件组合覆盖的测试用例组一定满足判断覆盖

5、、条件覆盖和判断/条件覆盖。,19,1.5、条件组合覆盖-测试用例,表4-7(a)测试用例组7,20,1.5、条件组合覆盖-测试用例,表4-7(b)测试用例组7,21,2.0、逻辑覆盖-路径覆盖,路径覆盖要求设计若干测试用例,执行被测试程序时,能够覆盖程序中所有的可能路径。(既完全路径覆盖,此处注意与之后的独立路径覆盖相区别),22,2.0、路径覆盖-测试用例,路径覆盖要求设计若干测试用例,执行被测程序时,能够覆盖程序中所有的可能路径。,22,2.0、路径覆盖-测试用例,22,2.0、路径覆盖-测试用例,由此可见,一段仅有4行代码的程序,其路径数目就有4个。所以,要对代码实现路径覆盖测试是很难

6、的,我们应尽量减少路径的数量。当然,即使对一段代码做了路径测试,也并不能证明源程序不存在其他的软件问题。其他的测试手段也是必要的,它们之间是相辅相成的。,23,2、路径分析测试,着眼于路径分析的测试称为路径分析测试。完成路径测试的理想情况是做到路径覆盖。路径覆盖也是白盒测试最为典型的问题。独立路径选择和Z路径覆盖是两种常见的路径覆盖方法。,31,2.0、独立路径测试,独立路径测试的步骤包括3个方面:导出程序控制流图求出程序环形复杂度设计测试用例(Test Case),24,2.1、程序控制流图,具有唯一入口结点,即源结点,表示程序段的开始语句;具有唯一出口结点,表示程序段的结束语句;结点由带有

7、标号的圆圈表示,表示一个或多个无分支的源程序语句;控制边由带箭头的直线或弧表示,代表控制流的方向。,25,2.1、程序控制流图,26,2.1、程序控制流图,27,2.2、程序环路复杂性,程序的环路复杂性是一种描述程序逻辑复杂度的标准,该标准运用基本路径方法,给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。,28,2.2、程序环路复杂性,给定一个控制流图G,设其环形复杂度为V(G),在这里介绍三种常见的计算方法来求解V(G)。V(G)=E-N+2,其中E是控制流图G中边的数量,N是控制流图中结点的数目。V(G)=P+1,其中P是控制流图G

8、中判断结点的数目。V(G)=A,其中A是控制流图G中区域的数目。由边和结点围成的区域叫做区域,当在控制流图中计算区域数目时,控制流图外的区域也应记为一个区域。,29,2.3、独立路径测试,从逻辑覆盖测试中可知,对于一个较为复杂的程序要做到完全路径覆盖测试是不可能的。既然所有可能路径覆盖无法达到,那么可以对某个程序的所有独立路径进行测试,也就是说检验了程序的每一条语句,从而达到语句覆盖,这种测试方法就是独立路径测试方法。从控制流图看,一条独立路径是至少包含一条在其他独立路径中从未有过的边的路径。,30,2.3、独立路径测试,例如,在P86如图4-3所示的控制流程图中,一组独立的路径是:(它的环路

9、复杂度是多少?)Path:1-11Path:1-2-3-4-5-10-1-11Path:1-2-3-6-8-9-10-1-11Path:1-2-3-6-7-9-10-1-11,32,2.3、独立路径测试,程序例子:,33,2.3、独立路径测试,导出程序控制流图根据源代码可以导出程序的控制流图,P87页如图4-4所示。求出程序环形复杂度为4公式1:V(G)=10-8+2,其中10是控制流图G中边的数量,8是控制流图中结点的数目。公式2:V(G)=3+1,其中3是控制流图G中判断结点的数目。公式3:V(G)=4,其中4是控制流图G中区域的数目。,34,2.3、独立路径测试,设计测试用例:Path:

10、7-18Path:7-9-10-16-7-18Path:7-9-11-15-16-7-18Path:7-9-11-13-14-15-16-7-18,35,2.3、独立路径测试,设计测试用例:,36,2.3、独立路径测试-另外,注意:如果程序中的条件判断表达式是有一个或多个逻辑运算符(and,or,not)连接的复合条件表达式,则需要变换为一系列只有单个条件的嵌套的判断。if(a or b)if(a)then Then procedure x procedure xelse if(b)thenElse procedure x procedure y else procedure y,37,2.4

11、、Z路径覆盖测试,提出问题:当应用独立路径覆盖的时候,如果被测程序语句较多,或者其中含有较多的条件语句和循环体,那么需要测试的路径数目就会成倍增长。为了解决这个问题,我们提出了Z路径覆盖测试。什么是Z路径覆盖测试呢?Z路径覆盖测试就是,采用简化循环方法的路径覆盖。那么,循环方法如何简化呢?简单地说,就是将循环结构转变为选择结构,即只考虑0次和1次通过循环的情况。,38,2.4、Z路径覆盖测试,A,B,B,A,A,B,(a),(b),(c),39,2.5、其他白盒测试方法,白盒测试除了覆盖测试和路径分析测试两大类方法之外,还有很多其他常见的测试方法,比如循环测试、变异测试、程序插装等。,40,、

12、循环测试,循环测试是一种着重循环结构有效性测试的白盒测试方法。循环测试用例的设计有以下4种模式:简单循环 嵌套循环 串接循环 非结构循环,41,、变异测试,变异测试(也叫编译测试)是一种故障驱动测试,即针对某一类特定程序故障进行的测试,变异测试也是一种比较成熟的排错性测试方法。If(a,42,、程序插装,程序插装是借助于在被测程序中设置断点或打印语句来进行测试的方法,在执行测试的过程中可以了解一些程序的动态信息。主要考虑三方面因素:需要探测哪些信息;在程序的什么位置设立插装点;计划设置多少个插装点。,43,、程序插装,程序插装技术在软件测试中主要有以下几个应用:覆盖分析;监控;查找数据流异常。,谢谢!,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号