黑盒测试-等价类_第1页
黑盒测试-等价类_第2页
黑盒测试-等价类_第3页
黑盒测试-等价类_第4页
黑盒测试-等价类_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

黑盒测试方法____等价类划分测试2等价类划分概述等价类的划分原则等价类划分法的测试用例设计常见等价类划分测试形式使用等价类划分法测试的实例3等价类划分法:把程序的输入域划分为若干部分(子集),从每个部分中选取少数具有代表性的数据作为测试用例,从而保证设计出来的测试用例具有完整性和代表性。所谓等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性。因此,可以合理的假定:

——测试某等价类的代表值就是等效于对于这一类其它值的测试。概述4概述举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算(y=sqrt(x))的程序的测试。思考方向:由于开平方运算只对非负实数有效,要将所有的实数(输入域x)进行划分,可以分成:正实数、0和负实数。假设我们选定+1.4444代表正实数,-2.345代表负实数,则为该程序设计的测试用例的输入为+1.4444、0和-2.345。5等价类的划分原则等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。完备性:整个输入域提供一种形式的完备性无冗余性:各区域互不相交,保证无冗余性6采用等价类划分法设计测试用例通常分两步进行:(1)确定等价类,列出等价类表。(2)确定测试用例。划分等价类可分为两种情况:(1)有效等价类指对软件规格说明而言,那些有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能。等价类的划分原则(续)7等价类的划分原则(续)(2)无效等价类指对软件规格说明而言,那些无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。8等价类的划分原则(续)划分等价类的方法下面给确定等价类的原则①按照输入区间划分在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~1000100

有效等价类0≤成绩≤100无效等价类成绩>100

无效等价类成绩<09等价类的划分原则(续)②按照输入限制划分在输入条件规定了“必须如何”的条件情况下,可确立一个有效等价类和一个无效等价类。如,规定程序输入必须为数字,可确定一个有效等价类——数字和一个无效等价类——字母。10等价类的划分原则(续)③按照输入数值划分在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。11等价类的划分原则(续)④按照限制条件或规则划分在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。如,程序中,成绩输入为0~100的整数,可确立一个89为有效等价类,然后确定若干个无效等价类,如89.1,-1,101,X等。12等价类的划分原则(续)⑤细分等价类在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。如:输入值是学生成绩,范围是0~100。程序对不同的分数进行优、良、及格等的转换。除按第一条原则划分,还可进一步划分为更小的等价类,如85~100(优),75~85(良)等。13等价类划分法的测试用例设计设计测试用例在确立了等价类后,可建立等价类表,列出所有划分出的等价类。在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。输入条件有效等价类无效等价类………………14等价类划分法的测试用例设计从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号。②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。15常见等价类划分测试形式针对缺陷相关性假设,可将等价类测试分为弱等价类测试(单缺陷假设)和强等价类测试(多缺陷假设)。针对是否对无效数据进行测试,可以将等价类测试分为:一般等价类测试和健壮等价类测试。一般等价类测试不考虑无效数据值,测试用例覆盖每个等价类。健壮等价类测试主要的出发点是考虑了无效等价类。对有效输入,测试用例覆盖等价类;对无效输入,一个无效等价类有一个测试用例,其他值均取有效值(多输入情况下)。函数F的功能扩展有两个变量x1和x2的函数F。如果函数F实现为一个程序,则输入两个变量x1和x2边界:

a≤x1≤d区间为[a,b),[b,c),[c,d]e≤x2≤g区间为[e,f),[f,g]abegcdf等价类划分举例17输入条件有效等价类无效等价类x11)a≤x1<b2)b≤x1<c3)c≤x1≤d6)x1<a7)x1>dx24)e≤x2<f5)f≤x2<g8)x2<e9)x2>g确立等价类,建立等价类表,列出所有划分出的等价类。

a≤x1≤d区间为[a,b),[b,c),[c,d]e≤x2≤g区间为[e,f),[f,g]弱一般等价类测试弱一般等价类测试是基于单缺陷假设的;弱一般等价类测试通过使用一个测试用例中的每个等价类(区间)的一个变量实现。

abegcdf覆盖2,5覆盖3,4覆盖1,4有效等价类无效类x11)a≤x1<b2)b≤x1<c3)c≤x1≤d6)x1<a7)x1>dx24)e≤x2<f5)f≤x2<g8)x2<e9)x2>g测试用例的数量和含有最大子集数目的等价类中的数目相同

强一般等价类测试

强一般等价类测试是基于多缺陷假设的;等价类笛卡儿积的每个元素对应的测试用例;

abegcdf测试用例数量:各变量等价类数量的乘积

笛卡尔积可以保证两种意义上的“完备性”:一是覆盖所有的等价类,二是有可能的输入组合中的一个。弱健壮等价类测试

1.对于有效输入,使用每个有效类的一个值。

2.对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。abegcdf测试用例的数量:弱一般等价类测试用例数量+各变量无效等价类数量之和

健壮:考虑了无效值健壮等价类测试有两个问题第一,规格说明常常并没有定义无效测试用例所预期的输出内容。因此,测试人员要花费大量时间定义这些测试用例的输出。第二,强类型语言没有必要考虑无效输入。对于第二个问题,在实际的项目中,由于人的因素,即使编程语言本身再怎么完美,诸如Java、Python、C++这样的强类型语言,错误也无法避免)。另外,业务的具体要求,无效输入往往要考虑业务因素,所以任何时刻都必须考虑无效输入。强健壮等价类测试

所有等价类笛卡儿积的每个元素中获得测试用例。

abegcdf测试用例数量:各变量有效等价类和无效等价类数量和的乘积

举例(三角形问题)输入:三个变量(a、b、c);a、b和c都在1到100之间。输出:是否为三角形或各类三角形?1、输入3个整数变量a、b、c2、a、b和c均在1—100之间3、a、b和c任意2个加起来大于第三条边24使用等价类划分法测试的实例解法一:分析题目中给出和隐含的对输入条件的要求:

(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果a、b、c满足条件(1)~(4),则输出下列四种情况之一:如果不满足条件(5),则程序输出为“非三角形”。如果三条边相等即满足条件(7),则程序输出为“等边三角形”。如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。三角形问题的一种等价类划分:按照输入域划分等价类的例子。

D1={<a,b,c>:

a=b=c}D2={<a,b,c>:

a=b,a≠c}D3={<a,b,c>:

a=c,a≠b}D4={<a,b,c>:

c=b,a≠c}D5={<a,b,c>:

b≠

a≠c}

D6={<a,b,c>:a>b+c}D7={<a,b,c>:b>

a+c}D8={<a,b,c>:c>

a+b}测试用例Test1=(3,4,5)覆盖有效等价类1-328使用等价类划分法测试的实例解法2:从被测程序的输出域来定义等价类。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。

R1={<a,b,c>:边为a,b,c的等边三角形}R2={<a,b,c>:边为a,b,c的等腰三角形}R3={<a,b,c>:边为a,b,c的一般三角形}R4={<a,b,c>:边为a,b,c不能组成三角形}输出域有效等价类等边三角形(1)等腰三角形(2)一般三角形(3)非三角形(4)a无效等价类<1(5)>100(6)b无效等价类<1(7)>100(8)c无效等价类<1(9)>100(10)增加的测试用例

三角形问题的等价类测试用例弱一般等价类测试

测试用例abc预期输出WN1555等边三角形WN2223等腰三角形WN3345三角形WN4412非三角形由于变量a,b,c没有定义有效子区间,则强一般等价类测试用例与弱一般等价类测试用例相同。三角形问题的弱健壮等价类测试用例测试用例abc预期输出WR1-155a取值不在允许的范围内WR25-15b取值不在允许的范围内WR355-1c取值不在允许的范围内WR420155a取值不在允许的范围内WR552015b取值不在允许的范围内WR655201c取值不在允许的范围内考虑a,b,c的无效值产生的以下弱健壮等价类测试用例。三角形问题的强健壮等价类测试用例测试用例abc预期输出SR1-1-15a、b取值不在允许的范围内SR25-1-1b、c取值不在允许的范围内SR3-15-1a、c取值不在允许的范围内SR4-1-1-1a、b、c取值不在允许的范围内健壮是指要考虑无效值,强是指多缺陷假设。33NextDate函数等价类测试用例例:NextDate函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day和year均为整数值,并且满足下列条件:(1)1≤month≤12(2)1≤day≤31(3)1912≤year≤201234NextDate函数等价类测试用例NextDate函数中有两种复杂性来源:1)输入域的复杂性2)确定哪一年是闰年年数可以被4整除则为闰年一百整数年是400的倍数时为闰年1992,1996,2000为闰年1900不是闰年案例分析-NextDate函数的等价类测试用例确定等价类(方法一)有效等价类:M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1912≤年≤2012}无效等价类:M2={月份:月份<1}M3={月份:月份>12}D2={日期:日期<1}D3={日期:日期>31}Y2={年:年<1912}Y3={年:年>2012}弱一般等价类测试三个独立变量的有效等价类都只有一个,因此弱一般等价类测试与强一般等价类测试相同测试用例月份日期年预期输出WN1,SN161519121912年6月16日弱健壮等价类测试测试用例月份日期年预期输出WR161519121912年6月16日WR2-1151912月份不在有效值内WR313151811月份不在有效值内WR46-11912日期不在有效值内WR56321912日期不在有效值内WR66151811年不在有效值内WR76152013年不在有效值内强健壮等价类测试测试用例月份日期年预期输出SR1-1151912月份不在有效值内SR26-11912日期不在有效值内SR36151811年不在有效值内SR4-1-11912月份和日期不在有效值内SR56-11811日期和年不在有效值内SR6-1151811月份和年不在有效值内SR7-1-11811月份,日期和年不在有效值内案例分析-NextDate函数的等价类测试用例确定等价类(方法二)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}

D4={日期:日期=31}Y1={年:年是闰年}Y2={年:年是平年}弱等价类测试测试用例月份日期年预期输出WR161420002000年6月15日WR272919961996年7月30日WR32302002无效输入日期WR46312000无效输入日期自动生成测试用例问题之一:机械地从对应等价类中选择输入值而不考虑相关领域的只是,产生无效输入。等价类测试用例弱一般等价类测试用例应该有4个强一般等价类测试用例应该有 3个(月份类)x4个(日期类)x2(年类)=24个强健壮等价类测试用例对每个变量加上2个无效类测试用例数为:5x6x4=120个请同学自己思考各测试用例。案例分析-NextDate函数的等价类测试用例确定等价类(方法三)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}

D4={日期:日期=31}Y1={年:年为2000}Y2={年:年是闰年,而且是非世纪年份}Y3={年:年是平年}佣金问题某制造商制造的步枪机(lock),枪托(stock)和枪管(barrel).枪机卖45美元,枪托卖30美元,枪管卖25美元。销售商每月至少售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机,80个枪托和90个枪管。到月末,销售商发短电报,通知-1个枪机被售出,则制造商计算销售商佣金。销售含量不到(含)1000美元的部分为10%,1000(不含)-1800(含)的部分为15%,超过1800美元部分为20%。佣金程序生成月份销售报告,汇总售出的枪机,枪托和枪管总数,销售商的总销售额和佣金。佣金问题的等价类划分测试用例设计佣金问题的输入定义域,由于受枪机、枪托、枪管的限制,被划分为3类,每一类有一个有效等价类和两个无效等价类。有效等价类为:L1={枪机:1≤枪机≤70}L2={枪机=-1}S1={枪托:1≤枪托≤80}B1={枪管:1≤枪管≤90}输入变量对应的无效等价类如下:L3={枪机:枪机=0或枪机<-1}L2={枪机>70}S2={枪托:枪托<1}S3={枪托:枪托>80}B2={枪管:枪管<1}B2={枪管:枪管>90}根据有效等价类,可以设计一个标准等价类划分测试用例:TEST1:枪机=4,枪托=5,枪管=9佣金问题的强健壮等价类测试用例用例ID枪机枪托枪管预期输出SR1-14045枪机值不在允许的范围内SR235-145枪托值不在允许的范围内SR33540-1枪管值不在允许的范围内SR4-1-145枪托值不在允许的范围内枪机值不在允许的范围内SR5-140-1枪管值不在允许的范围内枪机值不在允许的范围内SR63515-1枪管值不在允许的范围内枪托值不在允许的范围内SR7-1-1-1枪管值不在允许的范围内枪托值不在允许的范围内枪机值不在允许的范围内问题:无法判断佣金问题的计算部分有没有问题因此,输入域等价类不能产生令人满意的测试用例集合。对佣金问题的输出值域定义等价类可以改进测试用例集合。销售额是已售枪机、枪托、枪管的函数,即Sales=45*枪机+30*枪托+25*枪管可以在佣金值域上定义3个等价类S1={<枪机、枪托、枪管>:销售额≤1000}S2={<枪机、枪托、枪管>:1000<销售额≤1800}S3={<枪机、枪托、枪管>:销售额>1800}佣金问题的输出域等价类测试用例用例ID枪机枪托枪管销售额佣金OR155550050OR21515151500175OR3252525250036048等价类划分举例例:设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月-2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。49等价类划分举例1)划分等价类并编号下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度①6位数字字符②有非数字字符③少于6位数字字符④多于6位数字字符年份范围⑤在1990-2049之间⑥小于1990⑦大于2049月份范围⑧在01-12之间⑨等于00⑩大于1250等价类划分举例2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:测试数据期望结果覆盖的有效等价类200211输入有效①、⑤、⑧51等价类划分举例3)为每一个无效等价类设计一个测试用例,设计结果如下:测试数据期望结果覆盖的无效等价类95June无效输入②20036无效输入③2001006无效输入④198912无效输入⑥200401无效输入⑦200100无效输入⑨200113无效输入⑩52等价类划分举例例

某城市的电话号码由三部分组成,这三部分的名称和内容分别是:地区码:空白或3位数字;前缀:非“0”和非“1”开头的3位数字;后缀:4位数字假定被测程序接受一切符合上述规定的电话号码,拒绝所有不符合的号码,现用等价分类法来设计它的测试用例。53等价类划分举例第一步划分等价类。包括4个有效等价类,11个无效等价类。输入条件有效等价类无效等价类地区码空白①,3位数字②有非数字字符⑤,少于三位数字⑥,多于三位数字⑦前缀200-999之间的三位数字③有非数字字符⑧,起始位为0⑨,起始位为1⑩,少于三位数字(11),多于三位数字(12),后缀4位数字④有非数字字符(13),少于4位数字(14),多于4位数字(15),54等价类划分举例第二步设计测试用例测试数据测试范围期望结果()276-2345等价类①,③,④有效(635)805-9321等价类②,③,④有效55等价类划分举例测试数据测试范围期望结果(20A)423-4567无效等价类⑤无效(33)234-5678无效等价类⑥无效(7777)345-6789无效等价类⑦无效(111)P12-9876无效等价类⑧无效(111)021-5432无效等价类⑨无效(222)121-1378无效等价类⑩无效(333)52-1378无效等价类11无效(333)6751-1378无效等价类12无效(027)345-6B01无效等价类13无效(020)345-601无效等价类14无效(031)478-23452无效等价类15无效对11个无效等价类,选择11个测试用例如下:等价类法举例保险费率计算某保险公司承担人寿保险已有多年历史,该公司保费计算方式为投保额*保险率,保险率又依点数不同而有别,10点以上费率为0.6%,10点以下费率为0.1%:等价类法举例输入数据说明20~39岁6点40~59岁4点年龄60岁以上20岁以下2点MALE5点性别FEMALE3点已婚3点婚姻未婚5点扶养人数一

0.5点

3点

)计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。年龄:一位或两位非零整数,值的有效范围为1~99性别:一位英文字符,只能取值‘M’或’F’婚姻:字符,只能取值‘已婚’或‘未婚’抚养人数:空白或一位非零整数(1~9)点数

温馨提示

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

评论

0/150

提交评论