判定表驱动法
基本思路:对多个条件的组合进行分析,从而设计测试用例来覆盖各种组合。
判定表:是分析和表达多逻辑条件下执行不同操作的情况下的工具。
判定表5个概念:
判定表的4个组成部分:
建立判定表的步骤:
1.
2.
3.
4.
例子:打印机是否能打印出来正确的内容,有多个因素影响,包括驱动程序、纸张、墨粉等。(为了简化问题,不考虑中途断电、卡纸等因素的影响)
解:
条件桩:
(1)
(2)
(3)
动作桩:(动作桩有两种:打印内容和不同的错误提示,并且假定:优先警告缺纸,然后警告没有墨粉,最有警告驱动程序不对。)
(1)
(2)
(3)
(4)
初始化的判定表
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
条件 | 驱动程序是否正确? | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
是否有纸张? | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | |
是否有墨粉? | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | |
动作 | 打印内容 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
提示驱动程序不对 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
提示没有纸张 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | |
提示没有墨粉 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
注:
输入条件项,即上述每个条件的值分别取“是(Y)”和“否(N)”,可以简化表示为1和0。
优化的判定表
序号 | 1 | 2 | 4/6 | 3/5/7/8 | |
条件 | 驱动程序是否正确? | 1 | 0 | 1 | — |
是否有纸张? | 1 | 1 | 1 | 0 | |
是否有墨粉? | 1 | 1 | 0 | — | |
动作 | 打印内容 | 1 | 0 | 0 | 0 |
提示驱动程序不对 | 0 | 1 | 0 | 0 | |
提示没有纸张 | 0 | 0 | 0 | 1 | |
提示没有墨粉 | 0 | 0 | 1 | 0 |
注:
如果动作结果一样,对于某些因素取“1”或“0”没有影响,即以“—”表示,并合并。
优化的判定表就可以设计测试用例,每一列代表一条测试用例。
判定表的优/缺点:
优点:把复杂的问题按各种可能的情况一一列举,简明而易于理解,也避免遗漏。
缺点:不能表达重复执行的动作,如循环结构。
适合使用判定表设计测试用例的条件:
1.
2.
3.
4.
5.
注:对于某些不满足如上条件的判定表,同样也可以应用它来设计测试用例,只不过还要增加其他的测试用例。