前言
有关软件测试中判定表的学习笔记,特此记录
判定表
定义
判定表的定义:(摘自百度百科)
判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来
判定表元素
- 条件桩:列出问题的所有条件(可能会出现的问题)
- 条件项:列出所列条件的具体赋值(可能出现的问题的组合)
- 动作桩:列出可能针对问题所采取的操作(问题所对应的操作)
- 动作项:列出在条件项(各种赋值)组合情况下应该采取的动作(不同组合的问题所应当执行的操作)
规则和简化
规则:由不同的条件导致不同的动作就成为规则,在判定表中体现为不同的条件项得到不同的动作项。在判定表中贯穿条件项和动作项的一列就是一条规则。
化简:因为初始化判定表包括条件的所有组合,这时有些组合可能是不能实现的,有些动作可能是由一些相似的条件组成的,这时就需要按照等价类划分的原则进行化简。
步骤
- 确定条件桩
- 确定动作桩
- 将条件桩进行组合
- 确定每个条件桩所对应的动作桩
- 设计测试用例
示例
打印机与打印文件
条件桩:
- A1:驱动程序是否正确?
- A2:是否有纸张
- A3:是否有墨
动作桩
- B1:打印内容
- B2:提示驱动程序出错
- B3:提示没有纸
- B4:提示没有墨
因为有3个条件桩,所以应有列,(1为是,0为否)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
问题 | A1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
问题 | A2 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
问题 | A3 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
建议 | B1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
建议 | B2 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
建议 | B3 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
建议 | B4 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
继而再进行简化(优化)
1 | 2 | 4/6 | 3/5/7/8 | ||
问题 | A1 | 1 | 0 | - | - |
问题 | A2 | 1 | 1 | 1 | 0 |
问题 | A3 | 1 | 1 | 0 | - |
建议 | B1 | 1 | 0 | 0 | 0 |
建议 | B2 | 0 | 1 | 0 | 0 |
建议 | B3 | 0 | 0 | 0 | 1 |
建议 | B4 | 0 | 0 | 1 | 0 |
解释
以列名为1,2,4/6所在的列为例:
- 如果驱动程序正确(A1),有纸张(A2),有墨(A3) 就能进行打印(B1)
- 如果驱动程序不正确(A1),有纸张(A2),有墨(A3)就会提示驱动程序错误
- 无论驱动程序是否正确(A1),有纸张(A2),没有墨(A3)就会提示没有墨