收藏 分销(赏)

测试策略.pptx

上传人:天**** 文档编号:4212857 上传时间:2024-08-26 格式:PPTX 页数:39 大小:648.34KB 下载积分:12 金币
下载 相关 举报
测试策略.pptx_第1页
第1页 / 共39页
测试策略.pptx_第2页
第2页 / 共39页


点击查看更多>>
资源描述
7.5.1 逻辑覆盖测试方案包括预定要测试功能,应该输入的测试数据和预期的结果设计测试方案的基本目标是,确定一组最可能发现某个错误或某类错误的测试数据本节介绍的设计技术主要有:适用于黑盒测试的等价划分、边界值分析以及错和推测法等腰三角形;适用于白盒测试的逻辑覆盖法逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试从覆盖源程序语句的详尽程度,测试数据执行程序逻辑的程度划分成以下一些不同的覆盖标准:1.语句覆盖 语句覆盖的含义是,选择中够多的测试数据,使被测程序中每个语句至少执行一次图7.6是一个被测模块的流程图,它的源程序(用PASCAL语言书写)如下:PROCEDURE EXAMPLE(A,B:REAL;VAR X:REAL);BEGIN IF(A1)AND(B=0)THEN X:=X/A;IF(A=2)OR(X1)THEN X:=X+1 END;语句覆盖是很弱的逻辑覆盖标准语句覆盖是很弱的逻辑覆盖标准,为了更充分地测试程序为了更充分地测试程序,可可以采用下述的逻辑覆盖标准以采用下述的逻辑覆盖标准2.叛定覆盖 叛定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个叛定的每种可能的结果都应该至少执行一次,也就是每个叛定的每个分支都至少执行一次。对于上述例子来说,能够分别覆盖路径sacbed和sabd的两组测试数据,或者可以分别覆盖路径sacbd和sabed的两组测试数据,都满足叛定覆盖标准。例如,用下面两组测试数据就可做到叛定覆盖:A=3,B=0,X=3 (覆盖sacbd)A=2,B=1,X=1 (覆盖sabed)叛定覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高,例如,上面的测试数据只覆盖了程序全部的一半。3.条件覆盖 条件覆盖的含义是,不仅每个语句至少执行一次,而且使叛定表达式中的每个条件都取到各种可能的结果。图7.6的例子中共有两个叛定表达式,每个表达式中有两个条件,为了做到条件覆盖,应该选取测试数据使得在a点有下述各种结果出现:A1,A1,B=0,B0在b点有下述各种结果出现:A=2,A2,X1,X1只需要使用下面两组测试数据就可以达到上述覆盖标准:.A=2,B=0,X=1(满足A1,B=0,A=2和X1的条件,执行路径sacbed).A=1,B=1,X=1(满足A1,B0,A2和X1的条件,执行路径sabd)条件覆盖通常比叛定覆盖强,因为它使叛定表达式中每个条件都取到了两个不同的结果,叛定覆盖却只关心整个叛定表达式的值4.叛定/条件覆盖 叛定/条件覆盖的含义是选取足够多的测试数据,使得叛定表达式的每个条件都取到各种可能的值,而且每个叛定表达式也都取到各种可能的结果 对图7.6的例子而言,下述两组测试数据满足叛定/条件覆盖标准:.A=2,B=0,X=4.A=1,B=1,X=1但是,这两组测度数据也就是为了满足条件覆盖标准最初选取的两组数据,因此,有时叛定/条件覆盖也并不比条件覆盖更强5.条件组合覆盖 条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个叛定表达式中条件的各种可能组合都至少出现一次对图7.6的例子,共有八种可能的条件组合,它们是:A1,B0 A1,B0 A1,B0 A1,B0 A2,X1 A2,X1 A2,X1 A2,X1 和其它逻辑覆盖标准中的测试数据一样,条件组合中的X值是指在程序流程图第二个叛定框(b点)的X值 下面的四组测试数据可以使上面列出的八种条件组合每种至少出现一次:I.A2,B0,X4(针对1,5两种组合,执行路径sacbed)II.A2,B1,X1(针对2,6两种组合,执行路径,sabed).A1,B0,X2(针对3,7两种组合,执行路径sabed).A1,B1,X1(针对4,8两种组合,执行路径sabd)显然满足条件组合覆盖标准的测试数据,也一定满足叛定覆盖、条件覆盖和叛定/条件覆标准.因此,条件组合覆盖是前述几种覆盖标准中最强的.以上根据测试数据对源程序语句检测度详尽程序,简单讨论了几种逻辑覆盖标准。在上面的分析过程中常常谈到测试数据执行的程序路径,显然,测试数据可以检测的程序路径的多少,也反映了对程序测试的详尽程度。从对程序路径的覆盖程度分析,能够提出下述一些主要的逻辑覆盖标准:6.点覆盖图论中点覆盖的概念定义如下:如果连通图G的子图G是连通的,而且包含G的所有节点,则称G是G的点覆盖。在正常情况下程序图是连通的有向图,图中每个节点相当于程序流程图的一个框(一个或多个语句)。满足点覆盖标准要求选取足够多的测试数据,使程序执行路径至少经过程序图中每个节点一次。显然,点覆盖标准和语句覆盖标准是相同的。7.边覆盖定义:如果连通图G的子图G是通的,而且包含G的所有边,则称G是G的边覆盖。图7.7是由图7.6得出的程序图.为了使程序执行路径经过程序图的边覆盖(1,2,3,4,5,6,7),至少需要两组测试数据(分别执行路径123和14567;或分别执行路径1453和1267)8.路径覆盖含义:选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)在图7.7的例子中共有四条可能的执行路径,它们是:123;1267;1453;14567。为了做到路径覆盖必须设计四组测试数据。例如:下面的四组测试数据A1,B1,X1(执行路径123)A1,B1,X2(执行路径1267)A3,B0,X1(执行路径1453)A2,B0,X4(执行路径14567)路径覆盖是相当强的逻辑覆盖标准,它保证程序中每条可能的路径都至少执行一次,因此这样的测试数不胜数据更有代表性,暴露错误的能力也比较强7.5.2 等价划分等价划分是用黑盒法设计测试方案的一种技术。使用等价划分法设计测试法首先需要划分输入数据的等价类,为此需要研究程序的功能说明,从而确定输入数据的有效等价类和无效等价类。划分出等价类以后,根据等价类设计测试方神机妙算查主要使用下面两个步骤:设计一个新的测试方案以尽可能多地覆熏沿未被覆盖的有效等价类,复重这一步骤直到所有有效等价类都被覆盖为止 设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止。注意:通常程序发现一类错误后就不再检查是否还有其它错误,因此,应该使每个测试方案只覆盖一个无效的等价类下面用等价划分法设计一个简单程序的测试方安案:假设有一个把数字串转变成整数的函数。运行程序的计算机字长16位,用二进制补码表示整数。这个函数是用PASCAL语言写的,它的说明如下:Function strtoint(dstr :shortstr):integer;函数的参数是shortstr,它的说明是:Type shortstr=array16 of char;被处理的数字串是右对齐的,也就是说,如果数字串比 六个字符短,则在它的左边补空格,如果数字串是负的,则负号和最高位数字紧相邻(负号在最高位数字左边一位)。分析这个程序的规格说明,可以划分出如下等价类:有效输入的等价类有 16个数字字符组成的数字串(最高位数字不是零)最高位数字是零的数字串 最高位数字左邻是负号的数字串无效输入的等价类有 空字符串(全是空格);左部填充的字符既不是零也不是空格 最高位数字右面由数字和空格混合组成最高位数字右面由数字和基它字符混合组成负号与最高位数字之间有空格合法输出的等价类有 在计算机能表示的最小负整数和零之间的负数 零k 在零和计算机能表示的最大正整数之间的正整数非法输出的等价类有12 比计算机能表示的最小负整数还小的负整数13 比计算机能表示的最大正整数还大的正整数根据上面划分出的等价类,可以设计出下述测度方案(注意,每个测试方案由三部分内容组成):16个数字组成的数字串,输出是合法的正整数输入:1预期的输出:1 最高位数字是零的数字串,输出是合法的正整数输入:000001预期的输出:1 负号与最高位数字紧相邻,输出合法的负整数输入:-00001预期的输出:-1 最高们数字是零,输出也是零输入:000000预期的输出:0 太小的负整数输入:-47561预期的输出:“错误无效输入”太大的正整数输入:132767预期的输出:“错误无效输入”空字符串输入:预期的输出:“错误没有数字”字符串左部字符既不是零也不是空格输入:1预期的输出:“错误填充错”最高位数字后面有空格输入:1 2预期的输出:“错误无效输入”最高位数字后面有基它字符输入:12预期的输出:“错误无效输入”负号和最高位数字之间有空格输入:12预期的输出:“错误负号位置错”7.5.3 边界值分析 按照边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类内的典型值或任意值作为测试数据通常设计测试方案时总是联合使用等价划分和边界分析两种技术。例如:为了测试前述的把数字串转变成整数的程序,除了上一小节已经用等价划分法设计出的测试方案外,还应该用边界值分析法再补充下述测试方案:使输出刚好等于最小的负整数输入:-32768预期的输出:-32768使输出刚好等于最大的正整数输入:32767预期的输出:32767原来用等价划分法设计出来的测试方案最好改为:使输出阻抗刚刚小于最小的负整数输入:-32769预期的输出:“错误无效输入”原来的测试方案最好改为:使输出刚刚大于最大的正整数输入:32768预期的输出:“错误无效输入”7.5.4 错误推测 错误推测法在很大程度上靠直觉和经验进行.它的基本想法是列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案 等价划分法和边界值分析法都只孤立地考虑各个输入数据的测试功效,而没有考虑多个输入数据的组合效应,可能会遗漏了输入数据易于出错的组合情况 选择输入组合的有效途径 利用判定表或对应关系树为工具,列出输入阻抗数据各种组合号程序应作的动作(及相应的输出结果)之间的对应关系,然后为判定表的每一列至少设计一个测试有例 把计算机测试和人工检查代码结合起来。7.5.5 实用测试策略 对软件系统进行实际测试时,应该联合使用各种设计测试方案的方法,形成一种综合的策略策略结合的各种方法:在任何情况下都应该使用边界值分析的方法 必要时用等价划分法补充测试方案 必要时再用错误推测法补充测试方案 对照程序逻辑,检查已经设计出的测试方案例 程序TRIANGLE读入三个整数值,这三个整数代表同一个三角形三条边的长度,程序根据这三个值判断三角形属于不等边、等腰或等边三角形中的哪一种利用综合法,可以设计出下述11种应该测试的情况1.正常的不等边三角形2.正常的等边三角形3.正常的等腰三角形,包括两条相等边的三种不同排列法4.退化的三角形(即,两边之和等于第于第三边),包括三种不同排列方式5.三条边不能构成三角形(即,两边之和小于第三边),包括三种不同的排列方式6.一条边的长度为零,包括三种不同排列方法7.两条边和长度为零,包括三种不同排列方法8.在条边的长度全为零9.输入数据中包含负整数10.输入数据不全(不足三个正整数)11.输入数据中包含非整数型的数据为了测试上述11种情况,设计出的测试数据列在表7.1中:表7.1 程序TRIANGLE的测试数据测试功能测试数据abc1.等边2.等腰3.不等边4.非三角形5.退化情况6.零数据7.负数据8.遗漏数据9.无效数据10,10,1010,10,178,10,1210,10,2110,5,50,0,0;0,0,17;0,10,12-10,-10,-10;-10,-10,17-8,10,17-,-,-;10,-,-;8,10,-A,B,C;=,+,*8,10,A;7E3,10.5,A-,-,-10,17,108,12,1010,21,105,10,5-,-,-;0,17,0;12,0,10-,-,-;-10,17,-1017,-8,10-,-,-;-,10,-;8,-,10-,-,-;-,-,-8,A,10;10.5,7E3,A-,-,-17,10,1010,12,821,10,105,5,10-,-,-;17,0,0;12,10,10-,-,-;17,-10,-10;10,17,-8-,-,-;-,-,10;-,8,10-,-,-;-,-,-A,10,8;A,10.5,7E3表7.1中列出的第1种至第5种测试方案应该用不同整数值重复执行若干次,注意,这些整数值中应该包括程序可以接受的最大整数和最小整数,以及刚好大于和刚好小于这些极限值的整数假设程序TRINANGLE的流程图如图7.8所示,对应的程序图画在图7.9中。表7.2列出了第1种至第4种测试数据所覆盖的边表7.2 测试数据覆盖程度检验表编 号测试数据覆盖的边12a2b2c3a3b3c4a4b4c10,10,1010,10,1710,17,1017,10,108,10,128,12,1010,12,810,10,2110,21,1021,10,101,2,3,4,5,6,7,81,2,3,4,5,15,19,20,81,2,3,4,14,18,19,20,81,2,3,4,14,16,17,19,20,81,2,3,4,14,16,21,22,81,2,3,4,14,16,21,22,81,2,3,4,14,16,21,22,81,2,3,11,12,13,81,2,10,12,13,81,9,12,13,8不难看出,仅仅这四种测试数据已经不仅做到了边覆盖,而且也做到了路径覆盖,也就是说,对于这个例子而言,用黑盒法设计出的测试方案已经足够多了,不需要再用白盒法补充测试方案了
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服