(精品)第3章 软件测试方法

上传人:痛*** 文档编号:247321841 上传时间:2024-10-17 格式:PPT 页数:149 大小:2.20MB
返回 下载 相关 举报
(精品)第3章 软件测试方法_第1页
第1页 / 共149页
(精品)第3章 软件测试方法_第2页
第2页 / 共149页
(精品)第3章 软件测试方法_第3页
第3页 / 共149页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 软件测试方法,主要内容:,3.1,白盒测试方法,3.2,黑盒测试方法,3.3,探查式测试,3.4,测试用例构成及设计,3.1,白盒测试方法,白盒测试,也称,结构测试,或,逻辑驱动测试,,是已知程序的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序的内部结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常运行。,3.1,白盒测试方法,白盒测试主要用于,单元测试,白盒测试的,基本原则,有:,对程序模块中所有独立路径至少测试一次;,对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;,对程序进行边界检查;,检验内部数据结构的有效性。,3.1,白盒测试方法,目前最常用的方法有:,逻辑覆盖法,:包括语句覆盖、判定覆盖、条件覆盖、判定,/,条件覆盖、条件组合覆盖、路径覆盖。,基本路径测试法,一、逻辑覆盖法,例:实现一个简单的数学运算,Dim a,b As Integer,Dim c As Double,If(a0 And b0)Then,c=c/a,End if,If(a1 or c1)Then,c=c+1,End if,c=b+c,一、逻辑覆盖法,1,、语句覆盖,基本思想:设计足够多的测试用例,使得程序中的每个可执行语句至少执行一次。,路径:,P1,(,124,),P2,(,125,),P3,(,134,),P4,(,135,),测试用例,:,a=2,,,b=1,,,c=6,一、逻辑覆盖法,1,、语句覆盖,【,优点,】,:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。,【,缺点,】,:语句覆盖是最弱的逻辑覆盖。不能发现其中的逻辑错误。,一、逻辑覆盖法,2,、判定覆盖,基本思想:设计足够多的测试用例,,使得程序中的每个判定至少都获得一次“真”值和“假”值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。,一、逻辑覆盖法,2,、判定覆盖,测试用例,:,a=2,,,b=1,,,c=6,a=-2,,,b=-1,,,c=-3,测试用例,:,a=1,,,b=1,,,c=0,a=2,,,b=-1,,,c=6,一、逻辑覆盖法,2,、判定覆盖,【,优点,】,:,判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。,【,缺点,】,:,往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而,忽略每个条件的取值,情况,必然会遗漏部分测试路径。判定覆盖仍是,弱,的逻辑覆盖。,一、逻辑覆盖法,3,、条件覆盖,基本思想:,设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真,/,假)都至少满足一次。,一、逻辑覆盖法,3,、条件覆盖,判断,M,表达式,:,条件,a0,取真 记为,T1,假,F1,条件,b0,取真 记为,T2,假,F2,判断,N,表达式,:,条件,a1,取真 记为,T3,假,F3,条件,c1,取真 记为,T4,假,F4,一、逻辑覆盖法,3,、条件覆盖,测试用例,覆盖条件,具体取值条件,a=2,b=-1,c=-2,T1,F2,T3,F4,a0,b1,c=1,a=-1,b=2,c=3,F1,T2,F3,T4,a0,a1,它覆盖了判定,M,的,N,分支和判断,N,的,Y,分支。,一、逻辑覆盖法,3,、条件覆盖,【,优点,】,:增加了对条件判定情况的测试。,【,缺点,】,:条件覆盖不一定包含判定覆盖。例如,上面设计的用例就没有覆盖判断,M,的,Y,分支和判断,N,的,N,分支。条件覆盖只能保证每个条件至少有一次为真,而,不考虑所有的判定结果。,一、逻辑覆盖法,4,、判定,条件覆盖,基本思想:,设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真,/,假)至少出现一次,并且每个判定本身的判定结果(真,/,假)也至少出现一次。,一、逻辑覆盖法,4,、判定,条件覆盖,按照判定条件覆盖的要求,设计的测试用例要满足如下条件:,(,1,)所有条件可能至少执行一次取值;,(,2,)所有判断的可能结果至少执行一次。,判断,M,判断,N,一、逻辑覆盖法,4,、判定,条件覆盖,判断,M,判断,N,测试用例,覆盖条件,覆盖判断,a=2,b=1,c=6,T1,T2,T3,T4,M,的,Y,分支,N,的,Y,分支,a=-1,b=-2,c=-3,F1,F2,F3,F4,M,的,N,分支,N,的,N,分支,一、逻辑覆盖法,4,、判定,条件覆盖,【,优点,】,:,能同时满足判定、条件两种覆盖标准。,【,缺点,】,:判定,/,条件覆盖准则的缺点是未考虑,条件的组合,情况。,一、逻辑覆盖法,5,、条件组合覆盖,基本思想:,通过执行足够的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。,一、逻辑覆盖法,5,、条件组合覆盖,设计,组合条件,如表所示:,编号,覆盖条件取值,判定条件取值,具体条件取值,1,T1,T2,M,取,Y,a0,b0,2,T1,F2,M,取,N,a0,b=0,3,F1,T2,M,取,N,a0,4,F1,F2,M,取,N,a=0,b1,c1,6,T3,F4,N,取,Y,a1,c=1,7,F3,T4,N,取,Y,a1,8,F3,F4,N,取,N,a=1,c 0),5 ,6 If(iType=0),7x=y+2;,8 else,9 If(iType=1),10 x=y+10;,11 else,12 x=y+20;,13 ,14,(,1,)画出控制流图,(,2,)计算环形复杂度,(,3,)导出独立路径(用语句编号表示),(,4,)设计测试用例,(,1,)画出控制流图:,(,2,)计算环形复杂度:,10,(条边),-8,(个节点),+2=4,(,3,)导出独立路径(用语句编号表示),路径,1,:,414,路径,2,:,46714,路径,3,:,4691013414,路径,4,:,4691213414,4,6,7,9,10,12,13,14,输入数据,预期输出,测试用例,1,irecordnum=0,itype=0,x=0,y=0,测试用例,2,irecordnum=1,itype=0,x=0,y=0,测试用例,3,irecordnum=1,itype=1,x=10,y=0,测试用例,4,irecordnum=1,itype=2,x=0,y=20,(,4,)设计测试用例:,例,下面是选择排序的程序,其中,datalist,是数据表,它有两个数据成员:一是元素类型为,Element,的数组,V,,另一个是数组大小,n,。算法中用到交换两数组元素内容的操作,Swap(),:,void SelectSort(datalist list),/,对表,list.V0,到,list.Vn-1,进行排序,n,是表当前长度。,for(int i=0;i list.n-1;i+),int k=i;,/,在,list,中找具有最小关键码的对象,for(int j=i+1;j list.n;j+),if(list.Vj list.Vk)k=j;,/,当前具最小关键码的对象,if(k!=i)Swap(list.Vi,list.Vk);,/,交换,(,1,)路径,1,,,3,(,2,)路径,1,,,2,,,4,,,6,(,3,)路径,1,,,2,,,4,,,7,(,4,)路径,1,,,2,,,5,,,8,,,3,(,5,)路径,1,,,2,,,5,,,9,,,3,三、循环测试,目标,:,在循环内部及边界上执行测试,(,1,)简单循环,(,2,)嵌套循环,(,3,)串接循环,(,4,)不规则循环,三、循环测试,1.,简单循环,(,迭代次数,n),完全跳过循环,只经过循环一次,经过循环两次,经过循环,m,(,m n,)次,分别经过循环,n-1,n,n+1,次,三、循环测试,2.,嵌套循环,在最里面的循环完成前面所述的简单循环测试,同时设定外部循环的最小迭代次数,逐步向外循环进行,直到所有循环被测试,三、循环测试,2.,嵌套循环,测试项,最外层循环次数,中间层循环次数,最内层循环次数,最内层,最小值,最小值,不同值,中间层,最小值,不同值,典型值,最外层,不同值,典型值,典型值,嵌套循环测试时各层循环控制变量的取值,三、循环测试,3.,串行连接循环,独立循环,可以分别看作简单循环测试,依赖性循环,可以看作是嵌套循环,4.,其它非循环结构,重新设计,!,四、程序插桩,程序插桩,是指在程序中设置断点或打印语句,在执行中了解程序中的一些动态特性。,程序插桩技术的研究涉及的问题:,探测哪些信息。,程序的什么位置设置探测点,需要多少探测点,四、程序插桩,例:两个数的最大公约数,3.2,黑盒测试方法,黑盒测试,(,也称功能测试或数据驱动测试,),把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据需求规格说明书,检查程序的功能是否符合它的功能说明。,功能测试,数据驱动测试,客户需求,事件驱动,输入,输出,3.2,黑盒测试方法,黑盒测试常用于发现以下错误,能否正确地接受输入数据,能否产生正确的输出信息;,是否有不正确或遗漏的功能;,功能操作逻辑的合理性;,界面是否出错;,安装过程中是否出现问题;,系统初始化问题。,3.2,黑盒测试方法,常用的方法,等价类划分,边界值分析,因果图,判定表驱动法,场景法,错误推测法,3.2.1,等价类划分方法,将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例,,等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的,分为,有效等价类,和,无效等价类,。,在分析需求规格说明的基础上划分等价类,列出等价类表,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。,确定等价类的方法(,1,),在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类,in range,greater than range,less than range,value,greater than value,less than value,在输入条件规定了输入值的集合或者规定了,“,必须如何,”,的条件的情况下,可以确立一个有效等价类和一个无效等价类。,确定等价类的方法(,2,),not member of set,member of set,在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类,确定等价类的方法(,3,),Boolean,Non-Boolean,确定等价类的方式,(4),在规定了输入数据的一组值,(,假定,n,个,),,并且程序要对每一个输入值分别处理的情况下,可确立,n,个有效等价类和一个无效等价类。,个人月收入,-x,税率,x=1600 0%,1600 x 2100 5%,500 =x 3600 10%,3600 =x 6600 15%,6600 =x 21600 20%,21600 =x 101600 45%,确定等价类的方式,(5),在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类,(,符合规则,),和若干个无效等价类,(,从不同角度违反规则,),。,等价类测试用例,-Example,等价类,1:Integer,等价类,2:Decimal fraction,等价类,3:Negative,等价类,4:Invalid input,根据等价类创建测试用例的步骤,a),建立等价类表,列出所有划分出的等
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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