黑盒测试-判定表驱动法与错误推测法-三角形问题
决策表法(判定表驱动法)
是分析和表达多逻辑条件下执行不同操作的情况的工具,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。
条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关紧要。
动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
条件项:列出针对条件的取值和在所有可能情况下的真假值。
具体项:列出在条件项的各种取值情况下应该采取的动作。
生成条件表的规则:
- 规则:任何一个条件组合的特定取值及其要执行的相应操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项会有多少列。
- 化简:就是把有两条或多条具有相同的动作、且其条件项之间存在着极为相似的关系的规则合并。
建立判定表的步骤如下:
- 确定规则的个数,假如有 n 个条件,每个条件有 2 个取值(O, 1),故有n种规则;
- 列出所有的条件项和动作项;
- 填入条件取值;
- 填人集体动作,得到初始判定表;
- 简化,合并相似规则(相同动作)。
错误推测法
依靠经验和直觉猜测程序中可能存在的各种错误,从而有针对性地编写检查这些故障的测试用例。
三角形问题的需求规格描述如下:
输入三个正整数 a、b、c,分别作为三角形的三条边,通过程序判断三条边是否能构成三角形?如果能构成三角形,判断直角三角形的类型(直角三角形、非直角三角形、非三角形)。 请用基于判定表的方法设计测试用例。
针对此需求:
- 画出简化后的决策表;
- 用错误推测法补充测试用例;
- 用所有测试用例对程序进行测试;
- 实验结果要求给出两套测试用例集测试效果比较。
- 三角形:列出所有的条件桩和动作桩
条件桩:
C1:a<b+c
C2:b<a+c
C3:c<a+b
C4:a2+b2=c2
C5:a2+c2=b2
C6:c2+b2=a2
动作桩:
A1:非三角形
A2:直角三角形
A3:一般三角形
A4:不可能
判定表
- 测试用例表
用例编号 | 输入数据 | 预期输出 | 实际输出 | 备注 |
---|---|---|---|---|
1 | 6,3,2 | 非三角形 | 非三角形 | |
2 | 3,6,2 | 非三角形 | 非三角形 | |
3 | 3,2,6 | 非三角形 | 非三角形 | |
4 | 3,4,5 | 直角三角形 | 一般三角形 | 有误 |
5 | 3,5,4 | 直角三角形 | 一般三角形 | 有误 |
6 | 5,4,3 | 直角三角形 | 一般三角形 | 有误 |
7 | 6,7,8 | 一般三角形 | 一般三角形 | |
8 | ?,?,? | 不可能 | ||
9 | 0,0,0 | 非三角形 | 越界 | 错误推测法 |
10 | -3,5,4 | 非三角形 | 越界 | 错误推测法 |
测试结果分析 对直角三角形的情况没有做判断。