黑盒测试方法论-等价类

发布时间:2026/8/2 5:57:08
黑盒测试方法论-等价类
文章目录一. 什么是等价类二. 等价类的分类三. 等价类的使用场景四. 等价类划分原则五. 等价类设计步骤六. 实战示例两位整数加法计算器1. 需求分析2. 等价类划分表3. 测试用例设计3.1 用例结构3.2 多元素输入的注意事项3.3 测试用例成品示例3.4 简单的测试用例示例七. 输入域等价类划分思路总结八. 优缺点分析一. 什么是等价类等价类划分法是黑盒测试中最经典、最广泛使用的设计方法之一。它不关注程序的内部代码结构而是完全基于输入规格说明来设计测试用例。其核心思想是将所有可能的输入数据划分为若干个互不重叠的子集即等价类然后从每个子集中选取少量具有代表性的数据作为测试用例。由于同一等价类中的数据对程序的处理逻辑是等价的因此只需测试其中一个代表值即可覆盖整个子集的测试效果。一句话概括等价类划分法 合理分类 代表值选取用有限的用例覆盖无限的输入空间。二. 等价类的分类类别定义说明有效等价类符合需求文档规定的、合理的输入数据集合验证程序在正常输入下能否正确运行无效等价类不符合需求文档规定的、不合理的输入数据集合验证程序对异常输入的容错与提示能力三. 等价类的使用场景在测试资源时间、人力有限的情况下等价类划分法能够以少量有代表性的数据获得较高的测试覆盖率尤其适用于输入域范围大、数据量多的场景需要快速建立基础测试用例集的项目初期作为其他测试方法如边界值分析的前置步骤四. 等价类划分原则序号输入条件描述划分方式1规定了输入的取值范围或个数1 个有效 2 个无效超出上界 / 低于下界2规定了输入必须遵循的集合或规则1 个有效 1 个无效3输入条件为布尔值1 个有效True 1 个无效False4输入为一组数据且每个值做不同处理若干个有效 1 个无效5输入条件规定了必须遵循的某些规则1 个有效 若干个无效每条规则对应一个无效6某些输入条件不存在无效情况仅划分有效等价类即可五. 等价类设计步骤Step 1 ➜ 划分等价类穷举所有可能的输入分类 Step 2 ➜ 确定有效等价类依据需求文档中的合法条件 Step 3 ➜ 确定无效等价类取条件的反面 特殊异常情况 Step 4 ➜ 选取测试数据从每个等价类中挑选代表性数据 Step 5 ➜ 编写测试用例组合数据明确预期结果六. 实战示例两位整数加法计算器1. 需求分析计算器要求输入两位整数即 -99 ~ 99对两个输入框的数值进行加法运算。如果要一个一个测试那数据量得非常大这样效率太低了。那为了解决这个问题可以采用等价类划分的方法。2. 等价类划分表确定这个输入框的所有可能的输入集合在这里就应该是键盘上所有可能的输入。把键盘上所有的输入分成若干子集在确立了等价类之后可按下表的形式列出所有划分出的等价类表输入条件有效等价类无效等价类两位整数-99 ~ 99 的整数超出范围的整数如 120、-111小数如 30.12字母如 ab汉字如 十二特殊字符如 $ %空输入3. 测试用例设计3.1 用例结构字段说明用例编号唯一标识便于追踪与管理所属等价类标注该用例覆盖的有效/无效等价类输入框 1 数据第一个操作数的测试值输入框 2 数据第二个操作数的测试值预期结果系统应返回的正确输出或提示信息3.2 多元素输入的注意事项用例的最终计算结果依赖于两个输入框的值属于多元素协同输入的场景。在设计用例时必须遵循以下原则单一变量原则当某条用例用于覆盖某个元素的无效等价类时用例中涉及的其余元素必须保持有效。示例若要验证输入框 1 的无效输入 → 输入框 2 填入合法值且按钮操作正常。若要验证输入框 2 的无效输入 → 输入框 1 填入合法值且按钮操作正常。为什么这样做如果一条用例中同时存在多个无效输入当系统报错时测试人员将无法判断错误究竟由哪个输入引起。保持一次只引入一个变量可以精准定位缺陷来源提高测试效率与缺陷报告的可追溯性。要点内容用例粒度初期保持精简聚焦核心字段覆盖策略有效用例验证功能正确性无效用例验证容错能力关键原则覆盖无效等价类时其余元素一律保持有效单一变量目的确保每条用例的错误归因清晰、可定位3.3 测试用例成品示例用例编号所属等价类输入框 1输入框 2预期结果1有效5040902输入框 1 无效12030错误提示3输入框 1 无效-11130错误提示4输入框 1 无效30.1220错误提示5输入框 1 无效ab10错误提示6输入框 1 无效十二39错误提示7输入框 1 无效$ %87错误提示8输入框 1 无效空91错误提示9输入框 2 无效35120错误提示10输入框 2 无效59-123错误提示11输入框 2 无效2430.12错误提示12输入框 2 无效12ab错误提示13输入框 2 无效76十二错误提示14输入框 2 无效83$ %错误提示15输入框 2 无效95空错误提示3.4 简单的测试用例示例七. 输入域等价类划分思路总结在设计等价类时可从以下 6 个维度 全面审视输入域维度关注点① 长度最大/最小长度、超长/过短② 类型数字、字母、汉字、特殊字符等③ 组成规则格式约束如手机号、邮箱格式④ 是否为空必填项留空⑤ 是否重复重复提交、重复数据⑥ 是否去除空格前后空格、中间空格的处理八. 优缺点分析说明✅ 优点思路清晰、易于理解覆盖了单个输入域所有可能的取值情况避免了盲目或随机选取数据导致的测试不完整❌ 缺点产生的用例数量较多未对边界值/特殊点做针对性考虑可能产生冗余或无效的测试用例 建议实际工作中应结合边界值分析法、判定表、场景法等方法进行补充形成完整的测试用例集