一、基本原理。
等价类划分是一种典型的黑盒测试方法,等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
二、等价类的划分(指测试相同目标或暴露相同软件缺陷的一组测试)。
1.划分等价类的方法(思路:在寻找等价划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组)
- 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;
- 在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。 - 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
- 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
2.等价类测试用例的类别。
三、测试用例举例。
1.写出三角形问题的输入等价类和输出等价类。
(1).先分析输入和输出的各种情况。
(2)根据上表的各种情况,设计测试用例。
覆盖有效等价类的测试用例:
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)
覆盖无效等价类的测试用例:
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. 写出NextDate函数的输入等价类。输入要求如下:①输入包含
year,month,day; ②1812<=year<=2012;③1<=month<=12;④1<=day<=31。程序输出为用户输入日期的下一天。
(1).分析输入情况。
?/P>
输入等价类 | 有效等价类 | 无效等价类 |
日期的范围 | 1<=day<=31 | day<1 or day>31 |
月份范围 | 1<=month<=12 | month<1 or month>12 |
年份范围 | 1812<=year<=2012 | year<1812 or year>2012 |
(2).设计测试用例。
-
弱一般等价类测试用例
月份 日期 年 预期输出
6 15 1912 1912年6月16日 -
弱健壮等价类测试
用例ID 月份 日期 年 预期输出
WR1 6 15 1912 1912年6月16日
WR2 -1 15 1912 月份不在1~12中
WR3 13 15 1912 月份不在1~12中
WR4 6 -1 1912 日期不在1~31中
WR5 6 32 1912 日期不在1~31中
WR6 6 15 1811 年份不在1812~2012中
WR7 6 15 2013 年份不在1812~2012中 -
强健壮等价类测试
用例ID 月份 日期 年 预期输出
SR1 -1 15 1912 月份不在1~12中
SR2 6 -1 1912 日期不在1~31中
SR3 6 15 1811 年份不在1812~2012中
SR4 -1 -1 1912 两个无效一个有效
SR5 6 -1 1811 两个无效一个有效
SR6 -1 15 1811 两个无效一个有效
SR7 -1 -1 1811 三个无效