软件工程--白盒测试技术课件

上传人:文**** 文档编号:242757743 上传时间:2024-09-02 格式:PPT 页数:147 大小:1.21MB
返回 下载 相关 举报
软件工程--白盒测试技术课件_第1页
第1页 / 共147页
软件工程--白盒测试技术课件_第2页
第2页 / 共147页
软件工程--白盒测试技术课件_第3页
第3页 / 共147页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,7.6,白盒测试技术,7.6 白盒测试技术,白盒测试,的原则,对程序模块的所有,独立,执行路径,至少测试一次,对所有的,逻辑判定,取,“,真,”,与取,“,假,”,的两种情况,都至少测试一次。,在,循环的边界和可操作范围,内,执行循环体,测试,内部数据结构,的有效性,,完成边界条件的测试。,白盒测试对程序模块的所有独立对所有的逻辑判定取在循环的边界和,迪杰斯特拉定律:穷尽测试永远不可能,执行路径:,5,20,个,如果,1ms,完成一个测试,近似为,10,14,个,需,3170,年,迪杰斯特拉定律:穷尽测试永远不可能执行路径:520个如果1m,一、 逻辑覆盖,语句覆盖,判定覆盖,条件覆盖,判定,-,条件覆盖,条件组合覆盖,路径覆盖,一、 逻辑覆盖语句覆盖,1.,语句覆盖,设计测试用例,使被测程序中的,每个可执行语句至少被执行一次,1. 语句覆盖设计测试用例,使被测程序中的每个可执行语句至,int a, b; double c;,if ( a 0 & b 0 ),c = c / a;,if ( a 1 | c 1 ),c= c+1;,c = b+c;,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,例题,int a, b; double c; c=b+cc=c/a,M,N,M=.T.,且,N=.T.,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,MNM=.T. 且 N=.T. c=b+cc=c/ac=c+,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,Case1,:,a=2, b=0, c=3,此语句未覆盖,c=b+cc=c/ac=c+1TTFFa 0 & b,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,Case2,输入:,a=2, b=1, c=3,Case2,输出:,c=3.5,c=b+cc=c/ac=c+1TTFFa 0 & b,思考,:,如果,M,为:,a 0 | b 0;,N,为:,a 1&c 1,,,测试用例与测试结果有设么变化,?,Case2,:,a=2, b=1, c=3,Case2,输出:,c=3.5,语句覆盖是弱覆盖标准!,M,N,Bug,Bug,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0,|,b 0,a 1,&,c 1,思考:如果M为:a 0 | b 0;Case2:a=,2.,判定覆盖准则,设计测试用例,使被测程序中的,每个判断的取真分支和取假分支都被测试用例至少执行一次,2. 判定覆盖准则设计测试用例,使被测程序中的每个判断的,例题,int a, b; double c,if ( a 0 & b 0 ),c = c / a;,if ( a 1 | c 1 ),c= c+1;,c = b+c;,M,N,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,例题int a, b; double cMN c=b+cc=,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,1,2,3,4,5,M,N,M=.T.,且,N=.T.,M=.F.,且,N=.F.,设计测试用例及预期结果,c=b+cc=c/ac=c+1TTFFa 0 & b,测试用例,测试用例,条件中的取值有被忽略的情况,a=2,,,b=1,,,c=3,a= -2,,,b=1,,,c= -3,输出:,3.5,-2,判定覆盖仍是弱覆盖标准!,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 |,c 0 & b 0 ),c = c / a;,if ( a 1 | c 1 ),c= c+1;,c = b+c;,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,1,2,3,4,5,M,N,P1,:,1-2-4,P2,:,1-2-5,P3,:,1-3-4,P4,:,1-3-5,例题int a, b; double c c=b+cc=c/,测试用例集,对于判定,M,:,条件,a0,:取值为真为,T1,,取值为假为,F1,条件,b0,:取值为真为,T2,,取值为假为,F2,对于判定,N,:,条件,a1,:取值为真为,T3,,取值为假为,F3,条件,c1,:取值为真为,T4,,取值为假为,F4,虽然覆盖了所有条件,但不能保证多个判定分支均被覆盖到,测试用例集对于判定M:虽然覆盖了所有条件,但不能保证多个判定,4,、,判定,条件覆盖准则,设计足够测试用例,使得,判定中的所有条件可能取值至少执行一次,同时,所有判定的可能结果至少执行一次。,判定,-,条件覆盖能同时满足,判定,、,条件,两种覆盖标准。,4、 判定条件覆盖准则设计足够测试用例,使得判定中的所有条,例题,int a, b; double c,if ( a 0 & b 0 ),c = c / a;,if ( a 1 | c 1 ),c= c+1;,c = b+c;,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,1,2,3,4,5,M,N,例题int a, b; double c c=b+cc=c/,测试用例集,为了使被测程序得到充分测试,不仅每个条件需要被覆盖,而且每个条件的组合也应该被覆盖到。,测试用例集为了使被测程序得到充分测试,不仅每个条件需要被覆盖,判定,条件覆盖准则的不足,int a, b; double c,1 if ( a 0 & b 0 ),2 c = c / a;,3 ,4 if ( a 1 |,c 0 & b 0,a 1 |,c 0,:取值为真为,T1,,取值为假为,F1,条件,b0,:取值为真为,T2,,取值为假为,F2,对于第二个判定条件:,条件,a0,:取值为真为,T3,,取值为假为,F3,条件,c1,:取值为真为,T4,,取值为假为,F4,例题对于第一个判定:,所有的组合条件,所有的组合条件,测试用例集,不能保证所有路径被覆盖到,测试用例集不能保证所有路径被覆盖到,6.,路径覆盖,设计测试用例,来覆盖被测程序中的,所有可能的执行路径,6. 路径覆盖设计测试用例,来覆盖被测程序中的所有可能的,P1,:,1-2-4,P2,:,1-2-5,P3,:,1-3-4,P4,:,1-3-5,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,1,2,3,4,5,M,N,c=b+cc=c/ac=c+1TTFFa 0 & b,路径覆盖测试用例集,不满足条件组合覆盖准则,路径覆盖测试用例集不满足条件组合覆盖准则,完全覆盖测试用例集,完全覆盖测试用例集,小结,小结,AB,T,F,AB,T,F,ABTFABTF,AB,T,F,AB,T,F,AB,T,F,ABTFABTFABTF,7,、覆盖准则间的层次关系,如果,满足准则,A,的测试用例集一定满足准则,B,,那么我们就认为,准则,A,包含,准则,B,。,例如:判定覆盖准则包含语句覆盖准则,7、覆盖准则间的层次关系如果满足准则A的测试用例集一定满足准,语句覆盖,判定覆盖,条件覆盖,判定,/,条件覆盖,条件组合覆盖,路径覆盖,语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖,作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定,/,条件覆盖、组合覆盖和路径覆盖。,X8 & Y5,X0 | Y0,Z = 1,Z = 2,F,T,F,T,X16 | Y10,Z =3,F,T,作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足,四,基本路径测试法,基本路径:保证被测程序的每个,可执行语句,至少被执行一次的,最小路径集,四 基本路径测试法基本路径:保证被测程序的每个可执行语句,基本路径测试法通过以下,4,个步骤来实现,绘制程序控制流图,分析环路复杂度,导出基本可执行路径集,设计测试用例,基本路径测试法通过以下4个步骤来实现,39,流程图,int a, b; double c;,if ( a 0 & b 0 ),c = c / a;,if ( a 1 | c 1 ),c= c+1;,c = b+c;,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,步骤,1,:构造程序的控制流图,39流程图int a, b; double c; c=b+c,c=b+c,c=c/a,c=c+1,T,T,F,F,a 0 & b 0,a 1 | c 1,c=b+cc=c/ac=c+1TTFFa 0 & b,步骤,2,:计算程序环路复杂度,环路复杂度,又称,圈复杂度,或,复杂度,程序逻辑复杂性的,度量值,环路复杂度,=,基本路径数目,经验表明,程序的可能存在的,BUG,数与环路复杂度有着很大的相关性。,步骤2:计算程序环路复杂度环路复杂度又称圈复杂度或复杂度,计算程序环路复杂度,V(G),A,C,E,D,B,1,2,3,V,(,G,),=,区域数目,V,(,G,),=,边的数目节点数目,+2,V,(,G,),=,判断节点数目,+1,计算程序环路复杂度V(G)ACEDB123V(G)=区域数目,步骤,3,:确定基本路径集,存在多个可行的基本路径集,其中一个可行的基本路径集包含如下基本路径,A,C,E,A,B,C,E,A,B,C,D,E,程序流程图,A,C,E,D,B,步骤3:确定基本路径集存在多个可行的基本路径集程序流程图AC,步骤,4,:设计测试用例,步骤4:设计测试用例,例题,1,:确定图示控制流流图的基本路径集。,1,2,3,4,5,6,8,7,9,环路复杂度:,方法,1,:,4,方法,2,:,11-9+2=4,方法,3,:,3+1=4,基本路径集:,1-9,1-2-3-4-6-8-1-9,1-2-3-5-6-8-1-9,1-2-7-8-1-9,例题1:确定图示控制流流图的基本路径集。123456879环,6,3,5,4,2,1,7,环路复杂度:,方法,1,:,3,方法,2,:,8-7+2=3,方法,3,:,2+1=3,基本路径集:,127,1234627,1235627,例题,2,:确定图示控制流流图的基本路径集。,6354217环路复杂度:基本路径集:例题2:确定图示控制流,3,E,D,B,A,C,F,G,9,1,8,7,6,5,4,2,10,R1,R5,R4,R3,R2,例题,3,:确定图示控制流流图的基本路径集。,环路复杂度:,方法,1,:,5,方法,2,:,10-7+2=5,方法,3,:,4+1=3,基本路径集:,ADFG,ADEFG,ABEFG,ABCBEFG,3EDBACFG9187654210R1R5R4R3R2例题,第六讲 黑盒测试技术,第六讲 黑盒测试技术,引言,本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分、边界值分析、决策表法、因果图法等方法,并通过实例来介绍测试技术的应用。,引言本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分,一、黑盒测试概述,功能测试、基于规格说明的测试、数据驱动测试,依据,设计规格书(,Specification,),需求文档(,Requirement,),设计文档(,Design,),一、黑盒测试概述功能测试、基于规格说明的测试、数据驱动测试,软件,输入,黑盒测试不深入代码细节,输出,软件输入黑盒测试不深入代码细节输出,测试对象描述类比,测试对象描述类比,黑盒测试,的内容,不正确或遗漏了的功能,正确地接受输入数据,并产生正确地输出,界面出错和界面美观问题,安装中的出现的问题,初始化和终止错误问题,操作逻辑问题,黑盒测试不正确或遗漏了的功能正确地接受输入数据界面出错和界面,通过测试,(正面测试),确认软件能做什么?,黑盒测试,失败测试,(负面测试),迫使出错!,黑盒测试的两种基本思路,通过测试黑盒测试失败测试黑盒测试的两种基本思路,正面测试,负面测试,正面测试负面测试,等价类(,Equivalence Class Partitioning,,,ECP,),对于某个输入域的,集合,,如果用集合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发现错误,对于检测程序中的错误来说,集合中每个输入条件都是等价的,就称该集合中的条件为,等价类,。,1.,概念,二 等价类划分法,等价类(Equivalence Class Partitio,有效等价类,是,合理的、有意义的,输入数据所构成的集合,验证,预期的功能和性能的实现,无效等价类,是,不合理的,没有意义的,输入数据构成的集合,对无效数据的处理能力,有效等价类,、,如果输入条件规定了,取值范围,,则可以划分一个有效等价类和两个无效等价类。,2.,等价类的划分规则,例:输入值是学生成绩,范围是,0,100,有效等价类:,0,成绩,100,无效等价类:,成绩,100,、如果输入条件规定了取值范围,则可以划分一个有效等价类和两,、,如果输入数据是,给定值或布尔值,,则可以划分出一个有效等价类和一个无效等价类。,例:程序输入条件,x=10,有效等价类:,x=10,无效等价类:,x10,程序输入性别:男,有效等价类:男,无效等价类:女,、如果输入数据是给定值或布尔值,则可以划分出一个有效等价类,、,如果输入数据是一个数组(包括,n,个输入),且程序对不同输入值做不同处理,则有,n,个有效等价类和一个无效等价类。,例:输入条件说明学历可为,:,专科、本科、硕士、博士四种之一,有效等价类:,专科、,本科、,硕士、,博士,无效等价类:,其它任何学历,、如果输入数据是一个数组(包括n个输入),且程序对不同输入,、,如果输入数据必须遵循某种规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则,),。,例:校内电话号码拨外线为,9,开头,有效等价类:,9,外线号码,无效等价类:,非,9,开头外线号码,9,非外线号码,,、如果输入数据必须遵循某种规则,可确定一个有效等价类(符合,3.,测试用例的设计步骤,(1),对,输入,或,外部条件,进行等价类划分,形成,等价类表,并编号;,(2),设计用例,,尽可能多地覆盖尚未覆盖的有效等价类,,重复;,(3),设计新用例,,只覆盖一个无效等价类,,重复。,思考:,3,的顺序是否可以和,2,颠倒?,3. 测试用例的设计步骤(1) 对输入或外部条件进行等价,例,1,:报表日期,设某公司要打印,2001,2005,年的报表,其中报表日期为,6,位数字组成,其中,前,4,位为年份,后两位为月份。,例1:报表日期设某公司要打印20012005年的报表,其,第一步:划分等价类、编号,第一步:划分等价类、编号,第二步:为有效等价类设计测试用例,对表中编号为,的,3,个有效等价类用一个测试用例覆盖:,第二步:为有效等价类设计测试用例对表中编号为的3个,第三步:为每一个无效等价类至少设计一个测试用例,本例的,10,个等价类至,少需要,8,个测试用例,不能出现相同的测试用例,第三步:为每一个无效等价类至少设计一个测试用例本例的10个等,4.,等价类划分法的特点,优点:较少的用例,较完整的覆盖。,缺点:,缺乏特殊用例的考虑,;,需要有深入的系统知识,才能合理的划分等价类。,4. 等价类划分法的特点优点:较少的用例,较完整的覆盖。,对考试系统,“,成绩查询模块,”,子模块,输入准考证号查询成绩,行政专业准考证号码为,:110001,111215,法律专业准考证号码为,:210001,212006,财经专业准考证号码为,:310001,314015,例,2,:准考证号码,对考试系统“成绩查询模块”子模块输入准考证号查询成绩例2,例,:,准考证号码的等价类划分,有效等价类,:,(1) 110001,111215,(2) 210001,212006,(3) 310001,314015,无效等价类,:,(4) -,110000,(5) 111216,210000,(6) 212007,310000,(7) 314016,+,例:准考证号码的等价类划分,等价类的划分规则,等价类的划分规则,四 边界值分析法,Boundary Value Analysis,,,BVA,理论提出:,长期的测试工作经验表明,大量的错误是发生在,输入,或,输出,范围的,边界,上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,四 边界值分析法 Boundary Value Anal,定义:,边界值分析法就是对,输入或输出的边界值,进行测试的一种黑盒测试方法。,通常边界值分析法是,作为对等价类划分法的补充,,这种情况下,其测试用例来自等价类的边界。,定义:,1.,常见的边界值,1,)对,16-bit,的整数而言,32767,和,-32768,是边界,2,)屏幕上光标在最左上、最右下位置,3,)报表的第一行和最后一行,4,)数组元素的第一个和最后一个,5,)循环的第,0,次、第,1,次和倒数第,2,次、最后一次,1. 常见的边界值1)对16-bit 的整数而言 3276,边界值分析的基础思想是在输入变量的取值区间内取,最小值、略高于最小值、正常值、略低于最大值和最大值,5,个值。,边界值分析,健壮性,边界值分析,2.,用例设计思想,边界值分析的基础思想是在输入变量的取值区间内取最小值、略高于,例,1,:,一个输入年份的输入框,,其,限制条件是,1900,年至,2012,年,那么,选择测试用例为:,1900,1901,1950,2011,2012,1899,1900,1901,1950,2011,2012,2013,例1:一个输入年份的输入框,其限制条件是1900年至2012,例,2,:,银行,取,款机,,取款,金额是,100,10000,,提款的颗粒度为,100,元,那么,选择测试用例为:,0,100,200,5000,9900,10000,10100,例2:银行取款机,取款金额是100 10000,提款的颗,3.,选择测试用例技巧,(,1,),输入条件:范围,刚刚达到,这个范围的边界的值,以及,刚刚超越,这个范围边界的值,例如:如果程序的规格说明中规定:,“,重量在,10,公斤至,50,公斤范围内的邮件,其邮费计算公式为,”,。,测试用例,:9.99,10,10.01,25,49.99, 50,50.01,3. 选择测试用例技巧 (1)输入条件:范围例如:如果程,(,2,),输入条件:值的个数,最大个数,最小个数,比最小个数少一,比最大个数多一,例如:一个输入文件应包括,1255,个记录,则测试用:,0,,,1,,,122,,,255,,,256,等。,(2)输入条件:值的个数例如:一个输入文件应包括1255个,(,3,),(,1,)、(,2,)应用于输出条件,例如:某程序的规格说明要求计算出“每月保险金扣除额为,0,至,1165.25,元”,测试用例选取应能使计算结果为,0.00,和,1165.25,、以及,-0.01,及,1165.26,等。,例如:检索系统程序,要求每次,“,最少显示,1,条、最多显示,4,条检索信息,测试用例应能使输出结果为:,1,,,4,,还应包括,0,,,5,等。,(3)(1)、(2)应用于输出条件例如:某程序的规格说明要求,(,4,)输入、输出域是,有序集合,集合的第一个元素和最后一个元素,(,5,),内部数据结构,内部数据结构的边界上的值,(,6,)分析规格说明,找出其它可能的边界条件,(,7,),正常值,接近取值范围中间值,即可,(4)输入、输出域是有序集合,例:,“,输入,3,个值,输出三角形的类型,”,测试用例:,例:“输入3个值,输出三角形的类型”测试用例:,边界值是特殊的等价类,边界值分析不仅考虑输入,还要考虑输出。,4.,边界值与等价类的区别,边界值是特殊的等价类 4. 边界值与等价类的区别,5.,边界值的弱点,“,单缺陷,”,假设,:,即由于缺陷导致的程序失效极少是由两个(或多个)缺陷的同时作用引起。,程序,输入是,多个独立的变量,,比较,适合边界值,变量之间相互影响时,,效果不好,(,人的身高体重,),边界值分析与等价类划分效果与测试人员的经验密切相关。,5. 边界值的弱点“单缺陷”假设:即由于缺陷导致的程序失效,组合分析法,考虑思想:错误的主要来源来自于各种因素的组合,而非一个因素。,优点:实现成本低、维护成本低、容易自动化、错误发现效率高、测试方式灵活。,组合分析法考虑思想:错误的主要来源来自于各种因素的组合,而非,作业:,1.,阅读伪代码,完成下列任务,(,1,)画出程序流程图、盒图。,(,2,)按照不同的覆盖准则,确定测试用例的数量,并设计测试用例。,语句覆盖,判定覆盖,条件覆盖,路径覆盖,(,3,)画出控制流图,用基本路径法设计测试用例。,If X8 and Y5 then,if X16 or Y10 then,Z=3,endif,Else,If X0 or Y0 then,Z=2,Else,Z=1,endif,endif,作业:If X8 and Y5 then,2.,用边界值法设计以下函数的测试用例。,(,1,),y=ABS(x),;(,2,),y=sin(x),3.,用等价类划分法测试成绩输入文本框设计测试用例。,(,1,)百分制;(,2,)五级制。,4.,需要测试学号输入文本框,学号结构为,8,位数字字符组成,前两位是年代后两位,,3,、,4,两位是专业编号(,1-50,),,5,、,6,位为班级编号(,1-20,),,7,、,8,位为,50,以内的流水号。,2.用边界值法设计以下函数的测试用例。,作业:,1.,为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖和路径覆盖设计测试用例。,2.,用基本路径法设计测试用例。,X8 & Y5,X0 | Y0,Z = 1,Z = 2,F,T,F,T,X16 | Y10,Z =3,F,T,作业:1.为以下流程图所示的程序段设计一组测试用例,要求分别,划分等价类、编号,划分等价类、编号,软件工程-白盒测试技术课件,判定表又称,决策表,定义:把输入条件各种组合以及对应输出值都罗列出来而形成的表格。,是一个典型的,组合分析,方法,把问题的各种可能都列举出来,简明且不会遗漏。,是最严格,最具有逻辑性的黑盒测试方法。,五,判定表方法(,Decision Table,),判定表又称决策表五 判定表方法(Decision Tab,条件桩,条件项,动作桩 动作项,判定表的结构,1.,基本概念,判定表的结构1. 基本概念,电力公司将用户分为两类:,单费率,用户:实行,单一电价,复费率,用户:在,规定时间,内实行,优惠电价,,在其他时间内实行,普通电价,条件桩,单费率,复费率,规定期,动作桩,单一电价,优惠电价,普通电价,1.,单费率,:,单一电价,2.,复费率,+,在规定时间,:,优惠电价,3.,复费率,+,不在规定的时间:普通电价,规 则,条件桩:问题的所有条件,动作,桩:所有可能采取的操作,规则:一个条件组合的取值及其执行的操作,电力公司将用户分为两类:条件桩动作桩1.单费率:单一电价规,条件桩,条件项,动作桩 动作项,动作:通常使用,“,0,”,和,“,1,”,表示不执行动作和执行动作,条件:通常使用,“,0,”,和,“,1,”,表示条件不满足和条件满足,判定表的结构,规则,动作:通常使用“0”和“1”表示不执行动作和执行动作判定表,条件桩,动作桩,规,则,1,规,则,2,规,则,3,行动,项,:在条件条目下采取的动作或操作,在判定表中贯穿条件项和动作项的,一列就是一个规则,条件,项,:条件桩的所有可能取值,,“,真,”、“,假,”,或,其它,。,条件桩动作桩规规规行动项:在条件条目下采取的动作或操作在判定,测试用例集,测试用例集,软件工程-白盒测试技术课件,(,1,)判定,表中,条件的组合方式有,多少,就有多少条规则,就有多少列,每列对应一个测试用例。,(2),如果条件都是,二叉条件,,,称为,有限条目,判定,表,。,如果条件有多个值,甚至对应于变量的等价类,,称为,扩展条目,判定,表,。,如条件,“,ATM,交易类型,”,,可以取,“,存款,”,、,“,查询,”,和,“,取款,”,三种值。,(,3,),由于,判定,表是机械地强制完备的,因此,具有测试用例的完整性。,2.,判定表的特点,(1)判定表中条件的组合方式有多少,就有多少条规则,就有多少,输入,输出,输入的等价类,功能处理,条件,动作,规则,测试用例,3.,判定表的应用,条件,动作,规则,测试用例,输入输出输入的等价类功能处理条件动作规则测试用例3. 判定,构造判定表可采用以下,5,个步骤:,(,1,)列出条件桩和动作桩。,(,2,)确定规则的个数。,(,3,)填入条件项。,(,4,)填入动作项,得到初始判定表。,(,5,)简化判定表,合并相似规则。,4,判定表的构造及化简,构造判定表可采用以下5个步骤:4判定表的构造及化简,判定表的化简,对于,n,个条件的判定表,相应有,2,n,个规则(每个条件分别取真、假值)。,判定表的化简是以合并相似规则为目标,若表中有两条以上规则具有,相同的动作,,,并且在条件项之间存在极为相似的关系,便可以合并,。,判定表的化简,例题:打印机能否打印出正确的内容有多个影响因素,包括,驱动程序、纸张、墨粉,等,打印机会自动提示:,驱动是否正确、提示没有纸张、提示没有墨粉,,根据这些信息决定决定是否,打印内容,,请设计出影响条件与动作的判定表并化简。,(为了简化问题,不考虑中途断电、卡纸等因素;假定优先警告缺纸,然后警告没有墨粉,最后警告驱动程序不正确。),条件桩,驱动是否正确,是否有纸张,是否有墨粉,1,规则数:,8,动作桩,打印内容,提示驱动不正确,提示缺纸,提示缺粉,2,例题:打印机能否打印出正确的内容有多个影响因素,包括驱动程序,构,造,判,定,表,简化,判,定,表,构简化,例题:某商场举行一次假日商品促销活动。在活动期间,对,持会员卡,的顾客,,实行,8.5,折优惠,,满,1000,元实行,7,折优惠,;对其他顾客,,消费满,1000,元,的,实行,9,折优惠,并免费办理会员卡,。请给出相应的判定表及测试用例集。,持卡,不持卡,满,1000,不满,满,1000,不满,条件桩,持卡会员,消费满,1000,1,动作桩,8.5,折,7,折,9,折,+,办卡,其它,2,规则:,4,例题:某商场举行一次假日商品促销活动。在活动期间,对持会员卡,判定表,判定表,测试用例集,测试用例集,什么是因果关系?,拿破仑说:,六、因果图方法,“,失一个,钉子,,坏了一只蹄铁;,坏了一只蹄铁,折了一匹战马;,折了一匹战马,伤了一位骑士;,伤了一位骑士,输了一场战斗;,输了一场战斗,,亡了一个,帝国,。,”,这就是,因果关系,什么是因果关系?拿破仑说:六、因果图方法“失一个钉子,坏了一,因果图方法(,Cause-effect Diagram,)是借助图形,分析输入条件的各种组合,每种组合是,“,因,”,,必然有一个输出为,“,果,”。,因果图方法,最终生成判定表,,适用检查程序输入条件的各种组合情况。,因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。,因果图方法(Cause-effect Diagram)是借助,1.,因果图,ci,表示原因,通常置于图的左部;,ei,表示结果,通常在图的右部。,ci,和,ei,均可取值,0,或,1,,,0,表示某状态不出现,,1,表示某状态出现。,c1,e1,恒等,c1,e1,非,恒等:若,ci,是,1,,则,ei,也是,1,;否则,ei,为,0,。,非:若,ci,是,1,,则,ei,是,0,;否则,ei,是,1,。,1. 因果图ci表示原因,通常置于图的左部;ei表示结果,,c2,e1,或,or,c1,c3,c2,e1,与,and,c1,c3,或:若,c1,或,c2,或,c3,是,1,,则,ei,是,1,;否则,ei,为,0,。“或”可有任意个输入。,与:若,c1,、,c2,和,c2,都是,1,,则,ei,为,1,;否则,ei,为,0,。“与”也可有任意个输入。,c2e1或 orc1c3c2e1与 andc1c3或:,因果图,因果图,2,、状态约束,状态相互之间存在依赖关系,称为约束。,输入,/,输出状态之间都存在约束。,在因果图中,用特定的符号标明这些约束。,2、状态约束状态相互之间存在依赖关系,称为约束。,(,1,)输入条件之间的约束有以下,4,类:,E,约束(异):,A,、,B,至多有一个为,1,,即,A,和,B,不能同时为,1,。,I,约束(或):,A,、,B,至少有一个必须是,1,,即,A,、,B,不能同时为,0,。,A,B,E,A,B,I,异,或,(1)输入条件之间的约束有以下4类:ABEABI异或,O,约束(唯一);,A,、,B,中,有且仅有,1,个,为,1,。,R,约束(要求):,A,是,1,时,,B,必须是,1,,即,A,、,B,必须相同。,A,B,O,A,B,R,唯一,要求,O约束(唯一);A、B中有且仅有1个为1。ABOABR唯一,(,2,)输出条件约束类型,输出条件的约束只有,M,约束(强制):若结果,E,是,1,,则结果,F,强制为,1,。,E,F,M,强制,(2)输出条件约束类型EFM强制,约束条件,约束条件,3.,利用因果图生成测试用例的步骤,分 析,分析软件规格说明,,找出原因,(输入条件或输入条件的等价类),与结果,(输出条件),并给每个原因和结果赋予一个,标识符,。,找出原因与结果、原因与原因之间,对应的关系,,画出因果图。,3. 利用因果图生成测试用例的步骤 分 析分析软件规格说明,分 析,关 联,原因与原因,之间,,原因与结果,之间的组合有不可能出现的情况,找出这些约束或限制条件。,3.,利用因果图生成测试用例的步骤,分 析关 联原因与原因之间,原因与结果之间的组合有不可能出现,分 析,转 换,关 联,因果图转换为判定表。,3.,利用因果图生成测试用例的步骤,分 析转 换关 联因果图转换为判定表。3. 利用因果图生成,分 析,转 换,输 出,关 联,判定表的每一列转化成一个测试用例。,3.,利用因果图生成测试用例的步骤,分 析转 换输 出关 联判定表的每一列转化成一个测试用例。3,例,1,:某软件规格说明书包含这样的要求:第一列字符必须是,A,或,B,,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息,L,;如果第二列字符不是数字,则给出信息,M,。,请画出因果图,生成判定表和测试用例。,原因:,1,第一列字符是,A,;,2,第一列字符是,B,;,3,第二列字符是一数字。,结果:,21,修改文件;,22,给出信息,L,;,23,给出信息,M,。,1,、分析,例1:某软件规格说明书包含这样的要求:第一列字符必须是A或,对应的因果图,其对应的因果图如下:,11,为中间节点;考虑到原因,1,和原因,2,不可能同时为,1,,因此在因果图上施加,E,约束,如图所示。,1,11,22,21,23,2,3,V,V,E,对应的因果图其对应的因果图如下:11122212323VVE,根据因果图建立判定表,根据因果图建立判定表,把判定表的每一列拿出来作为依据,设计测试用例,把判定表的每一列拿出来作为依据,设计测试用例,4,、使用因果图法的优点,1,)充分考虑了输入的,各种组合以及它们之间的相互制约关系,。,2,)可以帮助测试人员按照一定的步骤,,高效率的开发测试用例,。,3,)因果图法将自然语言规格说明转化成,形式语言规格说明,的一种方法,可以找出规格说明存在的,不完整性和二义性,。,4、使用因果图法的优点1)充分考虑了输入的各种组合以及它们之,案例分析,有一个处理单价为,1,元,5,角的盒装饮料的自动售货机软件。若投入,1,元,5,角硬币,按下,“,可乐,”,,,“,雪碧,”,或,“,红茶,”,按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还,5,角硬币。,案例分析有一个处理单价为1元5角的盒装饮料的自动售货机软件。,(,1,)分析 (,2,)因果图,(1)分析 (2)因果图,(,3,)判定表,(3)判定表,(,4,)设计测试用例,(4)设计测试用例,案例分析,中国象棋中走马的测试用例设计为例学习因果图的使用方法(下面未注明的均指的是对马的说明),案例分析中国象棋中走马的测试用例设计为例学习因果图的使用方法,一、 分析中国象棋中走马的实际情况,如果落点在棋盘外,则不移动棋子;,如果落点与起点不构成日字型,则不移动棋子;,如果在落点方向的邻近交叉点有棋子,(,绊马腿,),则不移动棋子;,如果不属于,1-3,条,落点处有己方棋子,则不移动棋子,;,如果不属于,1-3,条,落点处无棋子,则移动棋子;,如果不属于,1-3,条,落点处为对方棋子,(,非老将,),则移动棋子并除去对方棋子;,如果不属于,1-3,条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。,一、 分析中国象棋中走马的实际情况如果落点在棋盘外,则不移动,二、 根据分析明确原因和结果,原因:,C1.,落点在棋盘上;,C2.,落点与起点构成日字;,C3.,落点方向的邻近交叉点无棋子;,C4.,落点处为自己方棋子;,C5.,落点处无棋子;,C6.,落点处为对方棋子,(,非老将,),;,C7.,落点处为对方老将。,结果:,E1.,不移动棋子,E2.,移动棋子,E3.,移动棋子,并除去对方棋子,E4.,移动棋子,并提示战胜对方,结束游戏,中间状态:,11,落点合理且无半马腿,可以前进,二、 根据分析明确原因和结果 原因:结果:中间状态:11 ,添加中间节点,11,目的是作为导出结果的进一步原因,简化因果图导出的判定表一,c1,c3,c4,c5,E1,c7,c6,c2,E2,E3,E4,11,V,V,V,V,V,E,添加中间节点11,目的是作为导出结果的进一步原因,简化因果图,判定表分解,判定表分解,软件工程-白盒测试技术课件,七、,正交,试验,法,正交,试验法在各个领域都有广泛的应用,,是一种高效、快速、经济的,试验,设计方法,。,在应用系统测试中,如果对系统采用组合测试,工作量非常大,这就需要,从大量的数据中选出适量的具有代表性的测试用例,,,正交,试验法可以解决,用例选择,这一问题。,七、正交试验法正交试验法在各个领域都有广泛的应用,是一种高效,如图是个人信息查询系统中的一个窗口。要测试的控件有三个:姓名、身份证号码、手机号码,,,而每个因素的状态有两个:填与不填,,请用正交试验法选择测试用例。,如图是个人信息查询系统中的一个窗口。要测试的控件有三个:姓名,(1)确定影响因子,表中的因素数,3,,即,至少有,3,个因素数,;,行数最少为,3,(,2-1,),+1=4,。,(,2,)选择正交表,从正交表中查找,结果为,L4(2,3,),。,(1)确定影响因子,(,3,),变量映射,(3)变量映射,(,4,),测试用例,填写姓名、填写身份证号、填写手机号,填写姓名、不填身份证号、不填手机号,不填姓名、填写身份证号、不填手机号,不填姓名、不填身份证号、填写手机号,根据其他测试方法增补以下测试用例作为补充:,不填姓名、不填身份证号、不填手机号,从测试用例可以看出,如果按每个因素两个水平数来考虑的话,需要,8,个测试用例,而通过正交实验法只需要,5,个,减少了测试用例个数。,用最小的测试用例集获得最大的测试覆盖率,(4)测试用例用最小的测试用例集获得最大的测试覆盖率,八 功能图法,使用功能图,形式化的方式,表示程序的功能,并机械地生成功能图的测试用例。,八 功能图法使用功能图形式化的方式表示程序的功能,并机械,功能图模型,状态迁移图,用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态。,逻辑功能模型,用于表示状态输入条件和输出条件之间的对应关系;,只适合于描述静态说明,输出数据仅由输入数据决定。,功能图模型状态迁移图,实例,Windows,的屏幕保护程序测试,空闲状态,等待输入密码,ESC,键按下,显示密码输入框,初始化屏幕,不正确的密码,清空密码输入框,正确的密码,屏幕初始化,程序流程图,实例Windows的屏幕保护程序测试空闲状态等待输入密码ES,1.,状态迁移图,空闲状态,等待输入密码,初始化屏幕,ESC,键按下,正确的密码输入,错误的密码输入,1. 状态迁移图空闲状态等待输入密码初始化屏幕ESC键按,2.,逻辑功能表,2. 逻辑功能表,(,3,)根据逻辑功能表,,按照输入输出信息及状态来生成所需的节点和路径,形成基本路径组合,。,(,4,)利用,基本路径测试法,来设计测试用例。,(3)根据逻辑功能表,按照输入输出信息及状态来生成所需的节点,九 错误推测法,有经验的测试人员根据自己的经验和直觉推测出程序可能存在的错误,进行针对性测试。,基于如下思想:,某处发现缺陷,则可能会隐藏更多的缺陷。,列出所有可能出现的错误和容易发现错误的地方,然后依据测试人员经验做出选择。,该方法不是一个系统方法,可以作为其他方法的辅助,九 错误推测法有经验的测试人员根据自己的经验和直觉推测出程,具体实施:,如果软件要求输入数字,就输入字母;如果软件只接受正数,就输入负数;如果输入时间,就输入五位数以上的年份等等。,用好错误推测法应具备如下条件:,充分了解业务,具有开发和测试的实际经验,掌握全面测试技术,具体实施:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!