知识点
决策表法
- 决策表概念 :一种分析多逻辑条件下不同操作的工具。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
- 优点:能够全面列举所有可能情况,避免遗漏。针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。
- 构成 :
- 条件桩:列出所有条件。
- 动作桩:列出可能的操作。
- 条件项:条件的具体取值。即对每个条件可以取真值和假值。
- 动作项:条件组合下应采取的动作。
- 规则:特定条件组合及其相应操作。在决策表中贯穿条件项和动作项的一列就是一条规则。
决策表法实例
-
设备维修程序:根据条件组合设计测试用例。
- 以 "设备维修"为例来说明如何制定决策表。 (1)首先,列出所有的条件桩和动作桩, 本例的条件桩有3个,分别为: 机器功率是否大于100马力? 维修记录是否完整? 运行时间是否超过6年? 本例的动作桩有两个,分别为: 优先维修 正常维修 (2)接着确定条件项,即上述每个条件的值分别取"是(Y)"和"否(N)"。根据条件项的组合确定其对应的活动,如表所示。
|--------|-----------|-------|-------|-------|-------|-------|-------|-------|-------|
| 序 号 || 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 条件 | 功率大于100马力 | Y | Y | Y | Y | N | N | N | N |
| 条件 | 维修记录不全 | Y | Y | N | N | Y | Y | N | N |
| 条件 | 运行时间超过6年 | Y | N | Y | N | Y | N | Y | N |
| 动作 | 优先维修 | √ | √ | √ | √ | √ | √ | √ | |
| 动作 | 正常维修 | | | | | | | | √ |
根据表6-23所示的4种组合可设计出以下4个测试用例: 功率大于100马力(如,200马力),优先维修。 功率不大于100马力(如,99马力),维修记录不全,优先维修。 功率不大于100马力(如,99马力),维修记录全且运行时间超过6年(如,8年),优先维修。 功率不大于100马力(如,99马力),维修记录全且运行时间不超过6年(如,3年),正常维修。
|--------|-----------|-------|-------|-------|-------|
| 序 号 || 1 | 5 | 7 | 8 |
| 条件 | 功率大于100马力 | Y | N | N | N |
| 条件 | 维修记录不全 | --- | Y | N | N |
| 条件 | 运行时间超过6年 | --- | --- | Y | N |
| 动作 | 优先维修 | √ | √ | √ | |
| 动作 | 正常维修 | | | | √ |
决策表构建步骤
- 合并具有相同动作的规则,简化决策表。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。 合并后的条件项用符号"-"表示,说明执行的动作与该条件的取值无关,称为无关条件。
- 确定规则个数
- 列出所有的条件桩和动作桩
- 填入动作项,得到初始决策表
- 简化决策表,合并相似规则
因果图测试法
- 原因:程序输入条件的组合。在一个功能或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或组合关系,并且功能模块的输出会依赖于输入的条件。 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
- 结果:程序的输出或状态改变。
- 原理:图解法分析输入组合,设计测试用例。是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
- 4种关系 :
- 恒等:相同取值。
- 非:相反取值。
- 或:任一为真。
- 与:全部为真。
因果图约束
在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为"约束"或"制约"。
- E约束 :最多一个条件为真(异或)。
- I约束 :至少一个条件为真(或)。
- O约束 :只有一个条件为真(唯一)。
- R约束:条件之间存在依赖(要求)。
- M约束:输出条件的强制关系。
因果图测试案例
- 公交卡纸币充值系统:分析输入条件、输出结果和制约关系,设计测试用例。
- 有如下公交卡纸币充值系统
- E约束(异):a和b中最多只有一个为1,即a和b不能同时 为1。(如3个a、b、c则a、b、c最多只有一个1,或全0)。约束可以添加在输入方,也可以添加在输出方。
- I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。约束可以添加在输入方,也可以添加在输出方。
- O约束(唯一):a和b必须有一个且仅有一个为1。
- R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。约束可以添加在输入方,也可以添加在输出方。
- M约束(强制):若结果a为0,则结果b强制为1;若a=1,b不确定。且只有输出条件能够有强制约束。
- 公交一卡通自动充值系统,其需求描述如下:
- 系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。
- 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功。
- 若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元。
- 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元。
- 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功。
- 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误。
- 若选择充值按钮后不输入纸币,提示错误。
- 输入条件(原因)为: ① 投币50元 ② 投币100元 ③ 选择充值50元 ④ 选择充值100元 输出(结果)有: (a)完成充值、退卡 (b)提示充值成功 (c)找零 (d)提示错误
- 明确所有条件之间的制约关系以及组合关系 条件之间的制约关系以及组合关系如图所示。
- 画出因果图 为了描述得更清楚,这里把每种情况单独画一个因果图出来。 组合情况有: 条件①和条件③输出a和b的组合 投币50元,充值50元输出完成充值、退卡,提示充值成功
- 条件①和条件④输出c和d的组合 投币50元,充值100元输出找零、提示错误的结果。
- 条件②和条件③输出a、b、c的组合 投币100元,充值50元输出找零、完成充值、提示充值成功的结果
- 条件②和条件④输出a和b的组合 投币100元,充值100元输出完成充值、退卡,提示充值成功的结果
- 条件①、②、③、④均可以单独出现,其因果图如图所示。
- (4)根据因果图,写出判定表 根据上面的因果图,写出对应的判定表。
- (5)根据判定表,写出测试用例 根据上面的判定图,写出对应的测试用例
|----|-----------------|--------------------------|
| 编号 | 用例说明 | 预期结果 |
| 1 | 投币50元 选择充值50元 | 正确充值50元,提示充值成功后退卡 |
| 2 | 投币50元 选择充值100元 | 系统提示错误并退回50元 |
| 3 | 投币100元 选择充值50元 | 正确充值50元,提示充值成功后退卡,并找回50元 |
| 4 | 投币100元 选择充值100元 | 正确充值100元,提示充值成功后退卡 |
| 5 | 投币50元 | 系统提示错误并退回50元 |
| 6 | 投币100元 | 系统提示错误并退回100元 |
| 7 | 选择充值50元 | 系统提示错误 |
| 8 | 选择充值100元 | 系统提示错误 |
因果图测试流程
- 分析确定输入条件和输出结果,绘制因果图。
- 将因果图转换为判定表。
- 为判定表中的每一列设计测试用例。
一、实验目的:
1.掌握黑盒测试技术的概念
2.掌握运用因果图法、判定表法设计测试用例
二 实验环境
1、Windows操作系统计算机;
三 实验准备
1、理解黑盒测试的定义;
2、理解因果图、决策表原理;
四、实验内容及过程
1、阅读下面需求规格说明,运用相应的黑盒测试技术完成测试用例设计。
(1)某学生成绩管理系统,要求对"平均成绩在90分以上,且没有不及格科目的学生,或班级成绩排名在前5的学生,在程序中将学生的姓名用红色标识",请建立该场景的判定表。
1)确定规则的个数
- 规则1: 平均成绩 > 90 且 没有不及格科目。
- 规则2: 班级排名 <= 5。
2)列出所有条件桩和动作桩
|----|---|
| 所有条件项和动作项 ||
| 条件 | |
| 条件 | |
| 条件 | |
| 动作 | |
| 动作 | |
|----|--------------|
| 所有条件项和动作项 ||
| 条件 | 班级排名是否 ≤ 5 |
| 条件 | 平均成绩是否 > 90 |
| 条件 | 是否有不及格科目 |
| 动作 | 姓名标红 |
| 动作 | 无动作 |
3)填入条件项、动作项,得到初始判定表
初始判定表
|----|--------------|---|---|---|---|---|---|---|---|
| || 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 条件 | 班级排名是否 ≤ 5 | Y | Y | Y | Y | N | N | N | N |
| 条件 | 平均成绩是否 > 90 | Y | Y | N | N | Y | Y | N | N |
| 条件 | 是否有不及格科目 | Y | N | Y | N | Y | N | Y | N |
| 动作 | 姓名标红 | 1 | 1 | 1 | 1 | 1 | | | |
| 动作 | 无动作 | | | | | | 1 | 1 | 1 |
4)简化判定表,合并相似规则
|---|---|---|---|---|---|---|
| || | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
|----|--------------|---|---|---|---|
| || 1 | 5 | 7 | 8 |
| 条件 | 班级排名是否 ≤ 5 | Y | N | N | N |
| 条件 | 平均成绩是否 > 90 | - | Y | N | N |
| 条件 | 是否有不及格科目 | - | - | Y | N |
| 动作 | 姓名标红 | 1 | 1 | | |
| 动作 | 无动作 | | | 1 | 1 |
(2)有一个自动饮料售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入2.5元硬币,按下"橙汁"或"啤酒"按钮,相应的饮料就送出。
若投入3元硬币, 同样按下"橙汁"或"啤酒"按钮,则在送出饮料的同时退还5角硬币。"
|----|----|
| 原因 | 结果 |
| | |
| | |
| | |
| | |
请绘制出因果图和判定表,并给出相应的测试用例
- 原因:投入硬币(2.5元,3元),按钮选择(橙汁,啤酒)。
- 结果:送出饮料,可能伴随退还5角硬币。
投入硬币 | 按钮选择 | 结果 |
---|---|---|
2.5元 | 橙汁 | 送出橙汁 |
2.5元 | 啤酒 | 送出啤酒 |
3元 | 橙汁 | 送出橙汁,退还5角 |
3元 | 啤酒 | 送出啤酒,退还5角 |
测试用例ID | 测试描述 | 投入金额 | 选择饮料 | 预期结果 | 预期动作或状态 |
---|---|---|---|---|---|
TC001 | 投入2.5元选择橙汁 | 2.5元 | 橙汁 | 送出橙汁,不退款 | 饮料送出,无找零 |
TC002 | 投入2.5元选择啤酒 | 2.5元 | 啤酒 | 送出啤酒,不退款 | 饮料送出,无找零 |
TC003 | 投入3元选择橙汁并期望退款 | 3元 | 橙汁 | 送出橙汁,退还0.5元 | 饮料送出,找零0.5元 |
TC004 | 投入3元选择啤酒并期望退款 | 3元 | 啤酒 | 送出啤酒,退还0.5元 | 饮料送出,找零0.5元 |
TC005 | 投入少于2.5元的边界值测试 | 2元 | 任意 | 系统拒绝服务,不送出饮料 | 提示错误信息,无饮料送出 |
TC006 | 投入超过3元的找零逻辑测试 | 5元 | 任意 | 送出饮料,退还正确的找零金额 | 饮料送出,找零2元 |
TC007 | 投入非支持金额(如1元) | 1元 | 任意 | 系统拒绝服务,不送出饮料 | 提示错误信息,无饮料送出 |
测试用例说明:
- 测试用例ID: 测试用例的唯一标识符。
- 测试描述: 简要描述测试用例的目的或测试场景。
- 投入金额: 用户投入的金额。
- 选择饮料: 用户选择的饮料类型。
- 预期结果: 根据因果图和判定表,预期的系统响应或结果。
- 预期动作或状态: 预期的系统动作或状态变化,例如饮料送出、找零、错误提示等。
五、实验总结
1.请列举你所学过的黑盒测试方法有哪些?
- 等价类划分
- 边界值分析
- 组合测试用例设计
- 正交试验法
- 场景法
- 因果图法
- 判定表法
2.面对不同的测试系统,该如何选择黑盒测试方法?
- 根据系统的特点和需求选择合适的方法。
- 对于复杂的业务逻辑,可以使用因果图法或判定表法。
- 对于简单的输入验证,可以使用等价类划分或边界值分析。
- 根据测试时间和资源,选择最有效的测试方法组合。