1.6 判定表

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅!


1 基本概念

判定表是一种以表格形式表达多条件逻辑判断的工具,常用于处理复杂的多条件逻辑问题。
通过将不同条件与操作的关系以表格形式系统化,判定表能够简化复杂的决策逻辑,从而使得逻辑判断更为清晰和高效。

1.1 作用

判定表的核心作用在于:设计和验证多条件之间有约束规则的测试点
在处理多个条件同时影响某一决策的场景中,判定表可以确保所有可能的组合情况都被考虑到,避免遗漏某些规则。此外,它还能够帮助测试人员设计测试用例,确保软件系统的不同条件组合下的行为符合预期。

1.2 优点

  • 系统性:通过列举所有可能的条件组合,判定表能够覆盖到所有边界情况,确保不遗漏任何一种逻辑分支。
  • 可视化:使用表格将条件与对应的操作清晰地展示出来,便于理解和沟通。
  • 简化复杂逻辑:当面对复杂的逻辑决策时,判定表将所有情况以直观方式展现,从而简化了决策过程。

2 基本组成

判定表由多个部分组成,这些部分协同工作,用于描述条件、操作及其相应的结果。

2.1 条件桩

条件桩列出判定表中所有的条件,它们描述了决策过程中可能影响结果的各个要素。每个条件的次序并不重要,但需要确保所有条件均已列出。

【示例】

  • 用户是否已登录?
  • 购物车是否为空?
  • 支付方式是否有效?

2.2 动作桩

动作桩列出根据条件所能采取的操作。在不同的条件组合下,可能会执行不同的操作。这些操作可以是多个,表示系统在不同情况下会作出的决策。

【示例】

  • 显示登录页面
  • 跳转至支付界面
  • 提示购物车为空

2.3 条件项

条件项是对条件桩中的每个条件的取值进行列举。一般情况下,条件的取值是二元的(如0表示假,1表示真),但在某些情况下,也可能是多元的(如多个状态)。条件项列出在所有可能情况下条件的真假取值。

【示例】

  • 用户是否已登录:[0, 1](0表示未登录,1表示已登录)
  • 购物车是否为空:[0, 1](0表示非空,1表示为空)

2.4 动作项

动作项是根据不同条件组合推导出来的动作结果。当所有条件组合列举完成后,根据这些组合推导出不同情况下应采取的操作。

【示例】

  • 用户已登录且购物车不为空,跳转至支付界面
  • 用户未登录,显示登录页面

3 判定表的结构与规则

判定表通过条件项和动作项的组合来描述所有可能的规则。判定表中的每一列,即贯穿条件项和动作项的一组组合,代表一条规则。规则描述了在特定条件组合下应执行的操作。

3.1 规则的生成

假设有n个条件,且每个条件只有两种取值(0或1),那么所有可能的条件组合情况总共有2^n种规则
例如,如果有3个条件,那么所有可能的组合就有2^3 = 8种。

【示例】
3个条件的判定表:

条件桩条件1条件2条件3
条件项(规则1)000
条件项(规则2)001
条件项(规则3)010
条件项(规则4)011
条件项(规则5)100
条件项(规则6)101
条件项(规则7)110
条件项(规则8)111

3.2 动作结果

动作结果依赖于条件的组合。在判定表的结构中,动作项展示了在特定条件组合下应采取的具体操作。
例如,在上面的判定表中,条件1为1,条件2为0,条件3为1时,可能的操作是执行某个动作A。

3.3 判定表简化

当条件项过多时,判定表可能会变得非常复杂且难以管理。在某些情况下,可以通过合并冗余规则使用条件覆盖法来简化判定表。
例如,如果两个规则的条件组合不同,但动作项相同,则这两个规则可以合并。

【示例】
简化前

条件1条件2动作A
00X
01X

简化后

条件1条件2动作A
0-X

4 判定表的使用场景

4.1 软件测试

判定表最常见的应用领域之一是软件测试,特别是在测试用例设计中,判定表可以帮助测试人员系统地生成测试用例,确保所有可能的输入组合都得到充分测试。

示例
在设计登录系统的测试用例时,可以使用判定表列出不同的输入组合(用户名、密码、验证码等)及对应的预期结果,从而确保登录功能的正确性。

4.2 业务规则引擎

在一些复杂的业务逻辑中,如银行贷款审批、保险理赔等场景中,判定表可以帮助制定复杂的业务规则。
通过列出不同的客户条件(年龄、收入、信用评分等)和操作(批准贷款、拒绝贷款),系统能够自动作出判断。


5 案例分析

某促销活动需求:
1.指定时间段内(符合开始时间和结束时间)
2.消费金额满1000元
如果上述条件同时满足,则可以享受9折优惠,否则不可以享受
请验证该促销活动规则的正确性。

判定表如下:
在这里插入图片描述
测试用例如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值