等价类、边界值、决策表分别适用于什么条件

等价类、边界值、决策表分别对应不同的输入结构。等价类适合输入取值多、能归并为若干有效与无效类别的场景;边界值适合取值连续、有序或存在明确上下限的场景;决策表适合多个条件相互组合、不同组合触发不同处理结果的业务规则。实际设计用例时,通常先划分等价类,再对区间补边界值,最后用决策表校验条件组合是否覆盖完整。




要点总览(TL;DR)


  • 等价类适合输入取值多、能归并为有效与无效类别且类别内处理逻辑一致的场景,用代表值压缩用例并保留无效输入覆盖。
  • 边界值适合取值连续、有序或存在明确上下限与精度要求的场景,在区间端点及相邻取值上补充临界用例。
  • 决策表适合多个条件组合决定不同动作的业务规则,用条件与动作的对应关系暴露规则遗漏、冲突与冗余组合。
  • 组合顺序通常为先划分等价类、再补边界值、最后用决策表校验规则覆盖,按字段的输入特征分别选择方法。
  • 输入空间极小可穷举、规则单一、取值范围频繁变动或探索性验证场景下,可暂缓完整方法化设计。


条件式结论:三种方法各自成立的前提


三种方法能否发挥作用,取决于被测对象的输入是否具备对应特征。判断时先看输入空间长什么样,再看业务规则由什么决定,方法选择就随之确定。


等价类成立的前提是输入可以划分为若干有效类别与无效类别,并且同一类别内的取值被系统按相同逻辑处理。例如用户角色只能取管理员、编辑、访客三种值,或年龄被划分为未成年、成年、老年几个区间,每个类别取一个代表值即可代表整类。如果同一类别内不同取值会走不同分支,说明划分粒度不够,需要继续拆分。


边界值成立的前提是取值连续、有序,或存在明确的上下限与精度要求。数值范围、日期区间、字符串长度、分页序号都属于这类输入。临界点及其相邻取值是缺陷高发位置,例如长度限制为1到50个字符时,0、1、50、51这几个点值得单独设计用例。


决策表成立的前提是多个条件共同决定动作,且不同条件组合对应不同处理结果。例如订单能否退款由支付状态、是否超时、商品类型共同决定,这类规则用条件与动作的对应表来梳理,能暴露组合遗漏和规则冲突。


三种方法可以并存,选择依据是被测对象的输入结构,团队习惯或方法偏好不构成采用理由。一个需求里往往同时存在枚举型字段、区间型字段和组合型规则,分别用对应方法处理即可。


输入特征 优先方法 判断要点
离散枚举、分段区间、布尔值、状态集合 等价类 类别内处理逻辑一致,可归并代表值
数值范围、日期区间、长度限制、序号 边界值 存在明确上下限或精度要求
多条件组合决定不同动作 决策表 条件之间存在交叉,规则可能遗漏或冲突


各方法解决的目标问题与价值机制


每种方法的价值都体现在用例取舍上:减少哪类冗余,补上哪类遗漏。理解这一点,才能判断投入是否值得。


等价类压缩的是同类输入的重复用例。输入空间大而处理逻辑按类别重复时,逐值枚举会产生大量等价用例,划分类别后每类取代表值,用例数量下降,同时保留对无效类别的覆盖。它的收益来自减少冗余,代价是类别划分本身需要依据。


边界值把注意力集中到临界点及相邻取值。大量缺陷出现在范围端点、空值、最大值附近,边界值用少量用例覆盖这些高发位置,收益来自对临界缺陷的针对性覆盖。它通常叠加在等价类划分出的区间上使用,端点本身就是类别之间的分界。


决策表把条件与动作的对应关系显式写出来。当多个条件交叉时,口头描述容易遗漏组合或出现规则冲突,决策表按条件取值逐列列出应执行的动作,能暴露缺失的规则、互相矛盾的规则以及重复的冗余组合。它的收益来自规则层面的完整性检查,而不只是输入取值覆盖。


三种方法的收益方向不同:等价类减少冗余,边界值补临界遗漏,决策表补组合遗漏。设计时按被测对象的主要风险选择,不必对每个字段都套用全部方法。



适用条件:按输入特征选择方法


面对具体需求时,可以按以下条件逐项判断,再确定组合顺序。


  • 输入为离散枚举、区间分段、布尔值或状态集合时,优先用等价类。先列出有效类别与无效类别,每类选代表值。无效类别要单独覆盖,例如必填项为空、类型不符、超出允许集合。
  • 输入为数值范围、日期区间、长度限制、序号等有序量时,叠加边界值。在等价类划分出的每个区间端点及其相邻取值上设计用例,同时考虑精度与开闭区间差异。
  • 业务规则由多个条件组合决定输出时,使用决策表。先列全条件与动作,再逐列组合,检查是否存在未定义动作的组合。
  • 组合顺序建议:先划分等价类,再补边界值,最后用决策表校验规则覆盖。等价类确定输入空间的骨架,边界值补上临界点,决策表检查条件交叉处是否有规则遗漏。三者顺序并非强制,但按此顺序推进,前面的产出可以直接作为后面的输入。

一个需求中不同字段的输入特征可能不同,按字段分别选择方法,再在用例层面合并,比整体套用一种方法更贴合实际。



投入与前提:采用前需要准备什么


三种方法都需要前置信息支撑,信息不完整时,方法产出的用例质量会直接下降。


  • 等价类需要明确的输入域,以及有效与无效划分的依据。划分依据通常来自需求说明、接口定义或业务规则,缺少依据时类别边界只能靠猜测。
  • 边界值需要准确的取值范围与精度定义,依赖需求文档或接口说明中的上下限、开闭区间、数据类型。范围写错,边界用例随之失效。
  • 决策表需要完整的条件清单与动作清单。条件遗漏会直接导致规则缺失,动作定义不清则无法判断组合结果是否正确。

维护成本同样需要考虑。取值范围、枚举集合或业务规则发生变化后,对应的用例需要同步更新,否则会出现用例与实现脱节。规则变动频繁的需求,维护投入会明显上升,这一点在决定是否全面采用时应提前评估。


用例设计完成后,还需要在测试用例管理中组织、评审与持续维护。ONES 测试管理支持用例的编写、评审与版本维护,设计好的等价类、边界值和决策表用例可以按需求或模块归档,评审时对照条件与动作逐项检查覆盖情况,规则变更后在同一处更新关联用例,减少用例与需求脱节。



暂缓条件:哪些情况下先不用或不必展开


方法服务于覆盖目标,以下情形下完整方法化设计的收益有限,可以先不展开。


  • 输入空间极小且可穷举时,直接枚举比划分更省事。例如只有三个取值的开关字段,逐一验证即可,划分类别反而增加整理成本。
  • 业务规则单一、无条件组合时,决策表的结构成本高于收益。单一条件对应单一动作的场景,用普通用例描述即可表达清楚。
  • 取值范围尚未确定或频繁变动时,边界值用例会快速失效。需求仍在讨论上下限的阶段,先验证主流程,待范围稳定后再补边界用例。
  • 探索性测试或一次性验证场景下,完整方法化设计的投入可能不划算。这类场景以快速发现问题和获取信息为目标,方法化设计适合放在回归或系统化覆盖阶段。

暂缓不等于放弃。当输入结构稳定、需求进入系统化测试阶段时,再补上对应方法的设计,覆盖会更完整。



试点判断:用小范围验证方法是否值得推广


是否在团队内推广某种方法,可以用一个小范围试点来验证,而不是直接全面铺开。


选取一个输入结构典型的需求作为试点对象,最好同时包含枚举字段、区间字段和条件组合规则,这样三种方法都能得到检验。试点前记录原有做法的用例数量、评审耗时和已发现的缺陷类型;试点后按方法重新设计用例,记录同样的指标。


观察点包括:用例数量是否因等价类划分而下降;边界值用例是否发现了此前遗漏的临界问题;决策表是否暴露出规则冲突或未定义组合;评审时对照条件与动作检查是否更高效。这些结果可以对比,但不宜直接换算成缺陷发现率之类的量化承诺,试点样本有限,结论应限定在同类需求范围内。


根据试点结果决定推广方式:如果等价类与边界值在区间型字段上效果明显,可在同类需求中固定使用;如果决策表在规则梳理阶段就帮助发现了遗漏,可将其纳入需求评审环节;如果某类需求试点后收益不明显,保留原有做法即可。推广范围按需求类型逐步扩大,比一次性要求全团队采用更稳妥。



常见问题


等价类划分后,边界值用例还需要单独设计吗?


需要。等价类解决的是类别代表值的问题,边界值解决的是临界点的问题,两者覆盖的风险不同。划分等价类时,区间端点通常被归入某一类别,但端点及其相邻取值恰恰是缺陷高发位置,仅靠类别代表值容易漏掉。实际操作中,可以在等价类划分出的每个区间上,对上下限、开闭区间差异和精度边界单独补用例,这样既保留了类别覆盖,也补上了临界覆盖。


业务规则用决策表梳理后,还需要再写等价类用例吗?


通常需要,两者处理的对象不同。决策表梳理的是条件组合与动作的对应关系,解决规则层面的完整性;等价类处理的是单个条件字段的取值覆盖,例如某个条件字段本身是枚举或区间,仍需按类别选代表值。比较稳妥的做法是先用决策表确认规则组合没有遗漏,再对每个条件字段用等价类和边界值补充取值层面的用例,两层覆盖合起来才完整。


需求中的取值范围还没最终确定,边界值用例应该怎么处理?


范围未定阶段,边界值用例容易随需求调整而失效,可以先按当前已知的上下限设计少量关键边界用例,并在用例中标注所依据的范围来源,便于后续同步。同时把主要精力放在主流程和等价类划分上,待范围稳定后再系统补齐端点与相邻取值。若范围变动频繁,建议在需求评审时先确认取值范围与精度定义,再集中补边界用例,减少反复修改的成本。


三种方法都用在同一个需求上,会不会造成用例重复?


存在重复的可能,需要在用例组织时做去重。等价类与边界值在区间端点处容易产生重叠用例,决策表的某些条件列也可能与单字段用例重复。处理方式是按字段和方法标注用例来源,评审时对照检查同一输入取值是否被多次覆盖,保留覆盖目标最明确的那条。重复本身不一定是问题,关键是每条用例都能说清它覆盖的是类别、临界点还是规则组合,说不清来源的用例可以合并或删除。


团队刚开始推行这些方法,从哪一种入手比较合适?


可以从等价类入手,它的概念门槛低,对枚举、分段区间、布尔值等常见输入都能直接应用,产出的用例数量变化也容易观察。等价类稳定后,再对区间型字段补边界值,最后在条件组合复杂的业务规则上引入决策表。试点时选一个输入结构典型的需求,记录采用前后的用例数量、评审耗时和发现的缺陷类型,用结果判断是否在同类需求中推广,避免一次性要求全团队采用。

animation hi
animation dot left
animation dot right
animation dot right bottom
avatar circle
WeChat QR Code
长按将二维码保存为图片

售前电话

400-188-1518

文章配图预览