等价类划分法实例

合集下载

离散数学等价类

离散数学等价类

离散数学等价类
离散数学是一门研究离散结构及其运算规律的数学学科,其中一个重要的概念是等价关系。

等价关系是一种对集合中元素进行分类的方法,将具有相同性质的元素划分到同一个等价类中。

在离散数学中,等价类是以等价关系划分出的子集。

对于一个给定的等价关系R,对于集合A中的元素a和b,如果a和b满足R关系,即aRb,那么a和b属于同一个等价类。

等价类的定义要满足三个性质:自反性、对称性和传递性。

举个例子来说明等价类的概念。

考虑一个集合A表示所有人的集合,定义一个等价关系R表示两个人的年龄相同。

那么对于A中的每个人,他们可以被划分到不同的等价类中,每个等价类中的人年龄相同。

例如,如果集合A中有三个人a、b和c,其中a和b的年龄相同,b和c的年龄相同,那么a、b和c分别属于两个等价类。

等价类在离散数学中有广泛的应用。

它们可以用于表示相似关系,例如在图像处理中用于图像的分割和识别。

此外,在数据库的设计和查询过程中,等价类的概念也扮演了重要的角色。

等价类的划分可以将数据集合划分成更小的、具有相似特性的子集,从而方便进行数据的管理和查询。

总之,离散数学中的等价类是根据等价关系将集合划分成具有相同性质的子集。

它们在不同领域中都有重要的应用,帮助我们理解和处理具有相似特性的元素。

黑盒测试《等价类划分》-有这篇就够了

黑盒测试《等价类划分》-有这篇就够了

⿊盒测试《等价类划分》-有这篇就够了⼤家好,我是吉提。

在疫情消停不下来的2020年,既然不好跳槽,不好涨薪,也不好发挥创造⼒,那么就沉下⼼来,跟我⼀起,巩固软件测试基础知识。

积攒⼒量,蓄势待发。

本⽂将会详细描述“等价类划分",它是⿊盒测试最基本的⽤例设计⽅法。

⽬录:1. 定义(What)2. 为什么使⽤该⽅法?(Why)3. 如何划分等价类?(How)4. 设计测试⽤例5. 使⽤场景6. 根据测试⽤例的完整性划分7. 等价类划分注意事项8. 等价类划分的优缺点9. 实战演练1. 定义(What)等价类划分法是⼀种典型的,并且是最基础的⿊盒测试⽤例设计⽅法。

采⽤等价类划分法时,完全不⽤考虑程序内部结构,设计测试⽤例的唯⼀依据是软件需求规格说明书。

所谓等价类,是输⼊条件的⼀个⼦集合,该输⼊集合中的数据对于揭⽰程序中的错误是等价的。

从每⼀个⼦集中选取少数具有代表性的数据,从⽽⽣成测试⽤例。

等价类⼜分为有效等价类和⽆效等价类。

有效等价类代表对程序有效的输⼊,⽽⽆效等价类则是其他任何可能的输⼊(即不正确的输⼊值)。

有效等价类和⽆效等价类都是使⽤等价类划分法设计⽤例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输⼊,也能接受⽆效输⼊的考验。

2. 为什么使⽤该⽅法?(Why)理想的测试,是从所有可能的输⼊中找出某个⼩的⼦集,并且是可能发现错误最多的⼦集。

即:使⽤最少的测试数据,达到最好的测试质量(最⾼性价⽐)。

这个⼦集如何确定?可以借助测试⽤例的两个特性:测试⽤例数量达到最少;某个测试⽤例要能覆盖⼤部分其他测试⽤例。

第⼆个特性就暗⽰我们,应该尽量将程序输⼊范围进⾏划分,将其划分为有限数量的等价类,这样就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。

这两种特性形成了称为等价类划分的⿊盒测试⽅法。

因此,等价类划分是⿊盒测试最基本的⽅法。

3. 如何划分等价类?(How)在给定了输⼊或外部条件之后,等价类的划分原则如下:如果输⼊条件规定了⼀个取值范围(例如,“数量可以是1到999”),那么就应确定出⼀个有效等价类(1<数量<999),以及两个⽆效等价类(数量<1,数量>999)。

等价类划分法

等价类划分法
例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。
等价类的划分
(3)按照数值集合划分 在输入条件规定了输入值的集合或 规定了“必须如何”的条件下,可以确定一个有效等价类和 一个无效等价类(该集合有效值之外)。 例:程序输入条件为取值为奇数的整数 x,则有效等价类为x (4)按照限制条件或规则划分 在规定了输入数据必须遵 的值为奇数的整数,无效等价类为 x的值不为奇数的整数。 守的规则或限制条件的情况下,可确定一个有效等价类(符 合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为以字符‘a’开头、长度为8的字符串,并且 (5)细分等价类 在确知已划分的等价类中各元素在程序中 字符串不包含‘a’~ ‘z’之外的其它字符,则有效等价类为满 的处理方式不同的情况下,则应再将该等价类进一步划分为 足了上述所有条件的字符串,无效等价类为不以‘a’开头的字 更小的等价类,并建立等价类表。 符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其它字符的 字符串。
实践环节

测试用例设计概述

测试用例的定义和特征 测试用例的基本准则 设计测试用例的着眼点
测试用例设计书写标准
Return
测试用例的定义和特征
测试用例的定义: (1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。

(2)测试用例是执行的最小实体。 测试用例的特征: (1)最有可能抓住错误的; (2)不是重复的、多余的; (3)一组相似测试用例中最有效的; (4)既不是太简单,也不是太复杂。
6点
4点

等价类划分法

等价类划分法

测试用例设计—等价类划分法2008-10-10 11:41:40| 分类:测试| 标签:|字号大中小订阅1.相关概念:等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

该方法是一种重要的,常用的黑盒测试用例设计方法。

1.2 等价类等价类是某个输入域的集合,在这个集合中每个输入条件都是等效的。

如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。

等价类分为有效等价类和无效等价类。

有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。

2.划分等价类的方法划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合。

下面给出六条确定等价类的原则。

1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

例如:成年人每分钟的心跳60-100之间为正常。

有效等价类:60-100 无效等价类:<60 和>1002、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。

例如:用户连续输入错误密码的次数最多为3次。

有效等价类:<=3次无效等价类:>3次3、在输入条件是一个布尔量的情况下,可确定一个有效等价类。

例如:单选的选中与不选中。

4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

例如:输入数据为省份的选择。

5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

例如:规定必须输入非0的正整数。

等价类划分法

等价类划分法

等价类划分法等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的要求和说明,即需求规格说明书。

我们必须仔细分析和推敲说明书的各项需求,特别是功能需求。

把说明书中对输入的要求和输出的要求区别开来并加以分解。

由于穷举测试工作量太大,以至于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。

例如,在不了解等价分配计数的前提下,我们做计算器程序的加法测试时,测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗,能否放心地认为它们是正确的?我们感觉1+5和1+6,与前面的1+1,1+2都是很类似的简单加法。

等价类划分的方法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。

每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误(除非等价类中的某些例子属于另一等价类,因为几个等价类是可能相交的)。

使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。

1、划分等价类和列出等价类表等价类是指某个输入域的子集合。

在该子集合中,各个输入数据对于发现程序中的错误都是等效的。

并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试。

因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试输入条件,就可以用少量代表性的测试数据取得较好的测试结果。

等价类划分有两种不同的情况:有效等价类和无效等价类。

有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。

利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类:与有效等价类的定义相反。

设计测试用例时,要同时考虑这两种等价类。

等价类划分法含例子

等价类划分法含例子

1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。

等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。

使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。

2.划分等价类:等价类是指某个输入域的子集合。

在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。

等价类划分可有两种不同的情况:有效等价类和无效等价类。

等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。

利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

对于具体的问题,无效等价类至少应有一个,也可能有多个。

在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。

(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。

例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。

三角形问题等价类划分

三角形问题等价类划分
三角形问题等价类划分是指将所有不同性质的三角形划分成一组等价类,每个等价类包含具有相同性质的三角形。

根据三角形问题的不同性质,可以进行不同的等价类划分。

常见的三角形问题等价类划分包括:
1. 根据边长等价类划分:将所有三角形根据边长的不同划分成等边三角形、等腰三角形、一般三角形等等等价类。

2. 根据角度等价类划分:将所有三角形根据角度的不同划分成锐角三角形、直角三角形、钝角三角形等等等价类。

3. 根据面积等价类划分:将所有三角形根据面积的不同划分成等面积三角形、不等面积三角形等等等价类。

4. 根据特殊性质等价类划分:将所有三角形根据特殊性质的不同划分成等腰直角三角形、等腰钝角三角形等等等价类。

根据不同的三角形问题可以进行不同的等价类划分,这样可以帮助我们更好地理解和分类三角形。

同时,等价类划分也有助于研究和解决三角形问题。

等价类划分法




设计测试用例的着眼点

根据产品规格,测试基本功能; 考虑设计一般用户(非专业人员)的使用方案; 考虑设计稀有或特殊的使用方案; 与系统其他组成部分的配合(如 FAX 和上网可能要用到 MODEM,测试中考虑对设备的共享); 考虑特殊情况(如内存和硬件的冲突等); 设计极端情况(如内存泄漏、破坏性测试等); 好的测试用例集能花费最小的代价(人力、物力、财力、 时间)做最好的测试。
设计测试用例的基本准则

测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非 法的、边界的和越界的以及极限的输入数据、操作和环 境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用 例都应有相应的期望结果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。
例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。
等价类的划分
(3)按照数值集合划分 在输入条件规定了输入值的集合或 规定了“必须如何”的条件下,可以确定一个有效等价类和 一个无效等价类(该集合有效值之外)。 例:程序输入条件为取值为奇数的整数 x,则有效等价类为x (4)按照限制条件或规则划分 在规定了输入数据必须遵 的值为奇数的整数,无效等价类为 x的值不为奇数的整数。 守的规则或限制条件的情况下,可确定一个有效等价类(符 合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为以字符‘a’开头、长度为8的字符串,并且 (5)细分等价类 在确知已划分的等价类中各元素在程序中 字符串不包含‘a’~ ‘z’之外的其它字符,则有效等价类为满 的处理方式不同的情况下,则应再将该等价类进一步划分为 足了上述所有条件的字符串,无效等价类为不以‘a’开头的字 更小的等价类,并建立等价类表。 符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其它字符的 字符串。

等价类划分法和边界法的区别

等价类划分法和边界法的区别1. 引言大家好呀,今天我们来聊聊两个在软件测试领域非常重要的方法:等价类划分法和边界值分析法。

听起来是不是有点学术,其实也没那么复杂,咱们就用通俗易懂的方式来看看这两个方法的区别,保证让你听完后能心里有数,嘴上也能说得清!2. 等价类划分法2.1 什么是等价类划分法?好,先说说等价类划分法。

你可以把它想象成一个切蛋糕的过程,大家都喜欢吃蛋糕,但不是每一块都得尝试对吧?我们可以把所有可能的输入分成几个“类”,每个类里边的东西都差不多,这样就能减少测试的工作量。

比如说,你要测试一个输入年龄的程序。

18岁到60岁之间的都算一类,60岁以上的一类,18岁以下的又是一类。

每一类里边的值都差不多,所以你就可以选一个代表性的值来测试,省时省力,真是一举两得。

2.2 适用场景和优缺点不过呢,等价类划分法也有它的短板。

有时候你可能会漏掉一些边缘情况,比如刚好18岁或60岁这些“老虎”。

这就需要咱们后面要讲的边界值分析法来捉拿这些细节了。

所以说,等价类划分法是个好帮手,但它绝对不是万灵药。

它适合于那些输入范围比较大的情况,尤其是当你能明确划分出几类时,就可以大显身手了!3. 边界值分析法3.1 什么是边界值分析法?好,接下来我们聊聊边界值分析法。

这可是一位神奇的朋友!顾名思义,它专注于那些“边界”,也就是极限值。

还是以刚才的年龄测试为例,边界值分析法会关注那些极限值,比如17岁、18岁、59岁和60岁。

因为在实际测试中,这些边界值往往是出问题的高发区,就像过马路时总得看看左右来车的危险,边界值分析就是为了避免你在测试中“撞车”。

3.2 适用场景和优缺点这个方法特别适合于那些有明确上下限的场合,像银行取款、投票年龄等。

如果你只测试18岁和60岁的值,而不测试这两个边界周围的值,那可就糟了!不过,边界值分析法也不是没有缺点。

它通常需要更多的测试用例,尤其是在复杂的系统里,可能会让你觉得有点力不从心。

黑盒测试——等价类划分法

实验二: 黑盒测试——等价类划分法【实验环境】Windows 10 操作系统,C,C++,C#、Java或Python语言开发环境(IDE)。

【实验类型】设计型【实验目的】1.认识黑盒测试方法中等价类划分测试方法原理2.掌握黑盒测试方法中等价类划分测试方法过程【实验内容】【实验材料】1.三角形问题问题描述:三角形问题接受三个整数,a、b和c作为输入,用作三角形的边。

程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。

作为输入:三角形的三条边必须满足如下条件:C1:1<=a<=100C2:1<=b<=100C3:1<=c<=100C4:a<b+cC5:b<a+cC6:c<a+b2.NextDate函数问题描述:NextDate是一个由三个变量(月份、日期和年份)的函数。

函数返回输入日期后边的那个日期。

作为输入:变量月份、日期和年都具有整数值,满足以下条件。

C1:1<=月份<=12C2:1<=日期<=31C3:1912<=年<=20503.佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。

枪机卖45美元,枪托卖30美元,枪管卖25美元。

销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。

每访问一个镇子后,销售商都给密苏里州步枪制造商发出一份很短的电报,通知几个枪机被售出。

这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:不到(含)1000美元的部分为10%;1000(不含)~1800(含)美元的部分为15%;超过1800美元的部分为20%。

佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.某程序规定:"输入三个整数a 、b 、c 分别作为三边的边长构成三角形。

通过程
序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。

用等价类划分方法为该程序进行测试用例设计。

(三角形问题的复
杂之处在于输入与输出之间的关系比较复杂。


分析题目中给出和隐含的对输入条件的要求:
(1)整数(2)三个数(3)非零数(4)正数
(5)两边之和大于第三边(6)等腰(7)等边
如果a 、b 、c 满足条件(1 )~ (4 ),则输出下列四种情况之一:
1)如果不满足条件(5),则程序输出为" 非三角形" 。

2)如果三条边相等即满足条件(7),则程序输出为" 等边三角形" 。

3)如果只有两条边相等、即满足条件(6),则程序输出为" 等腰三角形" 。

4)如果三条边都不相等,则程序输出为" 一般三角形" 。

列出等价类表并编号
覆盖有效等价类的测试用例:
a b c 覆盖等价类号码
3 4 5 (1)--(7)
4 4
5 (1)--(7),(8)
4 5 5 (1)--(7),(9)
5 4 5 (1)--(7),(10)
4 4 4 (1)--(7),(11)
覆盖无效等价类的测试用例:
2.设有一个档案管理系统,要求用户输入以年月表示的日期。

假设日期限定在1990年1
月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。

现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。

(不考虑2月的问题)
1)划分等价类并编号,下表等价类划分的结果
输入等价类有效等价类无效等价类
2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:
测试数据期望结果覆盖的有效等价类
200211 输入有效①、⑤、⑧
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据期望结果覆盖的无效等价类
95June 无效输入②
20036 无效输入③
2001006 无效输入④
198912 无效输入⑥
200401 无效输入⑦
200100 无效输入⑨
200113 无效输入⑩
3.NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输入日期后
一天的日期。

例如,输入为2006年3月7日,则函数的输出为2006年3月8日。

要求输入变量month 、day 和year 均为整数值,并且满足下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
1)有效等价类为:
M1={月份:1≤月份≤12}
D1={日期:1≤日期≤31}
Y1={年:1812≤年≤2012}
2)若条件①~ ③中任何一个条件失效,则NextDate 函数都会产生一个输出,指明
相应的变量超出取值范围,比如"month 的值不在1-12 范围当中" 。

显然还存在着大量的year 、month 、day 的无效组合,NextDate 函数将这些组合作统一的输出:" 无效输入日期" 。

其无效等价类为:
M2={月份:月份<1}
M3={月份:月份>12}
D2={日期:日期<1}
D3={日期:日期>31}
Y2={年:年<1812}
Y3={年:年>2012}
弱一般等价类测试用例
月份日期年预期输出。

相关文档
最新文档