黑盒测试之等价类测试.ppt_第1页
黑盒测试之等价类测试.ppt_第2页
黑盒测试之等价类测试.ppt_第3页
黑盒测试之等价类测试.ppt_第4页
黑盒测试之等价类测试.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 黑 盒 测 试,第4章 黑 盒 测 试,4.1 边界值测试 4.2 等价类测试 4.3 基于判定表的测试 4.4 因果图 4.5 其他黑盒测试方法 4.6 综合案例 4.7 本章小结,等价类测试,测试的矛盾 为保证软件产品的质量,我们需要进行完备(彻底)的测试;但这是不现实的,因为: 输入量太大 输出结果太多 软件实现途径太多,问题引入,测试的矛盾 从经济的角度来说,我们希望测试没有冗余; 一个好的测试用例在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。,问题引入,问题引入,(1)你测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗?你能

2、放心地认为它们正确吗? (2)1+15与1+99999999999999999999999999999999有什么区别呢?,注意:在寻找等价类划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组,这些组就是等价划分。,问题引入,举例:设计这样的测试用例,来实现一个对所有实 数进行开平方运算( y = sqrt(x) )的程序的测试。 思考方向: 由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域x)进行划分,可以分成:正实数、0 和 负实数。假设我们选定+1.4444代表正实数,-2.345代表负实数,则为该程序设计的测试用例的输入为+1.4444、 0 和 -2.345。,

3、问题引入,等价类方法可令测试事半功倍。 举例:加法器,加法器实例(1),加法器实例(2)穷举测试,加法器实例(3)等价类划分法,加法器实例(3)等价类划分法,加法器实例(3)等价类划分法,加法器实例(3)等价类划分法,加法器实例(3)等价类划分法,4.2 等价类测试 4.2.1 等价类1等价类的划分等价类的重要问题是它们构成集合的划分。划分是指互不相交的一组子集,这些子集的并是整个集合。划分可定义为:给定集合B,以及B的一组子集A1、A2、An,这些子集是B的一个划分,当且仅当 A1A2An=B,且ij时,AiAj=。,划分在软件测试中的作用,划分对于测试有非常重要的意义:(1) 各个子集的并

4、是整个集合,这提供了一种形式的完备性;(2) 各个子集的交是空,这种互不相交保证了一种形式的无冗余性。因此采用划分可保证某种程度的完备性,并减少冗余。,等价类的定义: 等价类是输入域的某个子集合,而所有的等价类的并集是整个输入域。在子集合中,各个输入数据对于揭露程序中的错误是等效的。,等价类测试,等价类测试的假设: 测试某等价类的代表值,就等效于对这个等价类中其他值的测试。 等价类测试的思想: 把全部的输入数据划分成若干个等价类,在每一个等价类中取一个数据来进行测试。,等价类测试,有效等价类 对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合; 无效等价类 对于程序的规格说明来说,

5、是不合理的、没有意义的输入数据所构成的集合;,等价类的分类,在设计测试用例时,要同时考虑这两种等价类。因为用户在使用软件时,有意或无意输入一些非法的数据是常有的事情。软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。,2划分等价类的方法等价类测试的思想就是把全部输入数据合理划分为若干等价类,在每一个等价类中取一个具有代表性的数据作为测试的输入条件,这样可以用少量的测试数据取得较好的测试效果。在等价类测试中,划分等价类是非常关键的。如果等价类划分合理,可以大大减少测试用例,并能保证达到要求的测试覆盖率。那么如何划分等价类呢?一般来讲,首先要分析程序所有可能

6、的输入情况,然后按照下列规则对其进行划分。,(1) 按照区间划分。在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。例如:程序的输入是学生成绩,其范围是0100,则输入条件的等价类如图4-2-1所示。 其有效等价类为:0成绩100;无效等价类为:成绩0,成绩100。,图4-2-1 学生成绩的等价类,(2) 按照数值划分。,例 :在教师上岗方案中规定对教授、副教授、讲师和助教分别处理。那么可以确定4个有效等价类:教授、副教授、讲师和助教;1个无效等价类,它是所有不符合以上职称的人员构成的集合。 例:输入条件要求:x=5, 答案: 有效等价类:1个x=5 无效等

7、价类:1个:x!=5,例:程序输入x取值于一个固定的枚举类型1,2,4,12,且程序中对这4个数值分别进行了处理,请问等价类如何划分? 有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x1,3,7,15的值的集合。,解:程序输入x取值于一个固定的枚举类型1,2,4,12,并且程序中对这4个数值分别进行了处理,则有效等价类为x=1、x=2、x=4、x=12,无效等价类为1、2、4、12以外的值构成的集合。,(3) 按照数值集合划分。在输入条件规定了输入值的集合或者规定了“必须如何”的情况下,可确立一个有效等价类和一个无效等价类。 例,某程序中有标识符,其输入条件规定“标识符应以字母开

8、头”,则可以这样划分等价类:“以字母开头者”作为有效等价类,“以非字母开头”作为无效等价类。例:程序输入用户口令的长度必须是4位的串,可以确定一个邮箱等价类是串的长度为4,一个无效等价类长度不为4。,(4) 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。,(5) 进一步细分等价类。在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。 例如:程序用于判断几何图形的形状,则我们可以首先根据边数划分出三角形、四边形、五边形、六边形等。然后对于每一种类型,我们可以做进一步的划分,比如三角形可以进一步分为等边三角形、等腰三角形和

9、一般三角形。(6) 等价类划分还应特别注意默认值、空值、Null、零值等的情形。,3等价类的特点按划分等价类的规则划分出的等价类具有下列特点:(1) 完备性:划分出的各个等价类(子集)的并是输入/输出的全集,即程序的定义域/值域。(2) 无冗余性:各个等价类是互不相交的一组子集。(3) 等价性:划分的各个子集是由等价关系决定的,即各个输入数据对于揭露程序中的错误都是等效的。因此我们可以从等价类中选择一个具有代表性的数据进行测试就可以达到测试目的。,4.2.3 用等价类设计测试用例1划分等价类首先根据输入条件或输出条件划分等价类。2建立等价类表根据划分的等价类建立等价类表,如表4-2-1所示。,

10、3选择测试用例从等价类中选取具有代表性的数据设计测试用例。从等价类中选择测试用例时,一般遵循下列原则:(1) 为每一个等价类规定一个唯一的编号。(2) 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到所有的有效等价类都被覆盖为止。(3) 设计一个测试用例,使其仅覆盖一个尚未被覆盖的无效等价类。重复这一步,直到所有的无效等价类都被覆盖为止。,4.2.5 案例 1电话号码某城市电话号码由三部分组成,分别是:地区码空白或4位数字。前缀为三位数字,但不能以“0”或“1”开头。后缀4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。请用等价类方

11、法进行测试,设计测试用例。,(1) 根据输入条件,划分出有效等价类和无效等价类,如表4-2-2所示。,2三角形问题程序规定:“输入三个正整数a、b、c,分别作为三角形的三条边长。通过程序判定是否能构成三角形。如果能构成三角形,进一步判断三角形的类型。当此三角形为一般三角形、等腰三角形及等边三角形时,分别作不同的操作。”用等价类划分方法为该程序进行测试用例设计。,(1) 分析题目中给出的条件和隐含的输入要求,输入条件如下: 正整数。 三个数。 构成一般三角形。 构成等腰三角形。 构成等边三角形。 不能构成三角形。,(2) 根据输入条件的要求划分等价类,列出等价类表并编号,如下表所示。,(3) 设计测试用例,覆盖上表中的等价类,如表4-2-5所示。,边界值分析法与等价类划分法比较 (1)等价分类法的测试数据是在各个等价类允许的值域内任意选取

温馨提示

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

评论

0/150

提交评论