测试用例示例如三角形判定通过输入三边 a、b、c 判断三角形类型,其设计逻辑体现了对正常与异常场景的全面覆盖。正常情况包括等边(a=b=c)、等腰(a=b≠c 等)、不等边(a≠b≠c)三角形;而异常和边界情况则测试非法输入,如边长为负数、零、非整数、超出范围(如大于100或小于1)等,确保程序鲁棒性。
在测试用例设计方法中:
- 边值分析:聚焦输入域边界,选取边界值及其邻近值(如最小值-1、最小值、最小值+1,最大值-1、最大值、最大值+1)。例如三角形边长范围为 [1,100],则测试 0、1、2 和 99、100、101 等组合。
- 错误推测:基于经验猜测常见错误,如未判断边长是否为正、未验证三角形成立条件(任意两边之和大于第三边),从而设计能暴露这些问题的用例。
- 因果图:将输入条件(如“三边相等”“两边相等”“边为负”)作为“因”,输出结果(如“等边三角形”“非法输入”)作为“果”,构建逻辑关系图,导出所有有效输入组合,避免遗漏。
- 等价类划分:将输入划分为有效类(如合法边长)和无效类(如负数、超范围、非数字),从每类中选代表值进行测试。
该内容采用“实例 + 方法论”结构,以三角形问题为载体,直观展示如何结合多种黑盒测试技术系统化设计测试用例,尤其强调对边界与异常情形的充分覆盖,提升测试有效性。
使用等价类划分法为三角形判定程序设计测试用例时,首先将所有可能的输入数据划分为若干“等价类”,每个类中的数据在程序逻辑中应被同等处理。目标是从每个等价类中选取一个代表性值进行测试,从而减少冗余用例,提高测试效率。
针对三角形判定程序(输入三边 a、b、c,判断为等边、等腰、不等边或非三角形),假设边长取值范围为整数 [1, 100],以下是具体步骤:
一、确定输入条件
- 输入:三个正整数 a、b、c(代表三角形三边)
- 输出:等边三角形、等腰三角形、不等边三角形、非法输入(非三角形或无效边长)
二、划分等价类
1. 有效等价类(合法输入)
| 条件 | 等价类说明 |
|---|---|
| E1 | a、b、c 均在 [1,100] 范围内,且满足三角形成立条件(任意两边之和 > 第三边) |
| E2 | 满足 E1,且 a = b = c → 等边三角形 |
| E3 | 满足 E1,且有且仅有两边相等(如 a = b ≠ c)→ 等腰三角形 |
| E4 | 满足 E1,且 a ≠ b ≠ c → 不等边三角形 |
2. 无效等价类(非法输入)
| 条件 | 等价类说明 |
|---|---|
| I1 | 至少有一边 ≤ 0(如 a = -1) |
| I2 | 至少有一边 > 100(如 a = 101) |
| I3 | 输入非整数(如 a = 3.5 或 a = “abc”) |
| I4 | 两边之和 ≤ 第三边(不构成三角形,如 1, 2, 5) |
| I5 | 输入个数不足或类型错误(如只输入两个值) |
三、设计测试用例(每类选一个代表)
| 用例编号 | a | b | c | 预期输出 | 覆盖等价类 |
|---|---|---|---|---|---|
| TC1 | 3 | 3 | 3 | 等边三角形 | E2 |
| TC2 | 3 | 3 | 4 | 等腰三角形 | E3 |
| TC3 | 3 | 4 | 5 | 不等边三角形 | E4 |
| TC4 | -1 | 4 | 5 | 非法输入(边≤0) | I1 |
| TC5 | 101 | 50 | 50 | 非法输入(边>100) | I2 |
| TC6 | 1 | 2 | 5 | 非法输入(不构成三角形) | I4 |
| TC7 | 3.5 | 4 | 5 | 非法输入(非整数) | I3 |
注:若系统支持浮点数,则需重新定义有效域;此处假设仅接受整数。
四、注意事项
- 结合边界值分析增强覆盖(如测试 a=1, a=100, a=0, a=101)。
- 实际测试中可结合因果图法处理复杂条件组合(如“两边相等 + 满足三角形条件” → 等腰)。
- 错误推测补充:例如测试三边为 (1,1,2),虽接近边界但两边之和等于第三边,应判为非三角形。
通过等价类划分,可以系统化地将无限或大量输入归约为有限个具有代表性的测试用例,确保功能逻辑和异常处理都得到验证。


被折叠的 条评论
为什么被折叠?



