第4章白盒测试及其实例设计ppt课件.ppt
《第4章白盒测试及其实例设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章白盒测试及其实例设计ppt课件.ppt(37页珍藏版)》请在三一办公上搜索。
1、第4章 白盒测试及其实例设计,4.1 逻辑覆盖测试4.2 路径分析测试4.3 其他白盒测试方法4.4 实例设计小结习题,本章概述 白盒测试是软件测试实践中最为有效和实用的方法之一。白盒测试是基于程序的测试,检测产品的内部结构是否合理以及内部操作是否按规定执行,覆盖测试与路径测试是其两大基本策略。本章重点围绕逻辑覆盖和路径分析展开介绍常见的白盒测试方法,并通过实例说明如何实际运用白盒测试技术。,4.1 逻辑覆盖测试,白盒测试技术的常见方法之一就是覆盖测试,它是利用程序的逻辑结构设计相应的测试用例。测试人员要深入了解被测程序的逻辑结构特点,完全掌握源代码的流程,才能设计出恰当的用例。根据不同的测试
2、要求,覆盖测试可以分为语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖和路径覆盖。下面是一段简单的C语言程序,作为公共程序段来说明五种覆盖测试的各自特点。程序4-1:1If(x100&y500)then2 score=score+13If(x=1000|z5000)then4 score=score+5,图4-1 程序流程图,语句覆盖语句覆盖(Statement Coverage)是指设计若干个测试用例,程序运行时每个可执行语句至少被执行一次。在保证完成要求的情况下,测试用例的数目越少越好。以下是针对公共程序段设计的两个测试用例:Test Case 1:x=2000,y=600,z=
3、6000 Test Case 2:x=900,y=600,z=6000判断覆盖判断覆盖(Branch Coverage)是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的真值分支和假值分支至少被执行一遍。在保证完成要求的情况下,测试用例的数目越少越好。判断覆盖又称为分支覆盖。以下是针对公共程序段设计的两个测试用例:Test Case 1:x=2000,y=600,z=6000 Test Case 3:x=50,y=600,z=2000,条件覆盖条件覆盖(Condition Coverage)是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件中的每个判断式的真值和假值至少被
4、执行一遍。测试用例组5:Test Case 6:50,600,6000Test Case 7:2000,200,1000,判断/条件覆盖判断/条件覆盖是指设计若干个测试用例,执行被测试程序时,程序中每个判断条件的真假值分支至少被执行一遍,并且每个判断条件的内部判断式的真假值分支也要被执行一遍。测试用例组6:Test Case 1:x=2000,y=600,z=2000Test Case 6:x=2000,y=200,z=6000Test Case 7:x=2000,y=600,z=2000Test Case 8:x=50,y=200,z=2000,条件组合覆盖条件组合覆盖是指设计若干个测试用例
5、,执行被测试程序时,程序中每个判断条件的的内部判断式的各种真假组合可能都至少被执行一遍。可见,满足条件组合覆盖的测试用例组一定满足判断覆盖、条件覆盖和判断/条件覆盖。测试用例组7:Test Case 1:x=2000,y=600,z=2000Test Case 6:x=2000,y=200,z=6000Test Case 7:x=2000,y=600,z=2000Test Case 8:x=50,y=200,z=2000,路径覆盖路径覆盖(Path Coverage)要求设计若干测试用例,执行被测试程序时,能够覆盖程序中所有的可能路径。测试用例组8:Test Case 1:x=2000,y=6
6、00,z=6000 Test Case 3:x=50,y=600,z=2000Test Case 4:x=2000,y=600,z=2000Test Case 7:x=2000,y=200,z=1000,应该注意的是,上面6种覆盖测试方法所引用的公共程序只有短短4行,是一段非常简单的示例代码。然而在实际测试程序中,一个简短的程序,其路径数目是一个庞大的数字。要对其实现路径覆盖测试是很难的。所以,路径覆盖测试是相对的,尽可能把路径数压缩到一个可承受范围。当然,即便对某个简短的程序段做到了路径覆盖测试,也不能保证源代码不存在其他软件问题了。其他的软件测试手段也必要的,它们之间是相辅相成的。没有一个
7、测试方法能够找尽所有软件缺陷,只能说是尽可能多地查找软件缺陷。,4.2 路径分析测试,4.2.1 控制流图白盒测试是针对软件产品内部逻辑结构进行测试的,测试人员必须对测试中的软件有深入的理解,包括其内部结构、各单元部分及之间的内在联系,还有程序运行原理等等。因而这是一项庞大并且复杂的工作。为了更加突出程序的内部结构,便于测试人员理解源代码,可以对程序流程图进行简化,生成控制流图(Control Flow Graph)。简化后的控制流图是由节点和控制边组成的。控制流图有以下几个特点:具有唯一入口节点,即源节点,表示程序段的开始语句;具有唯一出口节点,即汇节点,表示程序段的结束语句;节点由带有标号
8、的圆圈表示,表示一个或多个无分支的源程序语句;控制边由带箭头的直线或弧表示,代表控制流的方向。,图4-2 常见的控制流图,程序环路复杂性 程序的环路复杂性是一种描述程序逻辑复杂度的标准,该标准运用基本路径方法,给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。给定一个控制流图G,设其环形复杂度为V(G),在这里介绍三种常见的计算方法来求解V(G)。(1)V(G)=E-N+2,其中E是控制流图G中边的数量,N是控制流图中节点的数目。(2)V(G)=P+1,其中P是控制流图G中判断节点的数目。(3)V(G)=A,其中A是控制流图G中区域的数目
9、。由边和结点围成的区域叫做区域,当在控制流图中计算区域的数目时,控制流图外的区域也应记为一个区域。,4.2.2 独立路径测试,从前面学过的覆盖测试一节中可知,对于一个较为复杂的程序要做到完全的路径覆盖测试是不可能实现的。既然路径覆盖测试无法达到,那么可以对某个程序的所有独立路径进行测试,也就是说检验了程序的每一条语句,从而达到语句覆盖,这种测试方法就是独立路径测试方法。从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。路径可以用控制流图中的节点序列来表示。例如,在如图4-3所示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5-10-
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组成了控制流图的一个基本路径集。,图4-3 控制流图示例,独立路径测试的步骤包括3个方面:导出程序控制流图求出程序环形复杂度设计测试用例(Test Case),程序4-2:1main()23 int num1=0,num2=0,score=100;4int i;5 char str;6 scanf(“%d,%cn”,19,1导出程序控制流图根据源代码可以导出程序的控制流图,如图4-4所示。每个圆圈代表控制流图的节点,可以表示一个或多个
11、语句。圆圈中的数字对应程序中某一行的编号。箭头代表边的方向,即控制流方向。,图4-4 程序4-2的控制流图,2求出程序环形复杂度根据程序环形复杂度的计算公式,求出程序路径集合中的独立路径数目。公式1:V(G)=10-8+2,其中10是控制流图G中边的数量,8是控制流图中节点的数目。公式2:V(G)=3+1,其中3是控制流图G中判断节点的数目。公式3:V(G)=4,其中4是控制流图G中区域的数目。因此,控制流图G的环形复杂度是4。就是说至少需要4条独立路径组成基本路径集合,并由此得到能够覆盖所有程序语句的测试用例。,3设计测试用例根据上面环形复杂度的计算结果,源程序的基本路径集合中有4条独立路径
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 白盒测试及其实例设计ppt课件 测试 及其 实例 设计 ppt 课件

链接地址:https://www.31ppt.com/p-2133443.html