版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.6白盒测试技术7.6白盒测试技术白盒测试的原则对程序模块的所有独立执行路径至少测试一次对所有的逻辑判定取“真”与取“假”的两种情况都至少测试一次。在循环的边界和可操作范围内执行循环体测试内部数据结构的有效性,完成边界条件的测试。白盒测试对程序模块的所有独立对所有的逻辑判定取在循环的边界和迪杰斯特拉定律:穷尽测试永远不可能执行路径:520个如果1ms完成一个测试近似为1014个需3170年迪杰斯特拉定律:穷尽测试永远不可能执行路径:520个如果1m一、逻辑覆盖语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖一、逻辑覆盖语句覆盖1.语句覆盖设计测试用例,使被测程序中的每个可执行语句至少被执行一次1.语句覆盖设计测试用例,使被测程序中的每个可执行语句至inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例题inta,b;doublec;c=b+cc=c/aMNM=.T.且N=.T.
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1MNM=.T.且N=.T.c=b+cc=c/ac=c+
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case1:a=2,b=0,c=3×此语句未覆盖c=b+cc=c/ac=c+1TTFFa>0&&b
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case2输入:a=2,b=1,c=3√×Case2输出:c=3.5c=b+cc=c/ac=c+1TTFFa>0&&b思考:如果M为:a>0||b>0;N为:a>1&&c>1,测试用例与测试结果有设么变化?Case2:a=2,b=1,c=3Case2输出:c=3.5语句覆盖是弱覆盖标准!MNBugBug
c=b+cc=c/ac=c+1TTFFa>0||b>0a>1&&c>1思考:如果M为:a>0||b>0;Case2:a=2.判定覆盖准则设计测试用例,使被测程序中的每个判断的取真分支和取假分支都被测试用例至少执行一次2.判定覆盖准则设计测试用例,使被测程序中的每个判断的例题inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;MN
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例题inta,b;doublecMNc=b+cc=
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNM=.T.且N=.T.M=.F.且N=.F.设计测试用例及预期结果c=b+cc=c/ac=c+1TTFFa>0&&b测试用例测试用例条件中的取值有被忽略的情况a=2,b=1,c=3a=-2,b=1,c=-3输出:3.5-2判定覆盖仍是弱覆盖标准!
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<1Bug条件中的取值有被忽略的情况a=2,b=1,c=3输出:3.53.条件覆盖准则设计测试用例,使得每个判断中每个条件的可能取值至少满足一次。3.条件覆盖准则设计测试用例,使得每个判断中每个条件的可例题inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNP1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5例题inta,b;doublecc=b+cc=c/测试用例集对于判定M:条件a>0:取值为真为T1,取值为假为F1条件b>0:取值为真为T2,取值为假为F2对于判定N:条件a>1:取值为真为T3,取值为假为F3条件c>1:取值为真为T4,取值为假为F4虽然覆盖了所有条件,但不能保证多个判定分支均被覆盖到测试用例集对于判定M:虽然覆盖了所有条件,但不能保证多个判定4、
判定—条件覆盖准则设计足够测试用例,使得判定中的所有条件可能取值至少执行一次,同时,所有判定的可能结果至少执行一次。判定-条件覆盖能同时满足判定、条件两种覆盖标准。4、判定—条件覆盖准则设计足够测试用例,使得判定中的所有条例题inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MN例题inta,b;doublecc=b+cc=c/测试用例集为了使被测程序得到充分测试,不仅每个条件需要被覆盖,而且每个条件的组合也应该被覆盖到。测试用例集为了使被测程序得到充分测试,不仅每个条件需要被覆盖判定—条件覆盖准则的不足inta,b;doublec1if(a>0&&b>0){2c=c/a;3}4if(a>1||c<1){5c=c+1;6}7c=b+c;Buga=2,b=1,c=3a=-2,b=1,c=-3
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<112345输出:3.5-2判定—条件覆盖准则的不足inta,b;doublec5.条件组合覆盖准则设计足够的测试用例,使得判定中每个条件的所有可能组合至少出现一次,并且每个判定结果也至少出现一次。与条件覆盖准则的区别不是简单的要求每个条件都出现“真”与“假”两种结果,而是要求所有可能组合都至少被覆盖一次5.条件组合覆盖准则设计足够的测试用例,使得判定中每个条例题对于第一个判定:条件a>0:取值为真为T1,取值为假为F1条件b>0:取值为真为T2,取值为假为F2对于第二个判定条件:条件a>0:取值为真为T3,取值为假为F3条件c>1:取值为真为T4,取值为假为F4例题对于第一个判定:所有的组合条件所有的组合条件测试用例集不能保证所有路径被覆盖到测试用例集不能保证所有路径被覆盖到6.路径覆盖设计测试用例,来覆盖被测程序中的所有可能的执行路径6.路径覆盖设计测试用例,来覆盖被测程序中的所有可能的P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNc=b+cc=c/ac=c+1TTFFa>0&&b路径覆盖测试用例集不满足条件组合覆盖准则路径覆盖测试用例集不满足条件组合覆盖准则完全覆盖测试用例集完全覆盖测试用例集小结小结A^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTF7、覆盖准则间的层次关系如果满足准则A的测试用例集一定满足准则B,那么我们就认为准则A包含准则B。例如:判定覆盖准则包含语句覆盖准则7、覆盖准则间的层次关系如果满足准则A的测试用例集一定满足准语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作业:为以下流程图所示的程序段设计一组测试用例,要求分别满足四
基本路径测试法基本路径:保证被测程序的每个可执行语句至少被执行一次的最小路径集四基本路径测试法基本路径:保证被测程序的每个可执行语句基本路径测试法通过以下4个步骤来实现绘制程序控制流图分析环路复杂度导出基本可执行路径集设计测试用例基本路径测试法通过以下4个步骤来实现39流程图inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1步骤1:构造程序的控制流图39流程图inta,b;doublec;c=b+c
c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1c=b+cc=c/ac=c+1TTFFa>0&&b步骤2:计算程序环路复杂度环路复杂度又称圈复杂度或复杂度程序逻辑复杂性的度量值环路复杂度=基本路径数目经验表明,程序的可能存在的BUG数与环路复杂度有着很大的相关性。步骤2:计算程序环路复杂度环路复杂度又称圈复杂度或复杂度计算程序环路复杂度V(G)ACEDB123V(G)=区域数目V(G)=边的数目-节点数目+2V(G)=判断节点数目+1计算程序环路复杂度V(G)ACEDB123V(G)=区域数目步骤3:确定基本路径集存在多个可行的基本路径集其中一个可行的基本路径集包含如下基本路径A—C—EA—B—C—EA—B—C—D—E程序流程图ACEDB步骤3:确定基本路径集存在多个可行的基本路径集程序流程图AC步骤4:设计测试用例步骤4:设计测试用例例题1:确定图示控制流流图的基本路径集。123456879环路复杂度:方法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例题1:确定图示控制流流图的基本路径集。123456879环6354217环路复杂度:方法1:3方法2:8-7+2=3方法3:2+1=3基本路径集:12712346271235627例题2:确定图示控制流流图的基本路径集。6354217环路复杂度:基本路径集:例题2:确定图示控制流3EDBACFG9187654210R1R5R4R3R2例题3:确定图示控制流流图的基本路径集。环路复杂度:方法1:5方法2:10-7+2=5方法3:4+1=3基本路径集:ADFGADEFGABEFGABCBEFG3EDBACFG9187654210R1R5R4R3R2例题第六讲黑盒测试技术第六讲黑盒测试技术引言本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分、边界值分析、决策表法、因果图法等方法,并通过实例来介绍测试技术的应用。引言本章将开始讲黑盒测试的基本概念与基本方法,介绍等价类划分一、黑盒测试概述功能测试、基于规格说明的测试、数据驱动测试依据设计规格书(Specification)需求文档(Requirement)设计文档(Design)一、黑盒测试概述功能测试、基于规格说明的测试、数据驱动测试软件输入黑盒测试不深入代码细节输出软件输入黑盒测试不深入代码细节输出测试对象描述类比测试对象描述类比黑盒测试的内容不正确或遗漏了的功能正确地接受输入数据并产生正确地输出界面出错和界面美观问题安装中的出现的问题初始化和终止错误问题操作逻辑问题黑盒测试不正确或遗漏了的功能正确地接受输入数据界面出错和界面通过测试(正面测试)确认软件能做什么?黑盒测试失败测试(负面测试)迫使出错!黑盒测试的两种基本思路通过测试黑盒测试失败测试黑盒测试的两种基本思路正面测试负面测试正面测试负面测试等价类(EquivalenceClassPartitioning,ECP)对于某个输入域的集合,如果用集合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发现错误,对于检测程序中的错误来说,集合中每个输入条件都是等价的,就称该集合中的条件为等价类。1.概念二等价类划分法等价类(EquivalenceClassPartitio有效等价类是合理的、有意义的输入数据所构成的集合验证预期的功能和性能的实现无效等价类是不合理的,没有意义的输入数据构成的集合对无效数据的处理能力有效等价类①、如果输入条件规定了取值范围,则可以划分一个有效等价类和两个无效等价类。2.等价类的划分规则例:输入值是学生成绩,范围是0~100有效等价类:①0≤成绩≤100无效等价类:①成绩<0,②成绩>100①、如果输入条件规定了取值范围,则可以划分一个有效等价类和两②、如果输入数据是给定值或布尔值,则可以划分出一个有效等价类和一个无效等价类。例:程序输入条件x=10有效等价类:①x=10无效等价类:①x≠10程序输入性别:男有效等价类:男无效等价类:女②、如果输入数据是给定值或布尔值,则可以划分出一个有效等价类③、如果输入数据是一个数组(包括n个输入),且程序对不同输入值做不同处理,则有n个有效等价类和一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一有效等价类:①专科、②本科、③硕士、④博士无效等价类:①其它任何学历③、如果输入数据是一个数组(包括n个输入),且程序对不同输入④、如果输入数据必须遵循某种规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例:校内电话号码拨外线为9开头有效等价类:①
9+外线号码无效等价类:①非9开头+外线号码 ②9+非外线号码,…④、如果输入数据必须遵循某种规则,可确定一个有效等价类(符合3.测试用例的设计步骤(1)对输入或外部条件进行等价类划分,形成等价类表并编号;(2)设计用例,尽可能多地覆盖尚未覆盖的有效等价类,重复;(3)设计新用例,只覆盖一个无效等价类,重复。思考:3的顺序是否可以和2颠倒?3.测试用例的设计步骤(1)对输入或外部条件进行等价例1:报表日期
设某公司要打印2001~2005年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。例1:报表日期 设某公司要打印2001~2005年的报表,其第一步:划分等价类、编号第一步:划分等价类、编号第二步:为有效等价类设计测试用例
对表中编号为①②③的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~+例:准考证号码的等价类划分等价类的划分规则等价类的划分规则四边界值分析法BoundaryValueAnalysis,BVA
理论提出:长期的测试工作经验表明,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。四边界值分析法BoundaryValueAnal定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。定义: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,20121899,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.013.选择测试用例技巧
(1)输入条件:范围例如:如果程(2)输入条件:值的个数——最大个数,最小个数,比最小个数少一,比最大个数多一例如:一个输入文件应包括1~255个记录……则测试用:0,1,122,255,256等。(2)输入条件:值的个数例如:一个输入文件应包括1~255个(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)画出控制流图,用基本路径法设计测试用例。IfX>8andY>5thenifX>16orY>10then Z=3endifElseIfX>0orY>0then Z=2Else Z=1endifendif作业:IfX>8andY>5then2.用边界值法设计以下函数的测试用例。(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.用基本路径法设计测试用例。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作业:1.为以下流程图所示的程序段设计一组测试用例,要求分别划分等价类、编号划分等价类、编号软件工程--白盒测试技术--课件判定表又称决策表定义:把输入条件各种组合以及对应输出值都罗列出来而形成的表格。是一个典型的组合分析方法把问题的各种可能都列举出来,简明且不会遗漏。是最严格,最具有逻辑性的黑盒测试方法。五
判定表方法(DecisionTable)判定表又称决策表五判定表方法(DecisionTab
条件桩
条件项动作桩动作项判定表的结构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个条件的判定表,相应有2n个规则(每个条件分别取真、假值)。判定表的化简是以合并相似规则为目标若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。判定表的化简例题:打印机能否打印出正确的内容有多个影响因素,包括驱动程序、纸张、墨粉等,打印机会自动提示:驱动是否正确、提示没有纸张、提示没有墨粉,根据这些信息决定决定是否打印内容,请设计出影响条件与动作的判定表并化简。(为了简化问题,不考虑中途断电、卡纸等因素;假定优先警告缺纸,然后警告没有墨粉,最后警告驱动程序不正确。)条件桩驱动是否正确是否有纸张是否有墨粉1规则数:8动作桩打印内容提示驱动不正确提示缺纸提示缺粉2例题:打印机能否打印出正确的内容有多个影响因素,包括驱动程序构造判定表简化判定表构简化例题:某商场举行一次假日商品促销活动。在活动期间,对持会员卡的顾客,实行8.5折优惠,满1000元实行7折优惠;对其他顾客,消费满1000元的,实行9折优惠,并免费办理会员卡。请给出相应的判定表及测试用例集。持卡不持卡满1000不满满1000不满条件桩持卡会员消费满10001动作桩8.5折7折9折+办卡其它2规则:4例题:某商场举行一次假日商品促销活动。在活动期间,对持会员卡判定表判定表测试用例集测试用例集什么是因果关系?拿破仑说:六、因果图方法“失一个钉子,坏了一只蹄铁;坏了一只蹄铁,折了一匹战马;折了一匹战马,伤了一位骑士;伤了一位骑士,输了一场战斗;输了一场战斗,亡了一个帝国。”
这就是因果关系
什么是因果关系?拿破仑说:六、因果图方法“失一个钉子,坏了一因果图方法(Cause-effectDiagram)是借助图形,分析输入条件的各种组合,每种组合是“因”,必然有一个输出为“果”。因果图方法最终生成判定表,适用检查程序输入条件的各种组合情况。因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。因果图方法(Cause-effectDiagram)是借助1.因果图ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。c1e1恒等c1e1非①恒等:若ci是1,则ei也是1;否则ei为0。②非:若ci是1,则ei是0;否则ei是1。∽1.因果图ci表示原因,通常置于图的左部;ei表示结果,c2e1或orc1c3∨c2e1与andc1c3∧③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。④与:若c1、c2和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。c2e1或orc1c3∨c2e1与andc1c3∧③或:因果图因果图2、状态约束状态相互之间存在依赖关系,称为约束。输入/输出状态之间都存在约束。在因果图中,用特定的符号标明这些约束。2、状态约束状态相互之间存在依赖关系,称为约束。(1)输入条件之间的约束有以下4类:
①E约束(异):A、B至多有一个为1,即A和B不能同时为1。
②I约束(或):A、B至少有一个必须是1,即A、B不能同时为0。
ABEABI异或(1)输入条件之间的约束有以下4类:ABEABI异或③O约束(唯一);A、B中有且仅有1个为1。④R约束(要求):A是1时,B必须是1,即A、B必须相同。ABOABR唯一要求③O约束(唯一);A、B中有且仅有1个为1。ABOABR唯一(2)输出条件约束类型输出条件的约束只有M约束(强制):若结果E是1,则结果F强制为1。EFM强制(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约束,如图所示。11122212323VVE∽∽对应的因果图其对应的因果图如下: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.移动棋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版汽车行业价格保密协议范本3篇
- 2025年生物制药项目资金投入合作协议3篇
- 2025年加盟代理合作协议签署
- 2025年企业债券担保协议
- 2025版临时工炊事员聘用及厨房废弃物处理合同4篇
- 2025年健身技能培训协议
- 2025年云安全解决方案协议
- 2025年度极端天气现象录像采集合同4篇
- 2025年版农产品收购合同中关于产品新鲜度及质量标准的规定4篇
- 2025年医疗知识产权保护协议
- 开展课外读物负面清单管理的具体实施举措方案
- 中国骨关节炎诊疗指南(2024版)解读
- 2025年内蒙古包钢集团公司招聘笔试参考题库含答案解析
- 企业内训师培训师理论知识考试题库500题(含各题型)
- 2025年云南中烟工业限责任公司招聘420人高频重点提升(共500题)附带答案详解
- 2024年山西省晋中市公开招聘警务辅助人员(辅警)笔试专项训练题试卷(2)含答案
- 2023九年级历史上册 第二单元 5《罗马城邦和罗马帝国》教学实录 新人教版
- 2024解析:第三章物态变化-基础练(解析版)
- 北京市房屋租赁合同自行成交版北京市房屋租赁合同自行成交版
- 《AM聚丙烯酰胺》课件
- 教育综合体项目策划书
评论
0/150
提交评论