软件工程白盒测试技术课件.ppt

上传人:牧羊曲112 文档编号:1786849 上传时间:2022-12-18 格式:PPT 页数:147 大小:4.52MB
返回 下载 相关 举报
软件工程白盒测试技术课件.ppt_第1页
第1页 / 共147页
软件工程白盒测试技术课件.ppt_第2页
第2页 / 共147页
软件工程白盒测试技术课件.ppt_第3页
第3页 / 共147页
软件工程白盒测试技术课件.ppt_第4页
第4页 / 共147页
软件工程白盒测试技术课件.ppt_第5页
第5页 / 共147页
点击查看更多>>
资源描述

《软件工程白盒测试技术课件.ppt》由会员分享,可在线阅读,更多相关《软件工程白盒测试技术课件.ppt(147页珍藏版)》请在三一办公上搜索。

1、7.6 白盒测试技术,白盒测试的原则,迪杰斯特拉定律:穷尽测试永远不可能,执行路径:520个,如果1ms完成一个测试,近似为1014个,需3170年,一、 逻辑覆盖,语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖,1. 语句覆盖,设计测试用例,使被测程序中的每个可执行语句至少被执行一次,int a, b; double c; if ( a 0 ,例题,M,N,M=.T. 且 N=.T.,Case1:a=2, b=0, c=3,此语句未覆盖,Case2输入:a=2, b=1, c=3,Case2输出:c=3.5,思考:,如果M为:a 0 | b 0;N为:a 1&c 1,测试用例与测

2、试结果有设么变化?,Case2:a=2, b=1, c=3,Case2输出:c=3.5,语句覆盖是弱覆盖标准!,M,N,Bug,Bug,2. 判定覆盖准则,设计测试用例,使被测程序中的每个判断的取真分支和取假分支都被测试用例至少执行一次,例题,int a, b; double c if ( a 0 ,M,N,M,N,M=.T. 且 N=.T.M=.F. 且 N=.F.,设计测试用例及预期结果,测试用例,条件中的取值有被忽略的情况,a=2,b=1,c=3a= -2,b=1,c= -3,输出:3.5 -2,判定覆盖仍是弱覆盖标准!,Bug,3. 条件覆盖准则,设计测试用例,使得每个判断中每个条件的

3、可能取值至少满足一次。,例题,int a, b; double c if ( a 0 ,M,N,P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5,测试用例集,对于判定M:条件a0:取值为真为T1,取值为假为F1条件b0:取值为真为T2,取值为假为F2对于判定N:条件a1:取值为真为T3,取值为假为F3条件c1:取值为真为T4,取值为假为F4,虽然覆盖了所有条件,但不能保证多个判定分支均被覆盖到,4、 判定条件覆盖准则,设计足够测试用例,使得判定中的所有条件可能取值至少执行一次,同时,所有判定的可能结果至少执行一次。判定-条件覆盖能同时满足判定、条件两种覆盖标准。,例题,int

4、a, b; double c if ( a 0 ,M,N,测试用例集,为了使被测程序得到充分测试,不仅每个条件需要被覆盖,而且每个条件的组合也应该被覆盖到。,判定条件覆盖准则的不足,int a, b; double c1 if ( a 0 ,Bug,a=2,b=1,c=3a= -2,b=1,c= -3,输出:3.5 -2,5. 条件组合覆盖准则,设计足够的测试用例,使得判定中每个条件的所有可能组合至少出现一次,并且每个判定结果也至少出现一次。与条件覆盖准则的区别不是简单的要求每个条件都出现“真”与“假”两种结果,而是要求所有可能组合都至少被覆盖一次,例题,对于第一个判定:条件a0:取值为真为T

5、1,取值为假为F1条件b0:取值为真为T2,取值为假为F2对于第二个判定条件:条件a0:取值为真为T3,取值为假为F3条件c1:取值为真为T4,取值为假为F4,所有的组合条件,测试用例集,不能保证所有路径被覆盖到,6. 路径覆盖,设计测试用例,来覆盖被测程序中的所有可能的执行路径,P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5,M,N,路径覆盖测试用例集,不满足条件组合覆盖准则,完全覆盖测试用例集,小结,7、覆盖准则间的层次关系,如果满足准则A的测试用例集一定满足准则B,那么我们就认为准则A包含准则B。例如:判定覆盖准则包含语句覆盖准则,语句覆盖,判定覆盖,条件覆盖,判定/条

6、件覆盖,条件组合覆盖,路径覆盖,作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。,X8 & Y5,X0 | Y0,Z = 1,Z = 2,F,T,F,T,X16 | Y10,Z =3,F,T,四 基本路径测试法,基本路径:保证被测程序的每个可执行语句至少被执行一次的最小路径集,基本路径测试法通过以下4个步骤来实现绘制程序控制流图分析环路复杂度导出基本可执行路径集设计测试用例,39,流程图,int a, b; double c; if ( a 0 ,步骤1:构造程序的控制流图,步骤2:计算程序环路复杂度,环路复杂度又称

7、圈复杂度或复杂度程序逻辑复杂性的度量值环路复杂度=基本路径数目经验表明,程序的可能存在的BUG数与环路复杂度有着很大的相关性。,计算程序环路复杂度V(G),1,2,3,V(G)=区域数目V(G)=边的数目节点数目+2V(G)=判断节点数目+1,步骤3:确定基本路径集,存在多个可行的基本路径集其中一个可行的基本路径集包含如下基本路径ACEABCEABCDE,程序流程图,步骤4:设计测试用例,例题1:确定图示控制流流图的基本路径集。,环路复杂度:方法1:4方法2:11-9+2=4方法3:3+1=4,基本路径集:1-91-2-3-4-6-8-1-91-2-3-5-6-8-1-91-2-7-8-1-9

8、,环路复杂度:方法1:3方法2:8-7+2=3方法3:2+1=3,基本路径集:12712346271235627,例题2:确定图示控制流流图的基本路径集。,例题3:确定图示控制流流图的基本路径集。,环路复杂度:方法1:5方法2:10-7+2=5方法3:4+1=3,基本路径集:ADFGADEFGABEFGABCBEFG,第六讲 黑盒测试技术,引言,本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分、边界值分析、决策表法、因果图法等方法,并通过实例来介绍测试技术的应用。,一、黑盒测试概述,功能测试、基于规格说明的测试、数据驱动测试依据设计规格书(Specification)需求文档(Requ

9、irement)设计文档(Design),软件,输入,黑盒测试不深入代码细节,输出,测试对象描述类比,黑盒测试的内容,黑盒测试,失败测试(负面测试)迫使出错!,黑盒测试的两种基本思路,正面测试,负面测试,等价类(Equivalence Class Partitioning,ECP )对于某个输入域的集合,如果用集合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发现错误,对于检测程序中的错误来说,集合中每个输入条件都是等价的,就称该集合中的条件为等价类。,1. 概念,二 等价类划分法,有效等价类 是合理的、有意义的输入数据所构成的集合验证预

10、期的功能和性能的实现无效等价类 是不合理的,没有意义的输入数据构成的集合 对无效数据的处理能力,、如果输入条件规定了取值范围,则可以划分一个有效等价类和两个无效等价类。,2. 等价类的划分规则,例:输入值是学生成绩,范围是0100有效等价类:0成绩100无效等价类:成绩100,、如果输入数据是给定值或布尔值,则可以划分出一个有效等价类和一个无效等价类。,例:程序输入条件x=10 有效等价类: x=10 无效等价类: x10程序输入性别:男 有效等价类:男 无效等价类:女,、如果输入数据是一个数组(包括n个输入),且程序对不同输入值做不同处理,则有n个有效等价类和一个无效等价类。,例:输入条件说

11、明学历可为:专科、本科、硕士、博士四种之一有效等价类:专科、本科、硕士、博士无效等价类:其它任何学历,、如果输入数据必须遵循某种规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,例:校内电话号码拨外线为9开头有效等价类: 9外线号码无效等价类:非9开头外线号码 9非外线号码,,3. 测试用例的设计步骤,(1) 对输入或外部条件进行等价类划分,形成等价类表并编号;(2)设计用例,尽可能多地覆盖尚未覆盖的有效等价类,重复;(3)设计新用例,只覆盖一个无效等价类,重复。,思考:3的顺序是否可以和2颠倒?,例1:报表日期,设某公司要打印20012005年的报表,其中报表

12、日期为6位数字组成,其中,前4位为年份,后两位为月份。,第一步:划分等价类、编号,第二步:为有效等价类设计测试用例,对表中编号为的3个有效等价类用一个测试用例覆盖:,第三步:为每一个无效等价类至少设计一个测试用例,本例的10个等价类至少需要8个测试用例,不能出现相同的测试用例,4. 等价类划分法的特点,优点:较少的用例,较完整的覆盖。缺点:缺乏特殊用例的考虑;需要有深入的系统知识,才能合理的划分等价类。,对考试系统“成绩查询模块”子模块输入准考证号查询成绩行政专业准考证号码为:110001111215法律专业准考证号码为:210001212006财经专业准考证号码为:310001314015,

13、例2:准考证号码,例:准考证号码的等价类划分 有效等价类: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 无效等价类: (4) - 110000 (5) 111216 210000 (6) 212007 310000 (7) 314016 + ,等价类的划分规则,四 边界值分析法,Boundary Value Analysis,BVA 理论提出:长期的测试工作经验表明,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,定义:边界值分析法就是对输入或输出的

14、边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。,1. 常见的边界值,1)对16-bit 的整数而言 32767 和 -32768 是边界2)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行4)数组元素的第一个和最后一个5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次,边界值分析的基础思想是在输入变量的取值区间内取最小值、略高于最小值、正常值、略低于最大值和最大值5个值。,边界值分析,健壮性边界值分析,2. 用例设计思想,例1:一个输入年份的输入框,其限制条件是1900年至2012年,那么选择测试用例为:

15、1900,1901,1950,2011,2012 1899,1900,1901,1950,2011,2012,2013,例2:银行取款机,取款金额是100 10000,提款的颗粒度为100元,那么选择测试用例为:0,100,200,5000,9900,10000,10100,3. 选择测试用例技巧,(1)输入条件:范围刚刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值,例如:如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为”。测试用例:9.99,10 ,10.01,25,49.99, 50,50.01,(2)输入条件:值的个数最大个数,最小个数,比最小个

16、数少一,比最大个数多一,例如:一个输入文件应包括1255个记录则测试用:0,1,122,255,256等。,(3)(1)、(2)应用于输出条件,例如:某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元”测试用例选取应能使计算结果为0.00和1165.25、以及-0.01及1165.26等。例如:检索系统程序,要求每次“最少显示1条、最多显示4条检索信息测试用例应能使输出结果为:1,4,还应包括0,5等。,(4)输入、输出域是有序集合集合的第一个元素和最后一个元素(5)内部数据结构内部数据结构的边界上的值(6)分析规格说明,找出其它可能的边界条件(7)正常值接近取值范围中间值即可

17、,例:“输入3个值,输出三角形的类型”测试用例:,边界值是特殊的等价类 边界值分析不仅考虑输入,还要考虑输出。,4. 边界值与等价类的区别,5. 边界值的弱点,“单缺陷”假设:即由于缺陷导致的程序失效极少是由两个(或多个)缺陷的同时作用引起。程序输入是多个独立的变量,比较适合边界值变量之间相互影响时,效果不好(人的身高体重)边界值分析与等价类划分效果与测试人员的经验密切相关。,组合分析法,考虑思想:错误的主要来源来自于各种因素的组合,而非一个因素。优点:实现成本低、维护成本低、容易自动化、错误发现效率高、测试方式灵活。,作业:1.阅读伪代码,完成下列任务(1)画出程序流程图、盒图。(2)按照不

18、同的覆盖准则,确定测试用例的数量,并设计测试用例。语句覆盖判定覆盖条件覆盖路径覆盖(3)画出控制流图,用基本路径法设计测试用例。,If X8 and Y5 thenif X16 or Y10 thenZ=3endifElseIf X0 or Y0 thenZ=2ElseZ=1endifendif,2.用边界值法设计以下函数的测试用例。(1)y=ABS(x);(2)y=sin(x)3.用等价类划分法测试成绩输入文本框设计测试用例。(1)百分制;(2)五级制。4.需要测试学号输入文本框,学号结构为8位数字字符组成,前两位是年代后两位,3、4两位是专业编号(1-50),5、6位为班级编号(1-20)

19、,7、8位为50以内的流水号。,作业:1.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖和路径覆盖设计测试用例。2.用基本路径法设计测试用例。,X8 & Y5,X0 | Y0,Z = 1,Z = 2,F,T,F,T,X16 | Y10,Z =3,F,T,划分等价类、编号,判定表又称决策表定义:把输入条件各种组合以及对应输出值都罗列出来而形成的表格。是一个典型的组合分析方法把问题的各种可能都列举出来,简明且不会遗漏。是最严格,最具有逻辑性的黑盒测试方法。,五 判定表方法(Decision Table ),判定表的结构,1. 基本概念,电力公司将用户分为两类:单

20、费率用户:实行单一电价复费率用户:在规定时间内实行优惠电价,在其他时间内实行普通电价,条件桩:问题的所有条件,动作桩:所有可能采取的操作,规则:一个条件组合的取值及其执行的操作,动作:通常使用“0”和“1”表示不执行动作和执行动作条件:通常使用“0”和“1”表示条件不满足和条件满足,判定表的结构,条件桩,动作桩,行动项:在条件条目下采取的动作或操作,在判定表中贯穿条件项和动作项的一列就是一个规则,条件项:条件桩的所有可能取值,“真”、“假”或其它。,测试用例集,(1)判定表中条件的组合方式有多少,就有多少条规则,就有多少列,每列对应一个测试用例。(2)如果条件都是二叉条件,称为有限条目判定表。

21、如果条件有多个值,甚至对应于变量的等价类,称为扩展条目判定表。如条件“ATM交易类型”,可以取“存款”、“查询”和“取款”三种值。(3)由于判定表是机械地强制完备的,因此具有测试用例的完整性。,2. 判定表的特点,输入,输出,输入的等价类,功能处理,测试用例,3. 判定表的应用,测试用例,构造判定表可采用以下5个步骤:(1)列出条件桩和动作桩。(2)确定规则的个数。(3)填入条件项。(4)填入动作项,得到初始判定表。(5)简化判定表,合并相似规则。,4判定表的构造及化简,判定表的化简对于n个条件的判定表,相应有2n个规则(每个条件分别取真、假值)。判定表的化简是以合并相似规则为目标若表中有两条

22、以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。,例题:打印机能否打印出正确的内容有多个影响因素,包括驱动程序、纸张、墨粉等,打印机会自动提示:驱动是否正确、提示没有纸张、提示没有墨粉,根据这些信息决定决定是否打印内容,请设计出影响条件与动作的判定表并化简。(为了简化问题,不考虑中途断电、卡纸等因素;假定优先警告缺纸,然后警告没有墨粉,最后警告驱动程序不正确。),规则数:8,构造判定表,简化判定表,例题:某商场举行一次假日商品促销活动。在活动期间,对持会员卡的顾客,实行8.5折优惠,满1000元实行7折优惠;对其他顾客,消费满1000元的,实行9折优惠,并免费办理会员卡

23、。请给出相应的判定表及测试用例集。,1,规则:4,判定表,测试用例集,什么是因果关系?,拿破仑说:,六、因果图方法,“失一个钉子,坏了一只蹄铁; 坏了一只蹄铁,折了一匹战马; 折了一匹战马,伤了一位骑士;伤了一位骑士,输了一场战斗;输了一场战斗,亡了一个帝国。” 这就是因果关系,因果图方法(Cause-effect Diagram)是借助图形,分析输入条件的各种组合,每种组合是“因”,必然有一个输出为“果”。因果图方法最终生成判定表,适用检查程序输入条件的各种组合情况。 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。,1. 因

24、果图,ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。,c1,e1,恒等,c1,e1,非,恒等:若ci是1,则ei也是1;否则ei为0。非:若ci是1,则ei是0;否则ei是1。,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。“与”也可有任意个输入。,因果图,2、状态约束,状态相互之间存在依赖关系,称为约束。输入/输出状态之间都存在约束。在因果图中,用特定的符号

25、标明这些约束。,(1)输入条件之间的约束有以下4类: E约束(异):A 、B至多有一个为1,即A和B不能同时为1。 I约束(或):A、B至少有一个必须是1,即 A、B不能同时为0。,A,B,I,异,或,O约束(唯一);A、B中有且仅有1个为1。R约束(要求):A是1时,B必须是1,即A、B必须相同。,A,B,R,唯一,要求,(2)输出条件约束类型输出条件的约束只有M约束(强制):若结果E是1,则结果F强制为1。,E,F,M,强制,约束条件,3. 利用因果图生成测试用例的步骤,分 析,分 析,关 联,原因与原因之间,原因与结果之间的组合有不可能出现的情况,找出这些约束或限制条件。,3. 利用因果

26、图生成测试用例的步骤,分 析,转 换,关 联,因果图转换为判定表。,3. 利用因果图生成测试用例的步骤,分 析,转 换,输 出,关 联,判定表的每一列转化成一个测试用例。,3. 利用因果图生成测试用例的步骤,例1:某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。请画出因果图,生成判定表和测试用例。,原因:1第一列字符是A;2第一列字符是B;3第二列字符是一数字。,结果:21修改文件;22给出信息L;23给出信息M。,1、分析,对应的因果图,其对应的因果图如下:

27、11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图所示。,根据因果图建立判定表,把判定表的每一列拿出来作为依据,设计测试用例,4、使用因果图法的优点,1)充分考虑了输入的各种组合以及它们之间的相互制约关系。2)可以帮助测试人员按照一定的步骤,高效率的开发测试用例。3)因果图法将自然语言规格说明转化成形式语言规格说明的一种方法,可以找出规格说明存在的不完整性和二义性。,案例分析,有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。,(1)

28、分析 (2)因果图,(3)判定表,(4)设计测试用例,案例分析,中国象棋中走马的测试用例设计为例学习因果图的使用方法(下面未注明的均指的是对马的说明),一、 分析中国象棋中走马的实际情况,如果落点在棋盘外,则不移动棋子;如果落点与起点不构成日字型,则不移动棋子;如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;如果不属于1-3条, 落点处有己方棋子,则不移动棋子;如果不属于1-3条, 落点处无棋子,则移动棋子;如果不属于1-3条, 落点处为对方棋子(非老将),则移动棋子并除去对方棋子;如果不属于1-3条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。,二、 根据分析明确原因

29、和结果,原因:C1. 落点在棋盘上;C2.落点与起点构成日字;C3.落点方向的邻近交叉点无棋子;C4.落点处为自己方棋子;C5.落点处无棋子;C6.落点处为对方棋子(非老将);C7.落点处为对方老将。,结果:E1.不移动棋子E2.移动棋子E3.移动棋子,并除去对方棋子E4.移动棋子,并提示战胜对方,结束游戏,中间状态:11 落点合理且无半马腿,可以前进,添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表一,判定表分解,七、正交试验法,正交试验法在各个领域都有广泛的应用,是一种高效、快速、经济的试验设计方法。在应用系统测试中,如果对系统采用组合测试,工作量非常大,这就需要从

30、大量的数据中选出适量的具有代表性的测试用例,正交试验法可以解决用例选择这一问题。,如图是个人信息查询系统中的一个窗口。要测试的控件有三个:姓名、身份证号码、手机号码,而每个因素的状态有两个:填与不填,请用正交试验法选择测试用例。,(1)确定影响因子表中的因素数3,即至少有3个因素数;行数最少为3(2-1)+1=4。(2)选择正交表从正交表中查找,结果为L4(23)。,(3)变量映射,(4)测试用例填写姓名、填写身份证号、填写手机号填写姓名、不填身份证号、不填手机号不填姓名、填写身份证号、不填手机号不填姓名、不填身份证号、填写手机号根据其他测试方法增补以下测试用例作为补充:不填姓名、不填身份证号

31、、不填手机号从测试用例可以看出,如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法只需要5个,减少了测试用例个数。,用最小的测试用例集获得最大的测试覆盖率,八 功能图法,使用功能图形式化的方式表示程序的功能,并机械地生成功能图的测试用例。,功能图模型,状态迁移图用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态。逻辑功能模型用于表示状态输入条件和输出条件之间的对应关系;只适合于描述静态说明,输出数据仅由输入数据决定。,实例,Windows的屏幕保护程序测试,空闲状态,等待输入密码,ESC键按下 显示密码输入框,初始化屏幕,不正确的密码 清空密码

32、输入框,正确的密码 屏幕初始化,程序流程图,1. 状态迁移图,空闲状态,等待输入密码,初始化屏幕,ESC键按下,正确的密码输入,错误的密码输入,2. 逻辑功能表,(3)根据逻辑功能表,按照输入输出信息及状态来生成所需的节点和路径,形成基本路径组合。(4)利用基本路径测试法来设计测试用例。,九 错误推测法,有经验的测试人员根据自己的经验和直觉推测出程序可能存在的错误,进行针对性测试。基于如下思想:某处发现缺陷,则可能会隐藏更多的缺陷。列出所有可能出现的错误和容易发现错误的地方,然后依据测试人员经验做出选择。该方法不是一个系统方法,可以作为其他方法的辅助,具体实施:如果软件要求输入数字,就输入字母;如果软件只接受正数,就输入负数;如果输入时间,就输入五位数以上的年份等等。用好错误推测法应具备如下条件:充分了解业务具有开发和测试的实际经验掌握全面测试技术,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号