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

下载本文档

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

文档简介

1、2022-6-181第二章软件测试用例的设计方法2022-6-182Outlinen一. 黑盒测试及其测试用例设计方法n二. 白盒测试及其测试用例设计方法n如果没有测试用例测试人员将会如何测试?2022-6-183随机测试存在的问题n不知道是否较全面的测试了所有功能n测试的覆盖率无法衡量n对新版本的重复测试很难实施n无法对测试质量进行有效评估n无法形成有效的知识积累n.2022-6-184测试用例的概念n如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,是软件公司探索和追求的目标n测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳

2、定的根本保障2022-6-185n测试用例(Test Case)通俗一点来讲就是编写(编制)一组前提条件、输入、执行条件、预期结果以完成对某个特定需求或目标测试的数据,体现测试方案、方法、技术和策略的文档。n测试用例是将整个测试的执行过程作一个科学有效的合理组织规划。主要目的是将软件测试的执行过程形成那个一个可管理的模式;同时测试用例也是将测试详细具体化的有效手段之一。2022-6-186测试用例的作用n(1)指导测试的实施n(2)规划测试数据的准备n(3)编写测试脚本“规格说明书”n(4)评估测试结果的度量基准n(5)分析缺陷标准2022-6-187设计测试用例所需的文档资料设计测试用例所需

3、的文档资料设计测试用例所需要的文档资料包括: 软件需求说明书; 软件设计说明书; 软件测试需求说明书; 成熟的测试用例2022-6-188测试用例主要包括哪些内容测试用例主要包括哪些内容完整的测试用例通常包括: 测试用例的编号; 测试日期; 测试用例设计人员和测试人员; 测试修订历史; 测试准备; 测试描述; 测试环境; 输入数据/动作; 测试执行; 测试预期的结果。 测试的实际结果;2022-6-189测试用例的设计方法测试用例的设计方法测试用例是整个测试工作中的重中之重,测试的一般流程包括制定测试计划、编写测试用例、执行测试、跟踪测试缺陷、编写测试报告等。测试计划、大纲制定后就需要进行测试

4、用例的设计,之后所有的工作全都是在测试用例的基础上展开的。 2022-6-1810用例的设计应注意到一下几点问题: 用例应该从系统的最高级别向最低级别逐一展开; 每个测试用例都应单独放在文档中; 系统中的所有功能都应该对应到用例中; 每个用例都应该依据需求进行设计; 用例的设计人员最好是具有丰富的经验测试人 员。2022-6-1811黑盒测试用例的设计方法黑盒测试用例的设计方法(1)黑盒测试用例设计技术如下: 等价类划分; 边界值分析; 错误推测; 因果图。(2)采用黑盒测试技术设计用例的主要目的是: 检查功能是否实现或遗漏; 检查人机交互界面是否出错; 数据库读取、更新操作出错; 性能特性是

5、否得到满足。2022-6-1812白盒测试用例的设计方法白盒测试用例的设计方法(1)白盒测试用例的设计技术如下: 逻辑覆盖; 基本路径测试。(2)采用白盒测试技术设计用例的目的主要是: 每个模块中的所有独立路径至少被执行一次; 所有的逻辑值必须测试真、假两个分支; 在边界值内和可操作范围至少循环一次; 检查数据的内部结构保证其有效的实现预定功能。2022-6-1813综合设计方法综合设计方法 白盒和黑盒测试用例的设计方法,每一个测试用例设计方法给出了有用测试用例的一个特殊的集合,但没有一个可以贡献完整的测试用例的集合。在实际项目运作设计时常常共同使用各种测试用例设计方法进行用例的设计。 这里我

6、们主要是介绍如何综合使用这些方法来设计测试用例。 实际操作设计测试用例一般是先黑后白,即:先用黑盒技术设计一些用例,再用白盒技术做一些补充用例。2022-6-1814下面是综合设计方法的建议性设计步骤:如果规格说明书中包含输入条件,用因果图法进行设计测试用例。如果源码中遇到输入输出边界,用边界值分析法进行设计测试用例,这是输入输出边界的分析。边界值分析产生一组附加的测试条件,但是大多数或全部这些条件都可以组合到因果测试中。2022-6-1815为输入和输出识别有效和无效等价类。使用错误推测方法来增加测试用例。用逻辑覆盖方法来检查程序的逻辑,使用判定 覆盖、条件覆盖、判定/条件覆盖和多条件覆盖准

7、则(最完整),如果满足此方法是不可能,那么设计足够的测试用例去让此方法被满足2022-6-1816测试用例设计时的基本原则: 利用成熟的测试用例设计方法来指导设计; 测试用例的正确性; 测试用例的代表性; 测试结果的可判定性; 测试结果的可重现性; 足够详细、准确和清晰的步骤; 利用测试用例文档编写测试用例时必须符合内部的规范要求。2022-6-1817设计测试用例时需要注意的问题:不能把测试用例设计等同于测试输入数据的设计;不能追求测试用例设计的一步到位;不能将多个测试用例混在一个用例中;不能由没有经验的人员设计测试用例。 2022-6-18182022-6-1819一.黑盒测试n黑盒测试n

8、又称为功能性测试或数据驱动测试。2022-6-1820一.黑盒测试n黑盒测试的技术方法主要包括:n如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?2022-6-1823p结论是不计其数1.整型: 从 1+1 到 999999999999999999999999999999+ 9999999999999999999999999999992.小数:1.0+0.1,1.0+0.2等等3.键盘上的任何一种组合4.为乘法和除法运算重复上面的操作2022-6-18242.等价类划分法n2.1 概述n等价类划分方法是一种最为典型的黑盒测试方法。n使用这一方法时,完全不考虑程序的内部结构,只依据

9、程序的规格说明来设计测试用例。2022-6-18252.等价类划分法n等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。n使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。2022-6-18272.等价类划分法n等价类是指某个输入域的子集合。在该子集合中,。测试某等价类的代表值就等价于对这一类其它值的测试。1.等价类中的各个元素具有相同的属性2.(被划分集合)各个等价类之间不会存在相同的元素,它们的并集是被划分集合的全集2022-6-18282.等价类划分法n等价类的划分有两种不同的情况: 有效等价类

10、:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。划分等价类划分等价类确定测试用例确定测试用例2022-6-18322.等价类划分法n2.2 等价类划分的原则n(1) 2022-6-18332.等价类划分法n例如,在程序的规格说明中,对输入条件有一句话:n “ 项数可以从1到999 ” n则有效等价类是“1项数999”n两个无效等价类是“项数1”或“项n数999”。在数轴上表示成: 2022-6-18342.等价类划分法(2) 例如,在例如,在Pascal语言中对变量标识符规定语言中对变量标识符

11、规定为为“以字母打头的以字母打头的串串”。那么所有以。那么所有以字母打头的构成有效等价类,而不在此集字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。合内(不以字母打头)的归于无效等价类。2022-6-18352.等价类划分法2022-6-18362.等价类划分法n例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。2022-6-18372.等价类划分法2022-6-18382.等价类划分法n2.3确定测试用例n确立了等价类后,建

12、立等价类表,列出所有划分的等价类.2022-6-18392.等价类划分法n根据划分的等价类,按以下原则选择测试用例:n(1) 为每一个等价类规定一个唯一编号;n(2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;n(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。一个字段nQQ账号:6-10位自然数一个页面2022-6-18441.问题描述n(1).三角形问题2022-6-18451.问题描述n现在要求输入的三个整数必须满足以下条件:n条件1: 0an条件2: 0 b

13、n条件3: 0 cn条件4: ab+cn条件5: ba+cn条件6: c0a0b0b0c0c0a+bca+bcb+cab+caa+cba+cb(1)(2)(3)(4)(5)(6)a0b 0c 0a+b cb+c aa+c b(7)(8)(9)(10)(11)(12)等腰三角形?a=ba=bb=cb=cc=ac=a(13)(14)(15)ab &b c &c a(16)等边三角形?a=b a=b &b=c&c&b=c&c=a=a(17)ab bc ca(18)(19)(20)2022-6-184813,4,5(1)-(6)2340,1,21,0,2

14、1,2,0(7)(8)(9)5671,2,31,3,23,1,2(10)(11)(12)89103,3,43,4,43,4,3(1)-(6),(13)(1)-(6),(14)(1)-(6),(15)113,4,5(1)-(6),(16)123,3,3(1)-(6),(17)1314153,4,43,4,33,3,4(1)-(6),(14),(18)(1)-(6),(14),(19)(1)-(6),(14),(20)等价类方法的补充说明2022-6-1849p弱一般等价类n设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的被测变量的有效等价类并且每个被测变量的有效等价类应至少出现一次n测试

15、用例个数为:各个被测变量中的最大有效等价类个数p强一般等价类n设计若干测试用例,使其覆盖所有被测变量有效等价类的组合n测试用例个数为:各个被测变量有效等价类数2022-6-1850p弱健壮等价类n设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的有效等价类,对于无效等价类,每个测试用例只考虑一个被测变量的无效等价类n测试用例个数为:各个被测变量中的最大有效等价类个数+各个被测变量的无效等价类数p强健壮等价类n设计若干测试用例,使其覆盖所有被测变量的有效等价类和无效等价类的组合n测试用例个数为:各个被测变量的(有效等价类数+无效等价类数)2022-6-18512.等价类划分法n2.4常见的

16、等价类划分测试形式n问题:某函数F有两个变量x1,x2.要求两输入变量的取值范围如下:na x1d,区间为a,b, (b,c) ,c,dne x2 g,区间为e,f), f,gnx1,x2x1,x2的无效区间为的无效区间为: :nx1dx1d; ; x2gx2g2022-6-18522.等价类划分法n(1)弱一般等价类测试n特点: 不考虑无效数据,测试用例使用每个等价类中的一个值。abcdefgx2x12022-6-18532.等价类划分法n(2)强一般等价类测试n特点:每一个有效等价类要选择至少一个测试用例abcdefgx2x12022-6-18542.等价类划分方法n(3)弱健壮等价类测试

17、n对于有效输入: 使用每个有效类的一个值n对于无效输入: 测试用例只使用一个无效值,其余值都是有效的abcdefgx2x12022-6-18552.等价类划分方法n(4)强健壮等价类测试n每个有效等价类和无效等价类都至少要选择一个测试用例abcdefgx2x12022-6-18562.等价类划分方法划分法特点弱一般等价类测弱一般等价类测试试强一般等价类测强一般等价类测试试弱健壮等价类测弱健壮等价类测试试强健壮等价类测强健壮等价类测试试2022-6-18572.等价类划分方法n2.5三角形问题的等价类划分方法n可以使用输出标识如下所示的输出等价类:nR1=: 有三条边a,b,c的等边三角形nR2

18、=: 有三条边a,b,c的等腰三角形nR3=: 有三条边a,b,c的不等边三角形nR4=: 三条边a,b,c不能构成三角形2022-6-18582.等价类划分方法WN1WN2WN3WN4523452415352n弱一般等价类测试用例为:2022-6-18592.等价类划分方法n弱健壮等价类测试用例:WR1WR1WR2WR2WR3WR3WR4WR4WR5WR5WR6WR6-155101555-155101555-155101内内c c不在允许的取值范围不在允许的取值范围内内2022-6-18602.等价类划分方法n强健壮等价类测试用例(部分):SR1SR2SR3SR4SR5SR6SR7-155-

19、15-1-15-15-1-15-155-15-1-1-12022-6-18611.问题描述n(2).NextDate函数n条件:1 month 12n条件2:1 day 31n条件3:1912 year 20502022-6-18622.等价类划分方法n2.6 NextDate函数的等价类划分方法nYear Month DayYear Month Day的有效值区间定义如下:的有效值区间定义如下:nM1=month: 1month 12nD1=day: 1 day 31nY1=year: 1912 year 20502022-6-18632.等价类划分方法nM2=month: month12n

20、D2=day: day31nY2=year: year20502022-6-18642.等价类划分方法测试用例monthdayyear预期输出Test161520052005.6.16NextDate函数的弱一般等价类测试用例2022-6-1865NextDate函数的弱健壮等价类测试用例测试用例monthdayyear预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Test7Test76 6-1-113136 66 66 66 6151515151515-1-132321515151519121912200520

21、0520052005200520052005200519111911205120511912.6.161912.6.16monthmonth不在有效值内不在有效值内monthmonth不在有效值内不在有效值内dayday不在有效值内不在有效值内dayday不在有效值内不在有效值内yearyear不在有效值内不在有效值内yearyear不在有效值内不在有效值内2022-6-1866NextDate函数的强健壮等价类测试用例(部分)测试用例 month dayyear预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Te

22、st7Test7-1-16 66 6-1-16 6-1-1-1-11515-1-11515-1-1-1-11515-1-11911918 81911918 81911911 12002005 51911911 11911911 11911911 1monthmonth不在有效值内不在有效值内dayday不在有效值内不在有效值内yearyear不在有效值内不在有效值内month,daymonth,day不在有效值内不在有效值内day,yearday,year不在有效值内不在有效值内month,yearmonth,year不在有效值内不在有效值内month,day,yearmonth,day,ye

23、ar不在有效值不在有效值内内2022-6-18672.等价类划分方法n考虑对的处理:nM1=month: month有30天nM2=month: month有31天nM3=month: month是2月nD1=day: 1 day 28nD2=day: day=29nD3=day: day=30nD4=day: day=31nY1=year: year=2000nY2=year: year是闰年nY3=year: year是平年2022-6-1868测试用例 month dayyear预期输出Test1Test1Test2Test2Test3Test3Test4Test46 67 72 26

24、615152929303031312002000 01991996 62002002 22002000 02000.6.162000.6.161996.7.301996.7.302002.2.312002.2.312000.7.12000.7.1()2022-6-1869强一般等价类测试用例测试用例monthdayyear预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Test7Test7Test8Test8Test9Test9Test10Test10Test11Test11Test12Test12Test13Te

25、st13Test14Test14Test15Test156 66 66 66 66 66 66 66 66 66 66 66 67 77 77 71515151514142929292929293030303030303131313131311515141414142000200019961996200220022000200019961996200220022000200019961996200220022000200019961996200220022000200019961996200220022000.6.162000.6.161996.6.161996.6.162002.6.1520

26、02.6.152000.6.302000.6.301996.6.301996.6.302002.6.302002.6.302000.6.31 (2000.6.31 (不可能的日期不可能的日期) )1996.6.31 (1996.6.31 (不可能的日期不可能的日期) )2002.7.1 2002.7.1 2000.7.1(2000.7.1(无效输入无效输入) ) 1996.7.1(1996.7.1(无效输入无效输入) )2002.7.1 (2002.7.1 (无效输入无效输入) )2000.7.162000.7.161996.7.151996.7.152002.7.152002.7.15202

27、2-6-1870测试用例monthdayyear预期输出Test16Test16Test17Test17Test18Test18Test19Test19Test20Test20Test21Test21Test22Test22Test23Test23Test24Test24Test25Test25Test26Test26Test27Test27Test28Test28Test29Test29Test30Test307 77 77 77 77 77 77 77 77 72 22 22 22 22 22 229292929292930303030303031313131313114141414141

28、42929292929292000200019961996200220022000200019961996200220022000200019961996200220022000200019961996200220022000200019961996200220022000.7.302000.7.301996.7.301996.7.302002.7.302002.7.302000.7.312000.7.311996.7.311996.7.312004.7.312004.7.312000.8.12000.8.11996.8.11996.8.12002.8.12002.8.12000.2.1520

29、00.2.151996.2.151996.2.152002.2.152002.2.152000.3.1(2000.3.1(无效的输入日期无效的输入日期) )1996.3.11996.3.12002.3.1 2002.3.1 不可能的日期不可能的日期2022-6-1871测试用例month dayyear预期输出Test31Test31Test32Test32Test33Test33Test34Test34Test35Test35Test36Test362 22 22 26 66 66 6303030303030313131313131200020001996199620022002200020

30、0019961996200220022000.3.12000.3.1无效输入日期无效输入日期1996.3.11996.3.1无效输入日期无效输入日期2002.3.12002.3.1无效输入日期无效输入日期2000.7.12000.7.1无效输入日期无效输入日期1996.7.11996.7.1无效输入日期无效输入日期2002.7.12002.7.1无效输入日期无效输入日期2022-6-18722.等价类划分方法n2.7等价类测试的指导方针n(1)如果实现的语言是强类型语言(无效值输入会引起系统运行时出错),则没有必要使用健壮等价类测试.n(2)如果错误输入检查非常重要,则应进行健壮等价类测试.n(3)如果输入数据以离散区间或集合的形式定义,则等价类测试是合适的 n(4)在发现合适的等价关系之前,可能需要多次尝试.2022-6-1873n用等价类划分法测试为保险公司计算保费费率的程序。某保险公司的人寿保险的保费计算方式为:投保额*保险费率,其中的保险 费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费 率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况

温馨提示

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

评论

0/150

提交评论