软件测试技术教学课件 库波 第3章 白盒测试方法

上传人:w****i 文档编号:94561692 上传时间:2019-08-08 格式:PPT 页数:43 大小:746.50KB
返回 下载 相关 举报
软件测试技术教学课件 库波 第3章 白盒测试方法_第1页
第1页 / 共43页
软件测试技术教学课件 库波 第3章 白盒测试方法_第2页
第2页 / 共43页
软件测试技术教学课件 库波 第3章 白盒测试方法_第3页
第3页 / 共43页
软件测试技术教学课件 库波 第3章 白盒测试方法_第4页
第4页 / 共43页
软件测试技术教学课件 库波 第3章 白盒测试方法_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《软件测试技术教学课件 库波 第3章 白盒测试方法》由会员分享,可在线阅读,更多相关《软件测试技术教学课件 库波 第3章 白盒测试方法(43页珍藏版)》请在金锄头文库上搜索。

1、软件测试技术,主编 库波 中国水利水电出版社,第3章 白盒测试方法,白盒测试方法 1、 代码检查 2、覆盖路径 3、路径测试 白盒测试工具 1、白盒测试工具介绍 2、实用JUnit进行白盒测试,3.1 白盒测试方法,一般来说,测试任何产品有两种方法:第一种测试方法就是我们第二章提到的黑盒测试,第二种测试方法为白盒测试又称为结构测试。,3.1.1代码检查,代码检查即静态白盒测试,在不执行程序的条件下仔细审查代码(可采用互查、走查等形式),从而找出软件故障的过程。 正式审查过程中有4个关键要素: 1、确定问题。 2、遵守准则。 3、提前准备。 4、编写审查报告。,3.1.1代码检查,代码检查应注意

2、的哪些可能存在的软件缺陷呢?首先必须对代码的规范性进行审查,另外还要考虑以下几种类别的错误。 1、数据的引用错误。 2、数据类型错误。 3、数据声明错误。 4、计算错误。 5、逻辑运算错误。 6、控制流程错误。 7、子程序参数错误。 8、输入/输出错误。 9、其他错误。,3.1.2覆盖测试,覆盖测试以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解。根据覆盖测试的目标不同,可分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、组合覆盖及路径覆盖。下面以一个小程序为例。 Begin if(x0)and(y2)or(z0) then z=z+5; 其中and、or是逻辑运

3、算符,3个输入参数是x,y,z。其对应的程序流程图如图3-1所示(a、b、c、d、e为控制流上的若干程序点)。,3.1.2覆盖测试,图3-1 被测程序流程图,3.1.2覆盖测试,1、语句覆盖 所谓语句覆盖是指设计若干个测试用例,使程序中的每个可执行语句至少被执行一次。 语句覆盖在测试程序时,对检查不可执行语句方面起到一定作用,但被测程序并不是语句间无序的堆积,语句之间存在着各种各样的内部联系。所以,语句覆盖并不能排除被测试程序中存在故障的风险。,3.1.2覆盖测试,2、判定覆盖 所谓判定覆盖是指设计若干个测试用例,使得程序中的每个判定至少得到一次真值和假值,即判断中的真假分支至少均执行一次。判

4、定覆盖又称为分支覆盖。,3.1.2覆盖测试,3、条件覆盖 所谓条件覆盖是指设计若干个测试用例,使得程序中每个判断中每个条件的可能值至少得到一次。因此,条件覆盖与判定覆盖相比增加了对符合判定情况的测试以及测试路径。 4、判定/条件覆盖 所谓判定/条件覆盖是指设计若干个测试用例,使得判断中每个条件的所有(真或假)取值至少出现一次,并且每个判断的所有(真或假)判断结果也至少出现一次。,3.1.2覆盖测试,5、组合覆盖 所谓组合覆盖是指设计若干个测试用例,使得每个判定条件的各种情况至少出现一次。 6、路径覆盖 所谓路径覆盖是指设计若干个测试用例覆盖程序中所有的路径。,3.1.3路径测试,路径测试就是从

5、一个程序的入口开始,执行所经历的各个语句的完整过程。 路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法路径测试方法。 (1)画出程序的控制流图。,3.1.3路径测试,3.1.3路径测试,(2)程序环形复杂度:McCabe复杂性度量。 (3)导出基本路径集,确定程序的独立路径。 (4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出,确保基本路径集中的每一条路径的执行。,3.1.3路径测试,1、程序路径表达 采用弧序列或者节点序列的方式并引入了两个运算:加和乘。 (1)弧a和弧b相加,表示为a+b,它表明两条弧是“或”的关系

6、,是并行的路段。 (2)弧a和弧b相乘,表示为ab,它表明路径是先经历弧a,接着再经历弧b,弧a和弧b是先后相接的。,3.1.3路径测试,路径表达式运算满足一下规律。 加法交换律: a+b=b+a 加法结合律: a+(b+c)=(a+b)+c 加法幂运算:a+a=a 乘法结合律:a(bc)=(ab)c 分配律: a(b+c)=ab+ac (a+b)c=ac+bc (a+b)(c+d)=a(c+d)+b(c+d) 值得注意的是路径表达式中乘法不满足交换律。,3.1.3路径测试,图3-3(a)和(b),3.1.3路径测试,2、程序的环路复杂性 环路复杂性V(G)的计算方式有以下三种。 第一种:V(

7、G)=区域数目。 第二种:V(G)=E-N+2。其中E表示边界数目,N表示节点数目。 第三种:V(G)=P+1。其中P表示判断节点数目。,3.1.3路径测试,3、Z路径覆盖 通过对路径覆盖的分析中可以知道,对于路径较少且比较简单程序而言,实现路径覆盖是可能实现的。但是,如果程序中出现多个循环或者判断的话,所涉及的路径数目也会快速增加,这就可能造成无法实现路径覆盖。为了解决这个问题,就必须去除一些次要因素,限制循环次数,从而减少路径数量。这种简化循环下的路径覆盖称为Z路径覆盖。 程序中比较典型的循环控制结构即为while和do-while。两者的区别在于while是先判断,再执行。do-whil

8、e是先执行,再判断。因此,do-while至少执行一次。,3.1.3路径测试,现在通过一个具体的例子来看如何实现路径测试。有如下程序段: void Sort ( int x, int y ) 1 2 int a=1,b=2; 3 while ( x 0 ) 4 5 if (y=0 ) 6 a=b-3; 7 else 8 if (y=1 ) 9 a=b+5; 10 else 11 a=b*2; 12 13 步骤1:画控制流图。,3.1.3路径测试,步骤2:计算环形复杂度: 该流程图有4个区域。 步骤3:导出独立路径(用语句编号表示) 路径1:313 路径2:35613 路径3:358912313

9、 路径4:3581112313 步骤4:设计测试用例,3.2 白盒测试工具(JUnit),软件测试在软件投入使用前,对软件需求分析,设计规格说和编码进行最后的审查,这是软件质量保证的关键步骤。 软件测试在软件开发过程中跨越了两个阶段:单元测试和综合测试。,3.2.1 白盒测试工具介绍,unit是1997年,Erich和Kent Beck为Java语言创建的一个简单而有效的单元测试框架。Junit是Xuint测试体系架构的一种实现。 在JUnit单元测试框架的设计时,设定了三个总体目标: 第一个是简化测试的编写; 第二个是使测试单元保持持久性; 第三个则是可以利用既有的测试来编写相关的测试。,3

10、.2.1 白盒测试工具介绍,JUnit安装与配置 要使用JUnit,请先至JUnit官方网站http:/www.junit.org/,点击“Download JUnit”后出现JUnit下载列表,3.2.1 白盒测试工具介绍,3.2.1 白盒测试工具介绍,3.2.1 白盒测试工具介绍,下载后解开压缩文件,当中会含有junit.jar文件,将这个档案复制到指定的文件夹中,如c:junit3.8.1junit.jar,然后设定CLASSPATH。,3.2.1 白盒测试工具介绍,3.2.1 白盒测试工具介绍,如果是Windows 2000/XP,请在系统内容/进阶/设定环境变量中设定系统变量中的CL

11、ASSPATH,如果没有就自行新增,3.2.1 白盒测试工具介绍,3.2.1 白盒测试工具介绍,通过三种方式可以测试CLASSPATH是否设定正确,3.2.1 白盒测试工具介绍,AWT图形模式测试范例。在CMD环境下输入java junit.awtui.TestRunner如果出现该界面表示JUnit安装成功。,3.2.1 白盒测试工具介绍,Eclipse是常用的Java开发工具,下面先看一下路径变量的具体设置步骤: 1、在主菜单栏上选择【窗口 - 首选项】,出现首选项对话框,,3.2.1 白盒测试工具介绍,2、展开 Java 节点,选择【Build Path-Classpath Variab

12、les】,点击NEW按钮,在对话框中输入新的变量名 JUNIT ,设置路径为 junit .jar ,可以在安装目录 /eclipse/plugins/org.junit_3.8.1/junit .jar 下找到 junit 压缩包,3.2.1 白盒测试工具介绍,3、为了 debug 的需要,还要添加 JUint 包的源代码,可以在 Eclipse 安装目录 /eclipse/plugins/org.eclipse.jdt.source_3.0.2/ 下搜索到 junitsrc.zip 。,3.2.2使用JUnit进行白盒测试,1、独立的JUnit测试 (1)创建一个简单的Java类Servi

13、ce.java,存放在D:junitbo文件夹下,类中有一个方法caculate( )用于判断输入的三个数字构不构成三角形。 (2)创建该类的测试类ServiceTest.java,存放在D:junittest文件夹下。 (3)编译源代码后,输入命令执行测试,如果显示OK表示测试通过。 (4)如果有问题,将原本正确的代码修改错误 。 (5)重新编译后执行测试,3.2.2使用JUnit进行白盒测试,2、Eclipse环境下JUnit测试,3.2.2使用JUnit进行白盒测试,3.2.2使用JUnit进行白盒测试,3.2.2使用JUnit进行白盒测试,3.2.2使用JUnit进行白盒测试,3.2.2使用JUnit进行白盒测试,本章小结,本章介绍了白盒测试的相关概念,详细介绍了几种白盒测试方法,如代码检查、语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、组合覆盖、路径覆盖和路径测试等。全面分析了这几种白盒测试的优缺点以及相关用法。并介绍了白盒测试工具Junit的使用方法。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号