本章节主要讲解“软件测试—判定表测试用例设计方法”的内容,判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。判定表通常由四部分组成,如图8-14 所示。
图8-14 判定表组成部分
(1)条件桩:列出系统所有输入,列出的输入次序没有影响。
(2)动作桩:列出系统可能采取的操作,这些操作的排列顺序没有约束。
(3)条件项:列出针对它左列输入条件的取值,在所有可能情况下的真假值。
(4)动作项:列出在输入项的各种取值情况下应该采取的动作。
动作项和条件项指出了在条件项的各种取值情况下应该采取的动作,在判定表中贯穿条件项和动作项的一列就是一条规则,可以针对每个合法输入组合的规则设计用例进行测试。
判定表测试用例设计方法的步骤如下:
(1)确定规则的个数。
根据输入的条件数据计算出规则的个数,如果有N 个条件,那么规则一共有2N 个,如N 为3时,规则数为23=8 个。
(2)列出所有的条件桩和动作桩。
条件桩是影响结果的条件,动作桩是由于所有条件组合后可能产生的结果。
(3)填入条件项和动作项。
对各条件项进行标识,一般使用1 和0 来标识,当该条件选中时使用1 来标识,当条件不选中时使用0 来标识。需要将条件项中所有条件组合的情况标识出来,根据条件的情况来确定动作项,对动作项进行标识。
(4)简化、合并相似规则。
简化判定表是将相似规则(即表中的列)进行合并,以减少测试用例,当然它是以牺牲测试用例充分性为代价的。
简化的过程为,首先找到判定表中输出完全相同的两列,观察它们的输入是否相似。例如只有一个输入不同时,说明不管该输入取何值,输出都是一样的。也就是说,该输入对输出是无影响的,因此可以将这两列合并为一列,简化、合并相似规则示例图如图8-15 所示。
图8-15 简化、合并相似规则示例图
(5)将每条规则转化为用例。
简化、合并后的判定表中的每一列可以规划为一个测试用例。
【实例】将中国象棋中走马规则的因果图转化为判定表,见表8-10 和表8-11。
表8-10 判定表1
表8-11 判定表2
考虑到只要是在棋盘外,其他条件无法取值,结果就是不能移动。所以条件1 可以单独考虑成一个用例,其他条件一起做因果图和判定表。即1、6、11、16 可以合并成一个用例,就是在落点是棋盘外的情况下,结果直接为不能移动,不需要跟其他条件放在一起判断。这样就只剩下17 个测试用例。如果落点不构成“日”字,也就没有所谓的“绊马腿”判断,所以当条件2 为0 时,条件1 不必取值,这样6、7、8、9 和14、15、16、17 又能合并。合并后的判定表见表8-12。
表8-12 简化、合并后的判定表
使用判定表设计测试用例存在如下优点:
(1)充分考虑了输入条件间的组合,避免遗漏。
(2)设计过程中对输入条件间的约束关系进行分析,避免无效用例的出现,提高测试用例的有效性。
(3)设计时同时输出每个测试项目的预期结果。
使用判定表设计测试用例存在如下缺点:
(1)当被测试特性输入较多时,判定表会非常庞大。
(2)输入条件之间的约束不能有效区分当前的组合是否合理,会导致产生一些不需要的组合条件。
(3)规则合并过程中存在可能漏测的风险,虽然某个输入条件在输出接口上是无关的,但是在软件设计上,内部针对这个条件采取了不同的程序分支。
本章节关于“软件测试—判定表测试用例设计方法”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。