软件测试—判定表法

判定表展示的是输入条件与输出结果的对应关系。在软件发展的初期,判定表就已经被用作编写程序的辅助工具了。它可以把复杂的逻辑关系和多种条件组合的情况表达的既具体又明确,针对不同的逻辑条件组合值分别执行不同的操作。

在软件测试方面,等价类划分法和边界值分析法都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。而因果图法和判定表法适合于描述对于多种条件的组合,相应产生多个动作的情况。由于因果图最终得到的是判定表,所以我们先介绍用判定表法设计测试用例。

判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的工具。在所有的黑盒测试方法中,基于判定表(也称决策表)的测试是最为严格、最具有逻辑性的测试方法。

判定表的概念:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。

判定表的优点:判定表充分考虑了输入域之间的组合情况,每条规则覆盖了多条输入条件,考虑输入的约束关系,降低了漏测的风险。同时利用判定表可推断出需求规格本身的逻辑性,反向证明了需求的正确。

判定表的缺点:当输入项过多时,规则数以2的n次方剧增,判定表会非常庞大,采用判定表合并时会造成逻辑缺失,业务混乱错误的情况。

在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。

判定表通常由4部分组成(如下图):
条件桩—列出问题的所有条件,通常认为列出得条件的次序无关紧要。
条件项—针对条件桩给出的条件列出所有可能的取值,在所有可能情况下的真假值。
动作桩—列出问题规定的可能采取的操作,这些操作的排列顺序没有约束。
动作项—指出在条件项的各组取值情况下应采取的动作。

建立判定表的步骤:
(1) 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故有2n(2的n次方)种规则。
(2) 列出所有的条件桩和动作桩。
(3) 填入条件项。
(4) 填入动作项,得到初始判定表。
(5) 简化判定表,合并相似规则(相同动作)。

PS:若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。

案例:某厂工资发放
描述、分析:
工资分为年薪制a1,月薪制a2;
错误程度分为普通a3,严重a4;
工资为a1的员工犯普通错误的扣工资2%(b1),犯严重错误扣工资4%(b2);
工资为a2的员工犯普通错误的扣工资4%(b3),犯严重错误扣工资8%(b4);
其中,a1和a2为互斥;b1,b2和b3,b4是互斥;a3和a4可以同时具备。


判定表的应用:
判定表测试法适用于具有以下特征的应用程序: if-then-else逻辑突出;输入变量之间存在逻辑关系;涉及输入变量子集的计算;输入与输出之间存在因果关系。

适用使用判定表设计测试用例的条件:
1、规格说明以判定表形式给出,或较容易转换为判定表。
2、条件的排列顺序不会也不应影响执行的操作。
3、规则的排列顺序不会也不应影响执行的操作。
4、当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
5、如果某一规则的条件要执行多个操作,这些操作的执行顺序无关紧要。
 

  • 8
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判定表(Decision Table)是一种用于设计测试用例的方,它通过列出不同的条件和可能的结果来捕捉和表示系统的行为规则。以下是使用判定表设计用例的一般步骤: 1. 确定条件:首先,确定系统的各种条件,这些条件可能是输入参数、状态、约束或其他相关因素。这些条件应该能够完整地描述系统的各个方面。 2. 列出可能结果:列举系统可能的结果或行为。这些结果应该覆盖系统所有可能的输出或状态。 3. 创建判定表:将条件和结果组合成判定表判定表是一个二维表格,其中行表示不同的条件组合,列表示不同的结果。每个单元格中记录了对应条件组合下的结果。 4. 填充判定表:根据系统的规则和逻辑,填充判定表中的单元格。根据条件的取值和组合情况,确定对应结果的取值。 5. 生成测试用例:根据填充后的判定表,生成测试用例。每个测试用例对应一个或多个判定表中的单元格,它们覆盖了判定表中不同的条件组合和结果。 6. 执行测试用例:根据生成的测试用例,执行相应的测试来验证系统的行为是否符合预期。可以根据需要进行测试结果的验证、记录和修复。 判定表通过将条件和结果进行组合,可以帮助测试人员捕捉系统的各种行为规则,并生成全面而有效的测试用例。它适用于复杂的系统和多条件多结果的情况,可以提高测试覆盖率和测试效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值