软件评测师 · 黑盒测试 · 用例设计

判定表和因果图怎么区分?

黑盒测试方法里,判定表和因果图经常被放在一起考。它们不是完全割裂的两种东西:因果图更像把输入条件和输出结果之间的逻辑关系画清楚,判定表则把条件组合和动作整理成规则表,方便生成测试用例。

软件评测师专题 软考题库编辑部 持续更新

先看题干有没有“多个条件共同决定结果”

判定表法最适合处理多条件组合。比如是否会员、订单金额是否达标、优惠券是否有效、库存是否充足,这几个条件共同决定能不能下单、能不能优惠、是否需要人工审核。这里如果只用等价类或边界值,很容易漏掉某些组合。

题干如果说“多个条件组合”“不同规则对应不同动作”“希望系统覆盖各种组合”,通常优先想到判定表。它不是简单测一个输入框,而是把业务规则摊开,看每种组合对应什么动作。

方法更关注什么题干信号
判定表条件组合与动作规则多个条件、不同动作、规则覆盖
因果图输入条件之间的逻辑关系原因、结果、约束、逻辑关系
等价类输入域分类有效类、无效类、代表值
边界值范围边界附近上限、下限、最大、最小

因果图先画关系,判定表再落到用例

因果图法的优势在于分析输入条件和输出结果之间的逻辑关系,尤其是条件之间存在“与、或、非、互斥、唯一、包含”等约束时,先画因果图会比较清楚。它能帮助你发现哪些条件不能同时成立,哪些条件必须搭配出现。

判定表则更像落地工具,把条件桩、动作桩和规则列出来。很多实际讲法会先用因果图整理逻辑,再把它转换成判定表,最后根据每一列规则设计测试用例。所以两者不是敌人,而是前后衔接。

老师式小例子

登录系统:账号正确、密码正确、账号未锁定,三个条件共同决定是否允许登录。

如果题目问这些条件之间有什么逻辑约束,可以想到因果图。

如果题目问如何系统覆盖所有条件组合并列出动作,更像判定表。

不要把判定表当成边界值分析

很多同学看到输入条件就习惯性想边界值,但判定表关注的不是“7、8、9、15、16、17”这种边界点,而是条件之间组合后会触发什么业务动作。比如密码长度是边界值,账号状态加登录次数加验证码规则,更像判定表。

边界值可以和判定表结合使用,但它解决的是另一个问题。先用判定表确定规则组合,再在某些输入条件里选边界数据,这是更完整的测试设计思路。考试选择题通常只问首选方法,题干强调组合就不要跑偏。

题干说法优先方法判断理由
密码长度 8 到 16 位边界值分析重点在边界附近
年龄分合法、过小、过大、空值等价类划分重点在输入分类
会员等级、金额、优惠券共同决定折扣判定表重点在条件组合
条件之间有互斥和约束关系因果图重点在因果逻辑和约束

场景题的判断顺序

软件评测师题目经常把几种黑盒方法放在一起。建议先问:是否有明确范围边界?有,先看边界值。是否能把输入分成有效和无效类别?有,先看等价类。是否多个条件组合决定动作?有,先看判定表。是否强调原因、结果和约束关系?再考虑因果图。

真正做项目时,这些方法可以组合使用;但考试选择题往往要求你找最贴合题干的一种。读题时不要只盯方法名字,要看出题人给了哪些信号词。这个习惯,比背一堆定义更能稳定拿分。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。