实验03 黑盒测试方法(因果图、决策表)

知识点

决策表法
  • 决策表概念 :一种分析多逻辑条件下不同操作的工具。在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
  • 优点:能够全面列举所有可能情况,避免遗漏。针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。
  • 构成
    • 条件桩:列出所有条件。
    • 动作桩:列出可能的操作。
    • 条件项:条件的具体取值。即对每个条件可以取真值和假值。
    • 动作项:条件组合下应采取的动作。
    • 规则:特定条件组合及其相应操作。在决策表中贯穿条件项和动作项的一列就是一条规则。
决策表法实例
  • 设备维修程序:根据条件组合设计测试用例。

    • 以 "设备维修"为例来说明如何制定决策表。 (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. 将因果图转换为判定表。
  3. 为判定表中的每一列设计测试用例。

一、实验目的:

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.面对不同的测试系统,该如何选择黑盒测试方法?

  • 根据系统的特点和需求选择合适的方法。
  • 对于复杂的业务逻辑,可以使用因果图法或判定表法。
  • 对于简单的输入验证,可以使用等价类划分或边界值分析。
  • 根据测试时间和资源,选择最有效的测试方法组合。
相关推荐
耗同学一米八29 分钟前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
东华果汁哥1 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
肖永威2 小时前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
zhd15306915625ff2 小时前
库卡机器人维护需要注意哪些事项
安全·机器人·自动化
布鲁格若门2 小时前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student2 小时前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
dessler2 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
DC_BLOG2 小时前
Linux-Apache静态资源
linux·运维·apache
码农小丘2 小时前
一篇保姆式centos/ubuntu安装docker
运维·docker·容器
耗同学一米八2 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题二
运维·网络·mariadb