版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Mardi28septembre,prèsd’Alberta,notreregardseperddanslaprairiecanadiennesurplombéeparleséoliennes.Cetterégionestl’unedesplusventeusesaupays.第3章黑盒测试方法黑盒测试法概述1边界值测试2等价类测试3基于决策表的测试4主要内容错误推测法53.1黑盒测试
把程序和系统看成一个黑盒子,完全不考虑程序的内部结构和处理程序,只是在程序的接口进行测试,以检查程序功能是否正常,程序是否能适当接收输入数据产生正确的输出数据。检查程序功能是否按照需求规格说明书的规定正常使用,测试每个功能是否有遗漏,检测性能等特性要求是否满足要求。检测模块接口是否存在问题。检测程序初始化和终止方面的错误。3.1黑盒测试法概述通过测试(Test-to-pass)就是通过执行测试用例看看软件基本功能是否实现,以确信软件在普通情况下能够正确运行。失败测试(Test-to-fail)则是采取各种手段通过搞垮软件来找出缺陷,是纯粹为了破坏软件而设计和执行测试用例。在设计黑盒测试用例时,考虑到测试用例数量和测试数据的有限性性,测试数据的选取起到了关键作用。
1、如何找到一组符合测试目标、具有代表性的测试数据?
2、如何通过测试数据优化来提高测试质量和效率?3.1黑盒测试法概述本章重点–测试数据选择边界值测试等价类测试决策表测试经验预测测试黑盒测试13542等价类划分法边界值分析法其它决策表法错误推测法3.1黑盒测试法概述边界值测试-起因长期的测试工作经验可以得到一个结论:大量缺陷发生在输入域或输出域的边界(即极值)上,而非输入或输出域的内部。通常可作为等价类测试的补充并非黑盒测试的特权如:日期的计算(第一天、最后一天….)学号的划分(年级、班级、专业的min和max值)银行信用卡利息罚款计算规则
3.2边界值测试考虑的问题如何寻找边界点如何限定边界点的附近邻域的大小在边界点附近的邻域内应选择多少个测试数据当存在多个输入条件时,应如何处理边界条件的组合情况3.2边界值测试针对每个局部的输入条件,确定边界点的基本原则:若输入条件规定了取值范围,则以该范围作为边界;若输入条件规定了值的个数,则以值的个数为边界;在输出域中,针对每个输出条件,使用原则(1)和(2);若输入域或输出域是有序集合(如有序表、顺序文件等),则选取集合中特定次序的元素作为边界,如第一个、最后一个元素等。3.2边界值测试基本边界值分析:基本思想对于每个边界点,在该点附近确定大小为1的邻域,并直接取略高于其值的点和略低于其值的点作为测试数据。不考虑无效数据。不考虑输入条件的边界组合情况。3.2边界值测试3.2边界值测试任何程序都可以看成是一个函数程序的输入构成函数的定义域程序的输出构成函数的值域基本原理错误更可能出现在输入变量的极值附近例如:程序把<=误写成了<基本思想是测试时输入变量取最小值(min)略高于最小值(min+)正常值(nom)略低于最大值(max-)最大值(max)3.2边界值测试基本边界值分析:一个输入条件基本思想是测试时输入变量取最小值(min)略高于最小值(min+)正常值(nom)略低于最大值(max-)最大值(max)3.2边界值测试基本边界值分析:两个输入条件边界值分析设计测试用例的获得通过使所有变量取正常值,只使一个变量按边界值基本思想循环取值。例如:两变量函数的边界值分析测试用例为:(X1nom,X2min)(X1nom,X2min+)(X1nom,X2nom)(X1nom,X2max-)(X1nom,X2max)(X1min,X2nom)(X1min+,X2nom)(X1max-,X2nom)(X1max,X2nom)对于一个n变量函数,测试用例数为4n+1个3.2边界值测试健壮性测试是边界值分析的一种简单扩展,用于观察例外处理情况基本思想是测试时输入变量取最小值(min)略高于最小值(min+)正常值(nom)略低于最大值(max-)最大值(max)略超过最大值(max+)略低于最小值(min-)3.2边界值测试最坏情况测试考虑多个变量取极值的情况最坏情况测试用例的获得所有变量均可取最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max)这五个元素中的任何一个。测试用例为五个集合的笛卡儿乘积N变量的最坏情况测试会产生5^n个测试用例健壮最坏情况测试N变量的健壮最坏情况测试会产生7^n个测试用例3.2边界值测试案例分析-三角形问题案例一:三角形问题三角形问题接受三个整数a、b、c作为输入,代表三角形的三条边。a,b,c必须满足以下条件:C1.1<=a<=200C2.1<=b<=200C3.1<=c<=200C4.a<b+cC5.b<a+cC6.c<a+b程序的输出是由这三条边确定的三角形类型等边三角形等腰三角形不等边三角形非三角形3.2边界值测试三角形问题的测试用例-边界值分析用例abc预期输出11001001等腰三角形21001002等腰三角形3100100100等边三角形4100100199非三角形5100100200等腰三角形61001100等腰三角形71002100等腰三角形8100100100等边三角形9100199100等腰三角形10100200100非三角形111100100等腰三角形122100100等腰三角边三角腰三角三角形3.2边界值测试三角形问题的最坏情况测试用例三个变量:a,b,c产生5^3=125个测试用例存在大量冗余3.2边界值测试案例分析-NextDate函数NextDate是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都为整数,且满足以下条件:C1.1<=月份<=12C2.1<=日期<=31C3.1912<=年<=2050测试用例设计3.2边界值测试3.2边界值测试3.3等价类测试等价类测试-起因穷举测试不可能希望达到测试的完备和无冗余例子1:你买了一个新手机,你想测试(黑盒)两个主要功能
1、手机通讯和短信功能
2、音乐播放功能
怎样测试比较合理?例子2:测试作业提交系统的功能时选择用户问题3.3等价类测试等价类的划分根据等价关系对输入或输出数据的集合进行划分将集合划分为互不相交的子集(无冗余性)这些子集的并是整个集合(完备性)测试思想通过每个等价类中的一个元素标识测试用例例如,在三角形问题中,测试用例(5,5,5)、(6,6,6)、(100,100,100)都可以测试等边三角形,但可以认为在程序中这三个测试用例具有“相同的处理”,因此这些用例是冗余的。等价类3.3等价类测试-基本原理动机;希望进行完备的测试,希望避免冗余等价类的划分根据等价关系对输入或输出数据的集合进行划分将集合划分为互不相交的子集(无冗余性)这些子集的并是整个集合(完备性)测试思想通过每个等价类中的一个元素标识测试用例例如,在三角形问题中,测试用例(5,5,5)、(6,6,6)、(100,100,100)都可以测试等边三角形,但可以认为在程序中这三个测试用例具有“相同的处理”,因此这些用例是冗余的。设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。allinputsi1i4i2i3等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例,、在分析需求规格说明的基础上划分等价类,列出等价类表3.3等价类测试-基本原理在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理,这种情况下可确立n个有效等价类和一个无效等价类。在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。个人月收入-x税率
x<=16000%D11600<x<21005%D22100<=x<360010%D33600<=x<660015%D46600<=x<2160020%D521600<=x<4160025%D6……>10160045%Dn3.3等价类测试-基本原理等价类等价类测试用例-Example等价类D1:Integer等价类D2:Decimal等价类D3:Negative等价类D4:Invalidinput3.3等价类测试-基本原理3.3等价类测试有效等价类对于规格说明而言,是合理的、有意义的输入数据构成的集合。无效等价类对于规格说明而言,是不合理的、无意义的输入数据构成的集合。3.3等价类测试等价类划分的基本原则:若输入条件规定了取值范围,且取值范围上、下限之间的数据是有意义的数据,则可确立一个有效等价类和两个无效等价类;若输入条件规定了“必须如何”的条件,则可确立一个有效等价类和一个无效等价类;若输入条件是一个布尔量,则可确定一个有效等价类和一个无效等价类;若输入条件是一个逻辑量,则可为每一个输入值确立一个有效等价类,并针对这组值确立一个无效等价类。弱一般等价类测试考虑单缺陷假设测试用例使用每个等价类中的一个值设两变量x1和x2函数有以下边界和等价区间:a<=x1<=d,区间为:[a,b),[b,c),[c,d]e<=x2<=g,区间为:[e,f),[f,g)3.3等价类测试强一般等价类测试考虑多缺陷假设测试用例集合为等价类笛卡儿积设两变量x1和x2函数有以下边界和等价区间:a<=x1<=d,区间为:[a,b),[b,c),[c,d]e<=x2<=g,区间为:[e,f),[f,g)3.3等价类测试弱健壮等价类测试考虑单缺陷假设、无效值用例标识对于有效输入,使用每个有效类的一个值对于无效输入,使用一个无效值,并保持其余的值都有效3.3等价类测试强健壮等价类测试考虑多缺陷假设、无效值用例标识从所有等价类(包括若干无效等价类)笛卡儿乘积中选取3.3等价类测试案例分析-三角形问题的等价类测试用例使用输出确定等价类R1={等边三角形}R2={等腰三角形}R3={不等边三角形}R4={不构成三角形}弱一般等价类测试用例(强一般等价类)测试用例abc预期输出WN1555等边三角形WN2223等腰三角形WN3345不等边三角形WN4412不构成三角形3.3等价类测试弱健壮等价类测试用例(考虑a,b,c的无效值)测试用例abc预期输出WR1-155a值不在范围内WR25-15b值不在范围内WR355-1c值不在范围内WR420155a值不在范围内WR552015b值不在范围内WR655201c值不在范围内3.3等价类测试强健壮等价类测试用例(以下为额外测试用例三维立方的一个角)测试用例abc预期输出SR1-155a值不在范围内SR25-15b值不在范围内SR355-1c值不在范围内SR4-1-15a,b值不在范围内SR55-1-1b,c值不在范围内SR6-15-1a,c值不在范围内SR7-1-1-1a,b,c值不在范围内3.3等价类测试使用输入确定等价类D1={a=b=c}D2={a=b,a!=c}D3={a=c,a!=b}D4={b=c,b!=a}D5={a!=b,a!=c,b!=c}D6={a>=b+c}D7={b>=a+c}D8={c>=a+b}同学们可自己设计等价类测试用例3.3等价类测试案例分析-NextDate函数的等价类测试用例确定等价类(方法一)M1={月份:1<=月份<=12}D1={日期:1<=日期<=31}Y1={年:1912<=年<=2012}M2={月份:月份<1}M3={月份:月份>12}D2={日期:日期<1}D3={日期:日期>31}Y2={年:年<1912}Y3={年:年>2012}3.3等价类测试弱一般等价类测试三个独立变量的有效等价类都只有一个,因此弱一般等价类测试与强一般等价类测试相同测试用例月份日期年预期输出WN1,SN161519121912年6月16日3.3等价类测试弱健壮等价类测试测试用例月份日期年预期输出WR161519121912年6月16日WR2-1151912月份不在有效值内WR313151811月份不在有效值内WR46-11912日期不在有效值内WR56321912日期不在有效值内WR66151811年不在有效值内WR76152013年不在有效值内3.3等价类测试强健壮等价类测试以下是强健壮等价类测试用例三维立方的一个角测试用例月份日期年预期输出SR1-1151912月份不在有效值内SR26-11912日期不在有效值内SR36151811年不在有效值内SR4-1-11912月份和日期不在有效值内SR56-11811日期和年不在有效值内SR6-1151811月份和年不在有效值内SR7-1-11811月份,日期和年不在有效值内3.3等价类测试案例分析-NextDate函数的等价类测试用例确定等价类(方法二)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1<=日期<=28}D2={日期:日期=29}D3={日期:日期=30}
D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}3.3等价类测试等价类测试用例弱一般等价类测试用例应该有4个强一般等价类测试用例应该有 3个(月份类)x4个(日期类)x2(年类)=24个强健壮等价类测试用例对每个变量加上2个无效类测试用例数为:5x6x4=120个请同学自己思考各测试用例。弱一般等价类测试:测试用例使用每个等价类中的一个值强一般等价类测试:测试用例集合为等价类笛卡儿积3.3等价类测试3.4基于决策表的测试定义也称判定表,是分析和表达多逻辑条件下执行不同操作的情况的工具决策表的用途能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。决策表举例
12345678问题你觉得疲倦吗?YYYYNNNN你对内容感兴趣吗?YYNNYYNN书中内容使你胡涂吗?YNYNYNYN建议请回到本章开头重读
√
继续读下去
√
跳到下一章去读
√√停止阅读,请休息√√√√
读书指南决策表3.4基于决策表的测试决策表的组成条件桩:列出了问题得所有条件。通常认为列出的条件的次序无关紧要。动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。动作项:列出在条件项的各种取值情况下应该采取的动作。规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。3.4基于决策表的测试规则合并(化简)将具有相同动作,并且其条件项之间存在着极为相似关系的两条或多条规则合并为一条规则1234问题你觉得疲倦吗?YNNN你对内容感兴趣吗?-YYN书中内容使你胡涂吗?-YN-建议请回到本章开头重读√继续读下去√跳到下一章去读√停止阅读,请休息√
12345678问题你觉得疲倦吗?YYYYNNNN你对内容感兴趣吗?YYNNYYNN书中内容使你胡涂吗?YNYNYNYN建议请回到本章开头重读
√
继续读下去
√
跳到下一章去读
√√停止阅读,请休息√√√√
3.4基于决策表的测试决策表的建立步骤1列出所有的条件桩和动作桩
2确定规则的个数
3填入条件项
4填入动作项
5合并相似规则
实战演习问题要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。请建立决策表。3.4基于决策表的测试决策表的类型有限条目决策表所有条件都是二叉条件(真/假)决策表扩展条目决策表条件可以有多个值3.4基于决策表的测试案例分析-三角形问题1列出所有的条件桩和行动桩C1:a<b+c?C2:b<a+c?C3:C<a+b?C4:a=b?C5:a=c?C6:b=c?条件桩非三角形不等边三角形等腰三角形等边三角形不可能行动桩
2确定规则的个数
2^6=64规则数3.4基于决策表的测试
3填入条件项
4填入动作项
C1:a<b+c?FFFFFFFFFF…C2:b<a+c?FFFFFFFFFF…C3:C<a+b?FFFFFFFFTT…C4:a=b?FFFFTTTTFF…C5:a=c?FFTTFFTTFF…C6:b=c?FTFTFTFTFT…A1:非三角形√√√√√√√√√√A2:不等边三角形A3:等腰三角形A4:等边三角形A5:不可能3.4基于决策表的测试
5合并相似规则
C1:a<b+c?FFFFFFFFFF…C2:b<a+c?FFFFFFFFFF…C3:C<a+b?FFFFFFFFTT…C4:a=b?FFFFTTTTFF…C5:a=c?FFTTFFTTFF…C6:b=c?FTFTFTFTFT…A1:非三角形√√√√√√√√√√A2:不等边三角形A3:等腰三角形A4:等边三角形A5:不可能3.4基于决策表的测试C1:a<b+c?FTTTTTTTTTTC2:b<a+c?-FTTTTTTTTTC3:C<a+b?--FTTTTTTTTC4:a=b?---TTTTFFFFC5:a=c?---TTFFTTFFC6:b=c?---TFTFTFTFA1:非三角形√√√A2:不等边三角形√A3:等腰三角形√√√A4:等边三角形√A5:不可能√√√3.4基于决策表的测试
6得到测试用例
用例IDabc预期输出DT1412非三角形DT2142非三角形DT3124非三角形DT4555等边三角形DT5???不可能DT6???不可能DT7223等腰三角形DT8???不可能DT9232等腰三角形DT10322等腰三角形DT11345不等边三角形3.4基于决策表的测试案例分析-NextDate函数(方法一)NextDate是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都为整数,且满足以下条件:C1.1<=月份<=12C2.1<=日期<=31C3.1912<=年<=20503.4基于决策表的测试1<=M<=12?FFFFTTTT1<=D<=31FFTTFFTT1912<=Y<=2050FTFTFTFTA1:无效输入√√√√√√√A2:?√列出所有的条件桩和行动桩为什么?3.4基于决策表的测试等价类M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1<=日期<=28}D2={日期:日期=29}D3={日期:日期=30}
D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}办法会有的…条件桩C1:月份在M1中C2:月份在M2中C3:月份在M3中C4:日期在D1中C5:日期在D2中C6:日期在D3中C7:日期在D4中C8:年是闰年C9:年是平年2^9=512太大!规则数?3.4基于决策表的测试等价类M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1<=日期<=28}D2={日期:日期=29}D3={日期:日期=30}
D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}条件桩C1:月份在{M1,M2,M3}中之一C2:日期在{D1,D2,D3,D4}中之一C3:年在{Y1,Y2}中之一新办法…3.4基于决策表的测试条件12345678910111213..C1:月份在M1M1M1M1M1M1M1M1M2M2M2M2M2..C2:日在D1D1D2D2D3D3D4D4D1D1D2D2D3..C3:年在Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1..有多少条规则?条件桩C1:月份在{M1,M2,M3}中之一C2:日期在{D1,D2,D3,D4}中之一C3:年在{Y1,Y2}中之一3.4基于决策表的测试案例分析-NextDate函数的测试用例确定行动桩…A1:不可能A2:日期增1A3:日期复位(置1)A4:月份增1A5:月份复位(置1)A6:年增13.4基于决策表的测试NextDate函数的扩展条目决策表条件1234567891011121314C1:月份在M1M1M1M1M2M2M2M2M3M3M3M3M3M3C2:日在D1D2D3D4D1D2D3D4D1D1D2D2D3D4C3:年在--------Y1Y2Y1Y2--A1:不可能√√√√A2:日增1√√√√√√?A3:日复位√√?√A4:月增1√??√A5:月复位?A6:年增1?注意规则8,103.4基于决策表的测试案例分析-NextDate函数(方法二)利用等价类M1={月份:每月有30天}M2={月份:每月有31天,12月除外}M3={月份:此月是12月}M4={月份:此月是2月}D1={日期:1<=日期<=27}D2={日期:日期=28}D3={日期:日期=29}
D4={日期:日期=30}D5={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}条件C1:月份在{M1,M2,M3,m4}中之一C2:日期在{D1,D2,D3,D4,D5}中之一C3:年在{Y1,Y2}中之一问题:可得到?条规则3.4基于决策表的测试新的NextDate函数的扩展条目决策表:条件12345678910C1:月份在M1M1M1M1M1M2M2M2M2M2C2:日在D1D2D3D4D5D1D2D3D4D5C3:年在----------A1:不可能√A2:日增1√√√√√√√A3:日复位√√A4:月增1√√A5:月复位A6:年增13.4基于决策表的测试新的NextDate函数的扩展条目决策表续…:(结合不关心条目,可得到有22条规则的决策表)条件111213141516171819202122C1:月份在M3M3M3M3M3M4M4M4M4M4M4M4C2:日在D1D2D3D4D5D1D2D2D3D3D4D5C3:年在------Y1Y2Y1Y2--A1:不可能√√√A2:日增1√√√√√√A3:日复位√√√A4:月增1√√A5:月复位√A6:年增1√3.4基于决策表的测试同步练习用例ID月份日期年预期输出123456789请写出NextDate函数的前9个测试用例:3.4基于决策表的测试案例分析-NextDate函数的测试用例用例ID月份日期年预期输出1--341220012001年4月12日443020012001年5月1日54312001不可能6--911520012001年1月16日1013120012001年2月1日11-14121520012001年12月16日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920042005年3月1日202292001不可能21,222302001不可能3.4基于决策表的测试3.5错误推测法依靠经验和直觉猜测程序中可能存在的各种错误,从而有针对性地编写检查这些故障的测试用例。功能性测试方法总结精细程度方法评价工作量精细程度测试用例数精细程度边界值等价类决策表低高各种测试方法的测试用例趋势线功能性测试方法总结设计测试用例的工作量精细程度边界值等价类决策表低高各种测试方法的测试用例设计工作量工作量功能性测试方法总结总结边界值分析基于定义域,不识别数据或逻辑关系很容易自动化实现设计工作量小生成的测试用例数比较多测试用例执行时间长等价类技术考虑数据依赖关系标识等价类时需要更多的判断和技巧等价类标识出以后的处理也是机械的设计工作量和测试用例数属中等决策表技术又要考虑数据的逻辑依赖关系所得测试用例可以是完备的测试数量在一定意义上讲是最少的需要通过多次迭代设计工作量很大综合案例保险金计算程序保险金=500x年龄系数–安全驾驶折扣安全驾驶折扣是投保人驾驶执照上当前点数的函数年龄系数是投保人年龄的函数若点数低于等于与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度farmhouse木门安装服务合同
- 深圳购房合同样本
- 住宅房屋购买合同简单版
- 2024年《软件许可合同中不可抗力事件的处理》
- 广告公司授权合同模板
- 2024年范文承包土地协议书
- 2024年发光字合同
- 跨境客运线路租赁合同
- 共建文明施工项目协议书
- 亲子园与医疗机构合作协议书
- 国开2024年《中国法律史》平时作业1-3答案
- 钢结构策划书(范本)
- 急性肾衰竭与crrt治
- 焦化厂生产工序及工艺流程图
- 呕吐(急性胃肠炎)诊疗指南(制订)编制说明排版
- 江堤道路工程施工方案#江苏
- (外研版)初中英语语法汇总[新版]
- 李燕璇植树问题卡通版5
- 有砟轨道铺设的施工讲解
- 烟草专卖食堂燃气泄露及火灾事故现场应急处置方案
- 国家电网公司十八项反措
评论
0/150
提交评论