等价类划分法
等价类划分法

等价类划分法1、定义:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于发现程序中的错误都是等效的。
并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试。
2、等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的要求和说明,即需求规格说明书。
我们必须仔细分析和推敲说明书的各项需求,特别是功能需求。
把说明书中对输入的要求和输出的要求区别开来并加以分解。
3、等价类的划分:有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据所构成的集合;利用它可以检验程序是否实现了预期的功能和性能。
无效等价类:是指对于程序的规格说明来说,是不合理的,没有意义的输入数据所构成的集合;利用它可以检验程序对于无效数据的处理。
4、确定等价类的原则:一、如果输入条件规定了取值范围,或者值的个数,则可以确定一个有效等价类和两个无效等价类。
二、如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可以确立一个有效等价类和一个无效等价类。
三、如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。
四、如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个等价类,而对于这组值之外的所有值确立一个等价类。
五、如果规定了输入数据必须遵守的规则,则可以确立一个有效等件类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据)。
六、如果确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类。
5、等价类测试有:弱一般等价类测试、强一般等价类测试、弱健壮等价类测试、强健壮等价类测试。
边界值1、基于边界值分析方法选择测试用例的原则:1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。
离散数学中关系的等价类划分方法

离散数学中关系的等价类划分方法在离散数学中,关系是描述元素之间具有某种联系或性质的数学概念。
而等价关系是其中一种重要的关系类型,它可以将元素分为相互等价的类别。
本文将介绍离散数学中关系的等价类划分方法,并探讨其应用。
一、等价关系的定义在离散数学中,等价关系是一种具有以下三个性质的二元关系:1. 自反性(Reflexivity):对于集合中的任意元素a,a与自身是等价的。
2. 对称性(Symmetry):对于集合中的任意元素a和b,如果a与b是等价的,则b与a也是等价的。
3. 传递性(Transitivity):对于集合中的任意元素a、b和c,如果a与b是等价的,b与c也是等价的,则a与c是等价的。
基于上述定义,我们可以利用等价关系将集合划分为若干个等价类,每个等价类包含具有相同性质或联系的元素。
二、等价类划分方法在离散数学中,常用的等价类划分方法有以下几种:1. 等价关系的特征矩阵法:特征矩阵法是一种基于矩阵运算的等价类划分方法。
首先,我们可以通过矩阵来表示给定的等价关系,其中矩阵的行和列表示集合中的元素,而矩阵的元素表示对应元素之间的关系。
例如,对于集合{1,2,3,4,5},若等价关系R定义为{(1,1),(1,2),(2,1),(2,2),(3,3),(4,4),(4,5),(5,4),(5,5)},则对应的特征矩阵为:```1 1 0 0 01 1 0 0 00 0 1 0 00 0 0 1 10 0 0 1 1```接下来,我们可以通过矩阵的幂运算来判断两个元素是否属于同一个等价类。
具体而言,对于矩阵的幂运算A^n(n为正整数),若矩阵A的第i行第j列元素为1,则A^n的第i行第j列元素也为1;若矩阵A的第i行第j列元素为0,则A^n的第i行第j列元素仍为0。
通过不断进行矩阵的幂运算,直到得到的矩阵不再发生变化,我们可以确定出所有的等价类。
2. 等价类的划分法:等价类的划分法是一种基于划分操作的等价类划分方法。
等价类划分法的划分原则

等价类划分法的划分原则
等价类划分法是一种测试用例设计的方法,其主要目的是将测试空间划分为若干个等价类,从而减少测试用例的数量,提高测试效率。
等价类划分的原则主要包括以下几个方面:
1. 依据输入数据的特征进行分类:在程序的输入端,根据输入数据的特征将其划分为不同的等价类。
例如,对于一个数字加减运算的程序,可以将输入数据分为整数、分数、小数等等价类。
2. 尽可能划分为多个等价类:在划分等价类时,尽可能划分为多个等价类,以减少测试用例的数量。
例如,对于一个数字加减运算的程序,可以将其划分为整数加减、分数加减、小数加减等多个等价类。
3. 确保每个等价类包含相同的数据范围:在划分等价类时,需要确保每个等价类包含相同的数据范围。
例如,对于一个数字加减运算的程序,整数加减和小数加减的等价类需要包含所有的整数和小数数据。
4. 尽量避免划分过多的等价类:在划分等价类时,需要尽量避免划分过多的等价类。
例如,对于一个数字加减运算的程序,可以将其划分为整数加减、分数加减、小数加减等多个等价类,但是如果将等价类过多地划分,会增加测试用例的数量,降低测试效率。
5. 根据等价类的特点设计测试用例:在划分等价类后,需要根据等价类的特点设计测试用例。
例如,对于整数加减的等价类,可以设计一些整数之间的加减测试用例;对于小数加减的等价类,可以设
计一些小数之间的加减测试用例。
总结起来,等价类划分法是一种有效的测试用例设计方法,可以帮助开发人员减少测试用例的数量,提高测试效率。
在划分等价类时,需要根据程序的特点和输入数据的特征进行分类,以确保每个等价类包含相同的数据范围,并且尽量避免划分过多的等价类。
请采用等价类划分法设计测试用例。

请采用等价类划分法设计测试用例。
软件测试是软件工程中必不可少的一个环节,而测试用例的设计更是软件测试的核心。
好的测试用例可以有效地发现软件中的缺陷及错误,保障软件的质量。
在测试用例的设计方法中,等价类划分法被广泛地应用。
在本文中,我们将介绍等价类划分法,并以实例演示它在测试用例设计过程中的应用。
一、等价类划分法概述等价类划分法是一种基于输入域的测试用例设计方法,将输入域划分成若干个等价类,使得每个等价类的输入具有相同的性质或产生相同的结果。
在测试用例设计中,只需要覆盖每个等价类的一个测试用例即可得到等价类中所有的测试用例。
这种方法可以有效地减少测试用例的数量,并且保证了测试用例的充分性和有效性。
二、等价类划分法的原则1. 输入域应该被分为不同的等价类。
2. 每个等价类的输入应该具有相同的性质,如相同的格式、相同的类型、相同的范围等。
3. 选择输入域内最具有代表性的测试用例作为代表。
4. 测试用例要覆盖所有的等价类。
三、等价类划分法的步骤1. 根据需求和规格对输入域进行划分,将输入划分为若干个不同的等价类。
2. 对于每个等价类,选取具有代表性的测试用例,覆盖所有的等价类。
3. 检查测试用例是否充分,每个等价类至少被覆盖一次。
4. 检查测试用例是否有效,测试用例能够发现潜在的错误和缺陷。
四、等价类划分法实例接下来,我们将以一个简单的例子来演示等价类划分法的应用:某软件中有一个功能模块,根据用户提供的年份计算该年是否为闰年。
闰年有两种定义,一种是能被4整除但不能被100整除,另一种是能被400整除。
设计一个测试用例框架,并采用等价类划分法设计测试用例。
1. 明确输入域:用户提供的年份。
2. 输入域划分:将输入域分为三个等价类:闰年、非闰年、非法年份(超出计算范围)。
3. 确定代表测试用例:a. 闰年:2004,2012,2020。
b. 非闰年:2003,2005,2007。
c. 非法年份:-1,0,10000。
等价类划分法

测试用例设计—等价类划分法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. 引言在软件测试过程中,等价类划分法是一种常用的测试设计技术。
它将输入和输出的可能取值范围划分为若干个等价类,只需要选择一个代表性的值进行测试,从而减少测试用例的数量和测试工作的复杂性。
本文将通过举例详细介绍等价类划分法的原理、应用和实施步骤。
2. 原理等价类划分法基于以下原理:对于每个等价类中的测试用例,其执行结果应该具有相同的特性。
因此,从每个等价类中选择一个测试用例就可以代表该等价类的其他测试用例。
3. 应用场景等价类划分法适用于各种软件测试环境,特别适用于输入和输出具有较大取值范围的情况。
下面通过一个简单的示例来说明等价类划分法的应用。
4. 示例:登录系统假设要测试一个登录系统,用户名和密码是必须输入的字段,且用户名只能由字母和数字组成,密码由字母、数字和特殊字符组成。
根据等价类划分法,我们可以将用户名分为以下三个等价类:1)合法的用户名,2)用户名为空,3)用户名含有非法字符。
将密码分为以下三个等价类:1)合法的密码,2)密码为空,3)密码过于简单。
4.1 用户名的等价类划分1)合法的用户名:包含字母和数字的用户名,例如”john123”。
2)用户名为空:没有输入任何用户名。
3)用户名含有非法字符:包含除字母和数字外的其他字符的用户名,例如”john#123”。
4.2 密码的等价类划分1)合法的密码:包含字母、数字和特殊字符的密码,例如”Pass123!“。
2)密码为空:没有输入任何密码。
3)密码过于简单:只包含字母或数字的密码,例如”password”。
5. 划分测试用例根据等价类划分的结果,我们可以从每个等价类中选择一个测试用例进行测试。
下面列举了几个代表性的测试用例:1)合法的用户名和密码:使用合法的用户名和密码进行登录,测试是否成功。
2)用户名为空和合法密码:不输入用户名,只输入合法的密码进行登录,测试是否能够提示用户名不能为空。
3)用户名含有非法字符和密码为空:输入含有非法字符的用户名,不输入密码进行登录,测试是否能够提示用户名输入错误。
等价类划分法含例子

1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。
使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
2.划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。
(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。
例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。
等价类划分法含例子

1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。
使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
2.划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。
(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。
例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三角形问题与NextDate函数
1、三角形问题
输入三个整数a、b、c,分别作为三角形的三条边,现通过程序 判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三 角形(特殊的还有直角三角形),以及构不成三角形。 现在要求输入三个整数a、b、c,必须满足以下条件: 条件1 1≤a≤100 条件4 a<b+ c 条件2 1≤b≤100 条件5 b<a+ c 条件3 1≤c≤100 条件6 c<a+ b
三角形问题与NextDate函数(续)
2、NextDate函数
- NextDate函数说明另一种复杂的关系,即输入变量之间逻辑关系的复 杂性。 - NextDate函数包含三个变量month、day和year,函数的输出为输入日 期后一天的日期。 要求输入变量month、day和year均为整数值,并 且满足下列条件:
条件1 1≤ month ≤12 条件2 1≤ day ≤31 条件3 1912≤ year ≤2050 结论:在NextDate函数中有两种复杂性的输入来源,一是输 入域的复杂性,二是确定闰年的规则并要增加“额外天”。
等价类划分法
等价类的划分原则
等价类划分法的测试用例设计
常见等价类划分测试形式 使用等价类划分法测试的实例
6点
4点
2点
5点
3点
3点
1人扣0.5点 最多扣3点 5点 (四舍五入取整)
计算保费费率的程序
(1)分析程序规格说明中给出和隐含的对输入条件的要求, 列出等价类表(包括有效等价类和无效等价类)。
年龄:一位或两位非零整数,值的有效范围为1~99 性别:一位英文字符,只能取值‘M’或’F’ 婚姻:字符,只能取值‘已婚’或‘未婚’ 抚养人数:空白或一位非零整数(1~9) 点数 :一位或两位非零整数,值的范围为1~99
常见等价类划分测试形式
针对是否对无效数据进行测试,可以将等价类测 试分为标准等价类测试和健壮等价类测试。
- 标准等价类测试:不考虑无效数据值,测试用例使用 每个等价类中的一个值。 - 健壮等价类测试:主要的出发点是考虑了无效等价类。 对有效输入,测试用例从每个有效等价类中取一个值; 对无效输入,一个测试用例有一个无效值,其他值均 取有效值。
Return
等价类划分法
等价类划分法是一种重要的、常用的黑盒测试方法,它将 不能穷举的测试过程进行合理分类,从而保证设计出来的 测试用例具有完整性和代表性。
举例:设计这样的测试用例,来实现一个对所有实数进行 开平方运算( y = sqrt(x) )的程序的测试。 思考方向: 由于开平方运算只对非负实数有效,这时需要将所有 的实数(输入域x)进行划分,可以分成:正实数、0 和 负实数。假设我们选定+1.4444代表正实数,-2.345代表 负实数,则该程序的测试用例为+1.4444、 0 和 -2.345。
等价类的划分原则
采用等价类划分法设计测试用例通常分两步 进行: (1)确定等价类,列出等价类表。 (2)确定测试用例。
等价类的划分
划分等价类可分为两种情况:
(1)有效等价类
- 是指对软件规格说明而言,是有意义的、合理的输入 数据所组成的集合。利用有效等价类,能够检验程序是否 实现了规格说明中预先规定的功能和性能。 (2)无效等价类 - 是指对软件规格说明而言,是无意义的、不合理的输 入数据所构成的集合。利用无效等价类,可以鉴别程序异 常处理的情况,检查被测对象的功能和性能的实现是否有 不符合规格说明要求的地方。
设计测试用例的基本准则
测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非 法的、边界的和越界的以及极限的输入数据、操作和环 境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用 例都应有相应的期望结果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。
黑盒测试法的概念
黑盒测试被称为功能测试或数据驱动测试。在测试时,把被 测程序视为一个不能打开的黑盒子,在完全不考虑程序内部 结构和内部特性的情况下进行。 采用黑盒测试的目的主要是在已知软件产品所应具有的功能 的基础上,进行: (1)检查程序功能能否按需求规格说明书的规定正常使用, 测试各个功能是否有遗漏,检测性能等特性要求是否满足。 (2)检测人机交互是否错误,检测数据结构或外部数据库访 问是否错误,程序是否能适当地接收输入数据而产生正确的 输出结果,并保持外部信息(如数据库或文件)的完整性。 (3)检测程序初始化和终止方面的错误。 Return
实践环节
测试用例设计概述
测试用例的定义和特征 测试用例的基本准则 设计测试用例的着眼点
测试用例设计书写标准
Return
测试用例的定义和特征
测试用例的定义: (1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。
(2)测试用例是执行的最小实体。 测试用例的特征: (1)最有可能抓住错误的; (2)不是重复的、多余的; (3)一组相似测试用例中最有效的; (4)既不是太简单,也不是太复杂。
Return
三角形问题与NextDate函数(续)
如果输入值a、b、c不满足条件1、条件2和条件3 ,程序给 出“边的取值超出允许范围”的信息。 如果输入值a、b、c 满足条件1、条件2和条件3,则输出下 列四种情况之一: (1)如果不满足条件4、条件5和条件6中的一个,则程序输出 为“非三角形”。 (2)如果三条边相等,则程序输出为“等边三角形”。 (3)如果恰好有两条边相等,则程序输出为“等腰三角形”。 (4)如果三条边都不相等,则程序输出为“一般三角形”。 结论:三角形问题的复杂之处在于输入与输出之间的关系 比较复杂。
等价类划分法的测试用例设计
在设计测试用例时,应同时考虑有效等价类和无效等价类 测试用例的设计。 根据已列出的等价类表可确定测试用例,具体过程如下: (1)首先为等价类表中的每一个等价类分别规定一个唯一 的编号。 (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖 的有效等价类。重复这个步骤,直到所有的有效等价类均 被测试用例所覆盖。 (3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的 无效等价类。重复这一步骤,直到所有的无效等价类均被 测试用例所覆盖。
等价类的划分原则(续)
进行等价类划分的依据:
(1)按照区间划分 在输入条件规定了取值范围或值的个 数的情况下,可以确定一个有效等价类和两个无效等价类。
例:程序输入条件为小于 100大于10的整数x,则有效等价类 (2)按照数值划分 在规定了一组输入数据(假设包括 n 为 x<100,两个无效等价类为x≤10和x≥100。 个10< 输入值),并且程序要对每一个输入值分别进行处理的 情况下,可确定 n 个有效等价类(每个值确定一个有效等 价类)和一个无效等价类(所有不允许的输入值的集合)。
黑盒测试及其用例的设计
内容大纲
测试用例设计概述 黑盒测试法的概念 三角形问题与NextDate函数 等价类划分法 边界值分析法 因果图法 决策表法 错误推测法 场景法 测试方法的选择
教学目标
理论环节
学习理解黑盒测试方法的基本概念 学习理解黑盒测试的两个典型问题 学习掌握黑盒测试的等价类划分法 学习掌握黑盒测试的边界值分析法 学习掌握黑盒测试的因果图测试法和决策表法 通过案例运用学习掌握运用方法解决实际问题的能力 运用等价类划分法与边界值分析法进行实际程序测试 运用因果图测试法与决策表法进行实际程序测试
例:程序输入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)对强类型的语言没有必要考虑无效的输入
使用等价类划分法测试的实例
实例1
三角形问题
分析:在多数情况下,是从输入域划分等价类的,但并非不能 从被测程序的输出域反过来定义等价类,事实上,这对于三 角形问题却是最简单的划分方法。 在三角形问题中,有四 种可能的输出:等边三角形、等腰三角形、一般三角形和非 三角形。利用这些信息能够确定下列输出(值域)等价类。 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不能组成三角形 }
设计测试用例的着眼点