前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判定表

判定表

原创
作者头像
Heaven645
发布2024-09-26 15:44:25
781
发布2024-09-26 15:44:25

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)

0

0

0

条件项(规则2)

0

0

1

条件项(规则3)

0

1

0

条件项(规则4)

0

1

1

条件项(规则5)

1

0

0

条件项(规则6)

1

0

1

条件项(规则7)

1

1

0

条件项(规则8)

1

1

1

3.2 动作结果

动作结果依赖于条件的组合。在判定表的结构中,动作项展示了在特定条件组合下应采取的具体操作。

例如,在上面的判定表中,条件1为1,条件2为0,条件3为1时,可能的操作是执行某个动作A。

3.3 判定表简化

当条件项过多时,判定表可能会变得非常复杂且难以管理。在某些情况下,可以通过合并冗余规则使用条件覆盖法来简化判定表。

例如,如果两个规则的条件组合不同,但动作项相同,则这两个规则可以合并。

【示例】

简化前

条件1

条件2

动作A

0

0

X

0

1

X

简化后

条件1

条件2

动作A

0

X


4 判定表的使用场景

4.1 软件测试

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

示例

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

4.2 业务规则引擎

在一些复杂的业务逻辑中,如银行贷款审批、保险理赔等场景中,判定表可以帮助制定复杂的业务规则。

通过列出不同的客户条件(年龄、收入、信用评分等)和操作(批准贷款、拒绝贷款),系统能够自动作出判断。


5 案例分析

某促销活动需求:

1.指定时间段内(符合开始时间和结束时间)

2.消费金额满1000元

如果上述条件同时满足,则可以享受9折优惠,否则不可以享受

请验证该促销活动规则的正确性。

判定表如下:

测试用例如下:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 基本概念
    • 1.1 作用
      • 1.2 优点
      • 2 基本组成
        • 2.1 条件桩
          • 2.2 动作桩
            • 2.3 条件项
              • 2.4 动作项
              • 3 判定表的结构与规则
                • 3.1 规则的生成
                  • 3.2 动作结果
                    • 3.3 判定表简化
                    • 4 判定表的使用场景
                      • 4.1 软件测试
                        • 4.2 业务规则引擎
                        • 5 案例分析
                        相关产品与服务
                        验证码
                        腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档