黑盒测试中的等价类划分法是一种重要的测试方法,它通过将软件的输入域划分为若干个子集(即等价类),然后从每个子集中选取具有代表性的数据作为测试用例,以达到用少量数据覆盖大量输入情况的目的。
一、等价类划分的基本概念
- 等价类:指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。它们可以代表该子集的所有输入数据,从而合理地减少测试工作量。
- 有效等价类:指符合《需求文档》,输入合理的数据集合。
- 无效等价类:指不符合《需求文档》,输入不合理的数据集合。
二、等价类划分的原则
- 在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。
- 在规定了输入数据的一组值(假定有n个值)中,并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。
- 在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。
三、等价类划分的步骤
- 划分等价类:首先,根据需求规格说明书,将输入域划分为若干个等价类。
- 确定测试用例:从每个等价类中选取少数有代表性的数据作为测试用例。
- 编写测试用例:根据选取的测试数据,编写详细的测试用例,包括输入数据、预期输出和测试步骤。
四、举例
假设有一个软件需求是“测试一个输入框,该输入框只能接受长度为6到18位的英文字母或数字组成的字符串”。
1. 划分等价类
- 有效等价类:长度为6到18位的英文字母或数字组成的字符串。
- 无效等价类:
- 长度小于6位的字符串。
- 长度大于18位的字符串。
- 包含非英文字母和非数字的字符串(如特殊字符、空格、中文等)。
- 空字符串。
2. 确定测试用例
- 有效等价类测试用例:
- "abcdef"(长度为6位的英文字符串)
- "123456789012345"(长度为15位的数字字符串)
- "A1b2C3d4E5"(长度为10位的混合字符串)
- 无效等价类测试用例:
- "abc"(长度小于6位的字符串)
- "12345678901234567"(长度大于18位的字符串)
- "abc!@#"(包含特殊字符的字符串)
- " "(空字符串)
3. 编写测试用例
测试用例编号 | 输入数据 | 预期输出 |
---|---|---|
TC001 | "abcdef" | 验证通过 |
TC002 | "123456789012345" | 验证通过 |
TC003 | "A1b2C3d4E5" | 验证通过 |
TC004 | "abc" | 验证失败,长度小于6位 |
TC005 | "12345678901234567" | 验证失败,长度大于18位 |
TC006 | "abc!@#" | 验证失败,包含特殊字符 |
TC007 | " " | 验证失败,空字符串 |
通过这个例子,我们可以看到等价类划分法如何帮助我们在黑盒测试中有效地减少测试用例的数量,同时保证测试的全面性。