第3章黑盒测试_第1页
第3章黑盒测试_第2页
第3章黑盒测试_第3页
第3章黑盒测试_第4页
第3章黑盒测试_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章黑盒测试问题1:三角形问题接收三个整数a,b,c作为输入,用作三角形的边,程序输出由这三个边确定的三角形的类型:等边三角形、等腰三角形、不等边三角形、非三角形。问题2:NextDate函数输入三个变量(年、月、日),函数返回输入日期后面的那个日期。1≤月份≤121≤日期≤311812≤年≤20123.1等价类划分3.1.1等价类划分原则等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例。在分析需求规格说明的基础上划分等价类,列出等价类表。等价类是指某个输入域的集合。如果用集合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其它输入条件进行测试也不可能发现错误。对揭露程序中的错误来说,集合中的每个输入条件是等效的。

有效等价类:有效等价类指的是对程序的规格说明是有意义的、合理的输入数据所构成的集合。在具体问题中,有效等价类可以有一个,也可以是多个。无效等价类:无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。3.1.2确定等价类原则1.如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。输入条件:…项数可以从1到999…有效等价类为“1≤

项数≤999”无效等价类为“项数<1”及“项数>999”值的个数 “学生选课允许2门至4门” 有效等价类: 选课2至4门 无效等价类: 只选一门课或未选课 选课超过4门2.输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。例:“标识符以字母开头” 有效等价类: 以字母开头的字符串 无效等价类: 以非字母开头的字符串3.如果确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划小。3.1.3确定测试用例1.设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,最终使得所有有效等价类均被覆盖。2.设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,最终使得所有无效等价类均被覆盖。有效等价类覆盖有效等价类的测试用例:abc覆盖等价类号码345(1)--(7)445(1)--(7),(8)455(1)--(7),(9)545(1)--(7),(10)444(1)--(7),(11)无效等价类3.1.4弱一般等价类两变量x1,x2的函数a«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]弱一般等价类:使用一个测试用例中的每个等价类(区间)的一个变量实现(单缺陷假设)。x1x2abegfcd三个测试用例使用每个等价类中的一个值强一般等价类基于多缺陷假设,需要等价类笛卡尔积的每个元素对应的测试用例a«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]x1x2abegfcda«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]覆盖所有等价类对可能的输入组合弱健壮等价类弱:基于单缺陷假设健壮:考虑无效值对有效输入,使用每个有效等价类的一个值对无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。x1x2abegfcda«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]强健壮等价类基于多缺陷假设,从所有等价类的笛卡尔积的每一个元素中获得测试用例。a«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]x1x2abegfcda«x1«d,区间[a,b),[b,c),[c,d]e«x2«g,区间[e,f),[f,g]3.1.5举例—三角形问题输出等价类R1={<a,b,c>:有三条边的等边三角形}R2={<a,b,c>:有三条边的等腰三角形}R3={<a,b,c>:有三条边的不等边三角形}R4={<a,b,c>:三条边的不构成三角形}弱一般等价类abc预期输出1555等边三角形2223等腰三角形3345不等边三角形4412非三角形弱健壮等价类abc预期输出1555等边三角形2223等腰三角形3345不等边三角形4412非三角形5-15565-15755-18201559520151055201NextDate问题三变量的有效区间M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1812≤年≤2012}无效等价类M2={月份:月份<1}M3={月份:月份>12}D2={日期:日期<

1}D3={日期:日期>31}Y2={年:年<

1812}Y3={年:年>

2012}弱一般等价类弱健壮测试用例月份日期年预期输出161519121912.6.16月份日期年预期输出161519121912.6.162-115191231315191246-119125632191266151811761520133.2边界值测试3.2.1边界值分析应遵循的原则:(1)如果输入条件规定了取值范围,或规定了值的个数,测试用例选择:范围的边界内,最小值,稍高于最小值,正常值,稍低于最大值,最大值。例1:程序的规格说明:“重量在10~50公斤范围内的邮 件,其计算邮费……”,测试用例选择:10公斤, 10.01 公斤,25公斤,49.99公斤,50公斤例2:“某输入文件可包含1~255个记录,”测试用例:1,2,120,254,255;例:涉及两个变量的函数x1,x2X1的取值:x1min,x1min+,x1nom,x1max-,x1maxX2的取值:x2min,x2min+,x2nom,x2max-,x2max关键假设:“单缺陷”假设:缺陷极少是由两个或多个缺陷的同时发生引起的。<x1nom,x2min><x1nom,x2min+><x1nom,x2nom><x1nom,x2max-><x1nom,x2max><x1min,x2nom><x1min+,x2nom><x1nom,x2nom><x1max-,x2nom><x1max,x2nom>x1x2abcd对于n变量函数,使除一个以外的所有变量取正常值,使剩余的那个变量取最小值、略高于最小值、正常值、略低于最大值、最大值,对每个变量都重复进行。一个n变量函数的边界值有:4n+1个测试用例?(2)针对规格说明的每个输出条件使用(1)原则。(3)如果规格设计中提到的输入输出是个有序的集合(如顺序文件表格等),就应注意选取有序集中的第一个和最后一个元素作为测试用例。(4)分析规格说明,找出其它的可能边界条件。边界值分析的局限性N个变量相互独立不考虑变量的语义3.2.2健壮性测试是边界值分析的一种简单扩展,除了使用五个边界值分析取值,还要通过采用一个略超过最大值的取值,以及一个略小于最小值的取值。一个n变量函数的健壮性测试用例有多少个?(基于“单缺陷”假设)6n+1x1x2abcd3.2.3最坏情况测试对每一个变量,首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值五个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。n变量函数的最坏情况测试会产生5n个测试用例?x1x2abcdX1的取值:x1min,x1min+,x1nom,x1max-,x1maxX2的取值:x2min,x2min+,x2nom,x2max-,x2max健壮最坏情况测试对每一个变量,首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值五个元素集合的测试,还要采用一个略超过最大值的取值,以及一个略小于最小值的取值。然后对这些集合进行笛卡尔积计算,以生成测试用例。n变量函数的健壮最坏情况测试会产生多少个测试用例?7nx1x2abcdX1的取值:x1min-,x1min,x1min+,x1nom,x1max- x1max,x1max+X2的取值:X2min-x2min,x2min+,x2nom,x2max- x2max,X2max+3.2.4特殊值测试使用领域知识、使用类似程序的经验开发测试用例的特殊值3.2.5举例—三角形问题边界值分析的测试用例abc预期结果110010012100100231001001004100100199510010020061001100710021008100100100910019910010100200100111100100122100100131001001001419910010015200100100最坏情况测试用例(5n)abc预期结果1111211231110041119951120061217122812100912199101220011110011211002131100100141100199151100200NextDate问题最坏情况的测试用例月份日期年预期结果111181221118133111912411201151120126121812712181381219129122011101220121111518121211518131311519121411520111511520123.2.6随机测试使用随机数生成器选出测试用例3.3判定表驱动测试三角形问题a,b,c构成三角形NYYYYYYYYa=b?-YYYYNNNNa=c?-YYNNYYNNb=c?-YNYNYNYN非三角形X不等边三角形X等腰三角形XXX等边三角形X不可能XXX判定表驱动测试

在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。处理这类问题的一个非常有力的分析和表达工具是决策表,或判定表(DecisionTable)。

判定表的组成

条件桩(ConditionStub)动作桩(ActionStub)

条件项(ConditionEntity)动作项(ActionEntity)

规则(rule)

条件桩条件项

动作桩动作项

条件桩条件项

动作桩动作项

条件桩条件项

动作桩动作项规则规则及规则合并任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。化简就是规则合并

有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系

YYNNYNXXYN-XYY-NNNXXY-NX

两条规则合并成一条两条规则的进一步合并

例问题要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义按5步建立判定表建立判定表的步骤①确定规则的个数。这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。②列出所有的条件茬和动作茬。

③填入条件项。建立判定表的步骤④填入动作茬和动作顶。这样便得到形如图的初始判定表。

1

2

3

4

5

6

7

8

功率大于50马力吗?

Y

Y

Y

Y

N

N

N

N

维修记录不全吗?

Y

Y

N

N

Y

Y

N

N

运行超过10年吗?

Y

N

Y

N

Y

N

Y

N

进行优先处理

x

x

X

X

X

作其他处理

X

x

x

初始判定表

建立判定表的步骤⑤化简。合并相似规则后得到图。

1

2

3

4

5

功率大于50马力吗?

Y

Y

Y

N

N

维修记录不全吗?

Y

N

N

-

-

运行超过10年吗?

-

Y

N

Y

N

进行优先处理

x

x

X

作其他处理

x

x

化简后的判定表

判定表在功能测试中的应用

一软件规格说明(1)当条件1和条件2满足,并且条件3和条件4不满足,或者当条件1、3和条件4满足时,要执行操作1。(2)在任一个条件都不满足时,要执行操作2。(3)在条件1不满足,而条件4被满足时,要执行操作3。

规则只给出了16种规则中的8种

根据规格说明得到的判定表默许的规则

规则1

规则2

规则3规则4条件1

Y

Y

N

N

条件2

Y

-

N

-

条件3

N

Y

N

-

条件4

N

Y

N

Y

操作1

x

x

操作2

x

操作3

x

判定表的优点和缺点优点:

它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。缺点:

不能表达重复执行的动作,例如循环结构。

使用判定表设计测试用例的Beizer条件①规格说明以判定表形式给出,或是很容易转换成判定表。②条件的排列顺序不会也不应影响执行哪些操作。③规则的排列顺序不会也不应影响执行哪些操作。④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

3.4因果图分析因果图

因果图方法(Cause一EffectGraphics):一种黑盒测试方法方法的依据:需求规格说明中的因果关系能够帮助我们按一定步骤,高效率地选择测试用例,同时还指出,程序规格说明描述中存在着的问题。

恒等c1=1e1=1c1=0e1=0非c1c2c3c1e1c1e1e1∨c1c2e1∧c1=1e1=0c1=0e1=1c1=1或c2=1或c3=1e1=1e1=0否则c1=1且c2=1e1=1e1=0否则或与因果图介绍abEacIbabOE约束(异):a,b中至多有一个可能为1即a和b不能同时为1I约束(或):a,b和c中至少有一个

必须是1,即a、b和c不能同时为0O约束(唯一):a和b中必须有一个

且仅有一个为1输入条件的约束abRR约束(要求):a是1时,b必须是1

即不可能a是1时b为0abMM约束(强制):若结果a是1时,

则结果b强制为0输出条件的约束步骤

①分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类。而结果是输出条件。②分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”。步骤③由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个特殊的符号标明约束条件。④把因果图转换成判定表。⑤把判定表中每一列表示的情况写成测试用例。例1软件规格说明书“第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L,如果第二列字符不是数字,则给出信息M。”原因和结果原因:

1——第一列字符是A;

2——第一列字符是B;

3——第二列字符是一数字。结果:

21——修改文件;

22——给出信息L;

23——给出信息M。因果图和具有约束的因果图11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。12322212311E判定表

根据因果图建立如下的判定表

表中8种情况的左面两列情况中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论