软件测试用例设计方法总结_第1页
软件测试用例设计方法总结_第2页
软件测试用例设计方法总结_第3页
软件测试用例设计方法总结_第4页
软件测试用例设计方法总结_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测试用例的设计方法2011年 9月狗狗整理目录一、等价类划分方法:. . 2二、边界值分析方法:. . 7三、错误推测方法 . . 13四、因果图方法 . 13五、判定表驱动分析方法 . . 17六、正交实验设计方法 . . 23七、功能图分析方法 . . 23八、场景设计方发 . . 24九、测试用例设计综合策略 . . 27一、等价类划分方法:1. 定义是把所有可能的输入数据 , 即程序的输入域划分成若干部分(子集 , 然后从每一个子集中 选取少数具有代表性的数据作为测试用例。该方法是一种 重要 的 , 常 用的 黑盒 测试用例设计 方法。2. 划分等价类:等价类是 指某 个输入域的子集合

2、。 在 该子集合中 , 各 个输入数据 对于揭露 程序中的错误 都 是等 效 的 ,并 合理 地假 定:测试 某 等价类的代表值 就 等 于对这 一类 其它 值的测试 , 因 此 , 可 以 把 全 部输入数据合理划分为若干等价类 , 在 每一个等价类中取一个数据作为测试的输入 条 件就 可 以 用少 量 代表性的测试数据取 得较好 的测试 结 果。等价类划分可有 两 种 不同 的 情况 :有 效 等价类 和无效 等价类。1 有 效 等价类是 指对于 程序的 规格说明来说 是合理的、有 意义 的输入数据 构 成的集合。 利 用有 效 等价 类可 检 验程序是 否 实 现了规格说明 中所 规 定

3、的功能 和 性能。2 无效 等价类与 有 效 等价类的定 义恰巧相反 。 无效 等价类 指对 程序的 规格说明 是 不 合理的 或无意义 的 输入数据所 构 成的集合。 对于 具 体 的 问题,无效 等价类 至 少 应 有一个 ,也 可能有 多 个。 设计测试用例 时 , 要同时考虑这两 种等价类。因为 软件不仅要 能 接收 合理的数据 , 也要 能 经 受意外 的 考 验 ,这样 的测试 才 能 确保软件 具有 更高 的可 靠 性。3. 划分等价类的标准:1 完备 测试、 避免冗余 ;2 划分等价类 重要 的是:集合的划分 , 划分为 互不相 交的一 组 子集 , 而 子集的 并 是整个集

4、合 ;3 并 是整个集合:完备 性 ;4 子集 互不相 交:保证 一种 形式 的 无冗余 性 ;5 同 一类中 标 识 (选 择 一个测试用例 ,同 一等价类中 , 往往处 理 相同,相同 处 理 映射到 " 相同 的 执行路径 " 。4. 划分等价类的方法1 在 输入 条件规 定 了 取值 范围 或 值的个数的 情况 下 , 则 可 以确 立 一个有 效 等价类 和两 个 无效 等价类。 如 :输入值是 学生 成 绩 , 范围 是 0100;2 在 输入 条件规 定 了 输入值的集合 或 者 规 定 了 " 必须如何 " 的 条件 的 情况 下 , 可

5、 确 立 一个有 效 等价类 和 一个 无效 等价类 ;3 在 输入 条件 是一个 布尔 量 的 情况 下 , 可 确 定一个有 效 等价类 和 一个 无效 等价类。4 在规 定 了 输入数据的一 组 值(假 定 n 个 , 并 且 程序 要对 每一个输入值分 别处 理的 情 况 下 , 可 确 立 n 个有 效 等价类 和 一个 无效 等价类。例:输入 条件说明 学历 可为 :专科 、 本科 、 硕士 、 博士 四种 之 一 , 则 分 别 取 这 四种 这 四个 值作为四个有 效 等价类 , 另 外 把四种 学历之 外 的 任何学历 作为 无效 等价类。5 在规 定 了 输入数据 必须遵守

6、 的 规 则 的 情况 下 , 可 确 立 一个有 效 等价类(符 合 规 则 和 若干个 无效 等价类(从 不同 角度违 反规 则 ;6 在确 知已 划分的等价类中 各 元素 在 程序 处 理中的方 式不同 的 情况 下 , 则 应 再将 该等价 类 进 一 步 的划分为 更 小 的等价类。5. 设计测试用例在确 立 了 等价类后 , 可 建立 等价类表 , 列出 所有划分 出 的等价类输入 条件 :有 效 等价类、 无 效 等价类 , 然后从划分 出 的等价类中 按 以 下 三个 原则 设计测试用例:1 为每一个等价类 规 定一个 唯 一的 编号;2 设计一个 新 的测试用例 , 使 其

7、尽 可能 多地 覆盖尚未被覆盖 地 有 效 等价类 , 重 复 这 一 步 , 直 到 所有的有 效 等价类 都 被覆盖 为 止;3 设计一个 新 的测试用例 , 使 其仅 覆盖 一个 尚未被覆盖 的 无效 等价类 , 重 复 这 一 步 , 直到 所 有的 无效 等价类 都 被覆盖 为 止 。实战演习1. 某 程序 规 定:" 输入三个整数 a 、 b 、 c 分 别 作为三边的边 长 构 成三 角 形 。 通过 程序 判定所 构 成的三 角 形 的类 型 , 当 此 三 角 形 为一 般 三 角 形 、 等 腰 三 角 形 及 等边三 角 形时, 分 别 作计 算 "。

8、用等价类划分方法为该程序 进行 测试用例设计。 (三 角 形问题 的 复杂之处 在于 输入 与 输 出之间 的 关系比 较 复杂 。 分析 题 目 中 给出 和 隐含 的 对 输入 条件 的 要 求 :(1整数 (2三个数 (3 非零 数 (4正数(5 两 边 之 和 大 于 第 三边 (6等 腰 (7等边如 果 a 、 b 、 c 满足 条件 (1 (4 , 则 输 出下列 四种 情况 之 一:1 如 果 不 满足 条件 (5 , 则 程序输 出 为 “ 非 三 角 形 " 。2 如 果三 条 边 相 等即 满足 条件 (7 , 则 程序输 出 为 “ 等边三 角 形 "

9、 。3 如 果 只 有 两条 边 相 等、即 满足 条件 (6 , 则 程序输 出 为 “ 等 腰 三 角 形 " 。4 如 果三 条 边 都不相 等 , 则 程序输 出 为 “ 一 般 三 角 形 " 。列出 等价类表 并 编号 覆盖 有 效 等价类的测试用例:A b c 覆盖 等价类 号 码3 4 5 (1 -(74 4 5 (1 -(7 , (84 5 5 (1 -(7 , (95 4 5 (1 -(7 , (10 4 4 4 (1 -(7 , (11 覆盖 无效 等价类的测试用例: 2. 设有一个 档案管 理 系 统 ,要 求 用 户 输入 以 年月表 示 的 日期

10、 。 假 设 日期限 定 在 1990年 1月 2049年 12月 ,并规 定 日期由 6位 数 字字 符 组 成 , 前 4位 表 示 年 , 后 2位 表 示 月。 现 用等价类划分法设计测试用例 ,来 测试程序的 " 日期 检 查 功能 " 。 1 划分等价类 并 编号 , 下 表等价类划分的 结 果输入等价类 有效等价类 无效等价类 日期 的类 型及长度 6位 数 字字 符 有 非 数 字字 符 少 于 6位 数 字字 符 多于 6位 数 字字 符年 份 范围 在 19902049之间 小 于 1990 大 于 2049月 份 范围 在0112之间 等 于 00 大

11、 于 122 设计测试用例 , 以 便 覆盖 所有的有 效 等价类 在 表中 列出 了 3个有 效 等价类 , 编号 分 别 为 、 、 , 设计的测试用例 如下 :测试数据 期望 结 果 覆盖 的有 效 等价类200211 输入有 效 、 、 3 为每一个 无效 等价类设计一个测试用例 , 设计 结 果 如下 :测试数据 期望 结 果 覆盖 的 无效 等价类95June 无效 输入 20036 无效 输入 2001006 无效 输入 198912 无效 输入 200401 无效 输入 200100 无效 输入 200113 无效 输入 3.NextDate 函 数 包 含 三个 变 量 :m

12、onth 、 day 和 year , 函 数的输 出 为输入 日期 后一 天 的 日期 。 例 如 , 输入为 2006年 3月 7日 , 则 函 数的输 出 为 2006年 3月 8日 。 要 求 输入 变 量 month 、 day 和 year 均 为整数值 ,并 且 满足 下列 条件 : 1 month 12 1 day 31 1920 year 20501 有 效 等价类为:M1=月 份 :1 月 份 12D1=日期 :1 日期 31Y1=年:1812 年 20122 若 条件 中 任何 一个 条件 失 效, 则 NextDate 函 数 都 会产 生 一个输 出 ,指明 相应 的

13、 变 量 超 出 取值 范围 , 比如 "month 的值 不在 1-12 范围当 中 ” 。 显 然 还存 在 着 大 量 的 year 、 month 、 day 的 无效组 合 , NextDate 函 数 将 这 些 组 合作 统 一的输 出 :“ 无 效 输入 日期 " 。 其无效 等价类为:M2=月 份 :月 份 <1M3=月 份 :月 份 >12D2=日期 :日期 <1D3=日期 :日期 >31Y2=年:年 <1812Y3=年:年 >2012弱 一 般 等价类测试用例月 份 日期 年 预期 输 出6 15 1912 1912

14、年 6月 16日强 一 般 等价类测试用例 同 弱 一 般 等价类测试用例注 :弱 -有 单缺陷 假 设 ; 健壮 -考虑了无效 值(一 弱健壮 等价类测试用例 ID 月 份 日期 年 预期 输 出WR1 6 15 1912 1912年 6月 16日WR2 -1 15 1912 月 份 不在 112中WR3 13 15 1912 月 份 不在 112中WR4 6 -1 1912 日期 不在 131中WR5 6 32 1912 日期 不在 131中WR6 6 15 1811 年 份 不在 18122012中WR7 6 15 2013 年 份 不在 18122012中(二 强健壮 等价类测试用例

15、ID 月 份 日期 年 预期 输 出SR1 -1 15 1912 月 份 不在 112中SR2 6 -1 1912 日期 不在 131中SR3 6 15 1811 年 份 不在 18122012中SR4 -1 -1 1912 两 个 无效 一个有 效SR5 6 -1 1811 两 个 无效 一个有 效SR6 -1 15 1811 两 个 无效 一个有 效SR7 -1 -1 1811 三个 无效4. 佣金 问题 等价类测试用例 ,它 是 根 据 佣金函 数的输 出 值域定 义 等价类 ,来 改 进 测试用例集 合。输 出 销售额 1000元 佣金 10%1000<销售额 1800 佣金 =

16、100+(销售额 -1000*15%销售额 >1800 佣金 =220+(销售额 -1800*20%测试用例 枪机 (45 枪托 (30 枪管 (25 销售额 佣金1 5 5 5 500 502 15 15 15 1500 1753 25 25 25 2500 360根 据输 出 域选 择 输入值 , 使 落 在 输 出 域等价类 内 , 可 以结 合 弱健壮 测试用例 结 合。二、边界值分析方法:1. 定义:边界值分析法 就 是 对 输入 或 输 出 的边界值 进行 测试的一种 黑盒 测试方法。 通 常 边界值分 析法是作为 对 等价类划分法的 补充 ,这 种 情况 下 ,其 测试用例

17、 来 自 等价类的边界。2. 与等价划分的区别1 边界值分析 不 是从 某 等价类中 随便挑 一个作为代表 ,而 是 使 这 个等价类的每个边界 都 要 作为测试 条件 。2 边界值分析 不仅考虑 输入 条件, 还 要考虑 输 出 空 间 产 生 的测试 情况 。3. 边界值分析方法的考虑:长 期 的测试 工 作 经 验 告诉我们 , 大 量 的错误是发 生 在 输入 或 输 出范围 的边界 上 ,而不 是发 生 在 输入输 出范围 的 内 部。因 此 针 对各 种边界 情况 设计测试用例 , 可 以 查 出 更多 的错误。 使 用边界值分析方法设计测试用例 , 首先 应确 定边界 情况 。

18、通 常 输入 和 输 出 等价类的边界 , 就 是 应 着 重 测试的边界 情况 。 应 当 选取正 好 等 于, 刚刚 大 于或 刚刚 小 于 边界的值作为测试数 据 ,而不 是选取等价类中的 典 型 值 或 任 意 值作为测试数据。4. 常见的边界值1 对 16-bit 的整数 而 言 32767 和 -32768 是边界2 屏幕上光 标在 最左上 、 最右 下 位置3 报 表的 第 一 行 和 最 后一 行4 数 组 元素 的 第 一个 和 最 后一个5 循 环 的 第 0 次 、 第 1 次 和 倒 数 第 2 次 、 最 后一 次5. 边界值分析1 边界值分析 使 用 与 等价类划分

19、法 相同 的划分 , 只 是边界值分析 假 定错误 更多地 存 在于 划分的边界 上 , 因 此在 等价类的边界 上 以 及 两 侧 的 情况 设计测试用例。例:测试计 算 平 方 根 的 函 数-输入:实数-输 出 :实数-规格说明 :当 输入一个 0或 比 0大 的数的 时 候 , 返回 其 正 平 方 根 ;当 输入一个 小 于 0的数 时, 显示 错误 信息 " 平 方 根 非 法 -输入值 小 于 0" 并 返回 0; 库 函 数 Print-Line 可 以 用 来 输 出 错误 信息 。2 等价类划分:I. 可 以考虑 作 出如下 划分:a 、输入 (i &l

20、t;0 和 (ii>=0b 、输 出 (a>=0 和 (b ErrorII. 测试用例有 两 个:a 、输入 4, 输 出 2。 对应于 (ii 和 (a 。B 、输入 -10, 输 出 0和 错误 提 示 。 对应于 (i 和 (b 。3 边界值分析:划分 (ii 的边界为 0和 最 大 正实数 ; 划分 (i 的边界为 最 小 负 实数 和 0。 由 此得 到 以 下 测试用例:a 、输入 最 小 负 实数 b 、输入 绝 对 值 很 小 的 负 数 c 、输入 0d 、输入 绝 对 值 很 小 的正数 e 、输入 最 大 正实数 4 通 常情况 下 ,软件 测试所 包 含 的

21、边界 检 验有 几 种类 型 :数 字 、 字 符 、 位置 、 重量 、 大 小 、 速 度 、方 位 、 尺寸 、 空 间 等。5 相应地,以 上 类 型 的边界值 应 该 在 :最 大 /最 小 、 首位 /末 位 、 上 /下 、 最 快 /最 慢 、 最 高 /最 低 、 最 短 /最 长 、 空 /满 等 情况 下 。6 利 用边界值作为测试数据项 边界值 测试用例的设计 思 路字 符 起始 -1个 字 符 /结 束 +1个 字 符 假 设一个 文 本 输入 区 域 允许 输入 1个 到 255个 字 符 , 输入 1个 和 255个 字 符 作为有 效 等价类 ; 输入 0个 和

22、 256个 字 符 作为 无效 等 价类 ,这 几 个数值 都 属 于 边界 条件 值。数值 最 小 值 -1/最 大 值 +1 假 设 某软件 的数据输入域 要 求 输入 5位 的数 据值 , 可 以 使 用 10000作为 最 小 值、 99999作为 最 大 值 ; 然后 使 用 刚 好 小 于 5位 和 大 于 5位 的 数值 来 作为边界 条件 。空 间 小 于 空 余 空 间 一 点 /大 于 满空 间 一 点 例 如 在 用 U 盘 存 储 数据 时, 使 用 比 剩 余 磁盘 空 间大 一 点 (几 KB 的 文 件 作为边界 条件 。7 内 部边界值分析:在多 数 情况 下

23、, 边界值 条件 是 基 于应 用程序的功能设计 而 需 要考虑 的因 素 , 可 以 从 软件 的 规格说明或常 识 中 得 到 , 也 是 最 终 用 户 可 以 很容易 发 现问题 的。 然 而, 在 测试用例设计 过 程中 , 某 些 边界值 条件 是 不 需 要 呈 现 给 用 户 的 , 或 者 说 用 户 是 很难 注 意 到 的 , 但 同时确 实 属 于检 验 范 畴 内 的边界 条件, 称 为 内 部边界值 条件或 子边界值 条件 。内 部边界值 条件 主 要 有 下 面几 种:A 数值的边界值 检 验:计 算 机 是 基 于 二 进 制 进行 工 作的 , 因 此,软件

24、的 任何 数值 运 算 都 有一定的 范围 限 制 。项 范围 或 值位 (bit 0或 者 1字 节 (byte 0 225字 (word 065535(单字 或 04294967295(双 字 千 (K 1024兆 (M 1048576吉 (G 1073741824b 字 符 的边界值 检 验:在 计 算 机 软件 中 , 字 符 也 是 很 重要 的表 示 元素 ,其 中 ASCII 和 Unicode 是 常 见 的 编 码 方 式 。 下 表中 列出 了 一 些 常 用 字 符 对应 的 ASCII 码 值。字 符 ASCII 码值 字 符 ASCII 码值 空 (null 0 A

25、65空 格 (space 32 a 97斜杠 ( / 47 Z 900 48 z 122冒 号 ( : 58 单 引 号 ( 96 64c 其它 边界值 检 验6. 基于边界值分析方法选择测试用例的原则1 如 果输入 条件规 定 了 值的 范围 , 则 应 取 刚 达 到 这 个 范围 的边界的值 , 以 及 刚刚超 越 这 个 范围 边界的值作为测试输入数据。例 如 , 如 果程序的 规格说明 中 规 定:" 重量在 10公斤 至 50公斤 范围 内 的 邮 件,其 邮费 计 算 公 式 为 " 。 作为测试用例 , 我们 应 取 10及 50, 还 应 取 10.01,

26、49.99,9.99及 50.01等。2 如 果输入 条件规 定 了 值的个数 , 则 用 最 大 个数 , 最 小 个数 , 比 最 小 个数少一 , 比 最 大 个数 多 一的数作为测试数据。比如 , 一个输入 文 件应 包 括 1255个 记录 , 则 测试用例可取 1和 255, 还 应 取 0及256等。3 将 规 则 1 和 2 应 用 于 输 出 条件, 即设计测试用例 使 输 出 值 达 到 边界值 及 其 左右 的 值。例 如 ,某 程序的 规格说明要 求 计 算出 " 每月 保 险 金 扣除 额 为 0至 1165.25元 " ,其 测试 用例可取 0.

27、00及 1165.24、 还 可取一 0.01及 1165. 26等。再如 一程序 属 于情 报 检 索 系 统 ,要 求 每 次 " 最 少 显示 1条 、 最 多 显示 4条情 报 摘 要 " ,这 时 我们 应考虑 的测试用例 包 括 1和 4, 还 应 包 括 0和 5等。4 如 果程序的 规格说明 给出 的输入域 或 输 出 域是有序集合 , 则 应 选取集合的 第 一个 元素 和 最 后一个 元素 作为测试用例。5 如 果程序中 使 用 了 一个 内 部数据 结构 , 则 应 当 选 择 这 个 内 部数据 结构 的边界 上 的值作 为测试用例。6 分析 规格说

28、明 , 找 出 其它 可能的边界 条件 。实战演习1. 现 有一个 学生 标 准化 考 试 批阅 试 卷 , 产 生 成 绩 报告 的程序。 其规格说明 如下 :程序的输入 文 件 由 一 些 有 80个 字 符 的 记录 组 成 , 如 右 图所 示 , 所有 记录 分为 3组 : 标题 :这 一 组 只 有一个 记录 ,其 内 容 为输 出 成 绩 报告 的 名 字 。 试 卷 各题标 准答 案 记录 :每个 记录 均 在 第 80个 字 符处 标以 数 字 "2" 。该 组 的 第 一个 记 录 的 第 1至 第 3个 字 符 为 题 目编号 (取值为 1一 999

29、。 第 10至 第 59个 字 符给出 第 1至 第 50题 的 答 案 (每个合法 字 符 表 示 一个 答 案 。该 组 的 第 2, 第 3 个 记录 相应 为 第 51至 第 100, 第 101至 第 150, 题 的 答 案 。 每个 学生 的 答卷描述 :该 组 中每个 记录 的 第 80个 字 符 均 为数 字 "3" 。每个 学生 的 答卷 在 若干个 记录 中 给出 。 如 甲 的 首 记录 第 1至 第 9字 符给出学生 姓名 及学号 , 第 10至 第 59字 符列出 的是 甲 所 做 的 第 1至 第 50题 的 答 案 。若试 题 数 超 过 5

30、0, 则 第 2, 第 3 纪录 分 别给出 他 的 第 51至 第 100, 第 101至 第 150 题 的 解答 。然后是 学生 乙 的 答卷记录 。 学生 人 数 不 超 过 200, 试 题 数 不 超 过 999。 程序的输 出 有 4个 报告 :a 按学号 排 列 的成 绩 单 , 列出 每个 学生 的成 绩 、 名次 。b 按学生 成 绩 排 序的成 绩 单 。c 平 均 分数 及 标 准 偏差 的 报告 。d 试 题 分析 报告 。 按 试 题 号 排 序 , 列出 各题 学生 答 对 的 百 分 比 。解答 :分 别 考虑 输入 条件和 输 出 条件,以 及 边界 条件 。

31、 给出下 表所 示 的输入 条件 及 相应 的 测试用例。 输 出 条件 及 相应 的测试用例表。 2. 三 角 形问题 的边界值分析测试用例在 三 角 形问题 描述 中 , 除 了要 求 边 长 是整数 外, 没 有 给出 其它 的 限 制 条件 。 在此, 我们 将 三 角 形 每边边 长 的取 范围 值设值为 1, 100 。3. NextDate函 数的边界值分析测试用例在 NextDate 函 数中 , 隐含 规 定 了 变 量 mouth 和 变 量 day 的取值 范围 为 1 mouth 12和 1 day 31,并 设定 变 量 year 的取值 范围 为 1912 year

32、 2050 。 三、错误推测方法1. 定义基 于经 验 和 直 觉 推测程序中所有可能 存 在 的 各 种错误 , 从 而 有 针 对 性的设计测试用例的 方法。2. 错误推测方法的基本思想:列 举 出 程序中所有可能有的错误 和 容易 发 生 错误的 特殊 情况 , 根 据 他 们 选 择 测试用例。 1 例 如 , 输入数据 和 输 出 数据为 0的 情况 ; 输入表 格 为 空 格或 输入表 格 只 有一 行 。 这 些 都 是 容易 发 生 错误的 情况 。可选 择 这 些 情况 下 的例子作为测试用例。2 例 如 , 前 面 例子中成 绩 报告 的程序 , 采 用错误推测法 还 可

33、补充 设计一 些 测试用例: I. 程序是 否 把 空 格 作为 回答II. 在 回答记录 中 混 有 标 准答 案 记录III. 除 了标题 记录 外, 还 有一 些 的 记录 最 后一个 字 符 即 不 是 2也不 是 3IV . 有 两 个 学生 的 学号 相同V . 试 题 数是 负 数。3 再如 , 测试一个 对 线 性表(比如 数 组 进行 排 序的程序 , 可推测 列出 以 下 几项需 要 特 别 测试的 情况 :I. 输入的 线 性表为 空 表 ;II. 表中 只 含 有一个 元素;III. 输入表中所有 元素已 排 好 序 ;IV . 输入表 已按 逆 序 排 好 ;V .

34、输入表中部分 或全 部 元素 相同 。实战演习暂 无四、因果图方法1. 定义:是一种 利 用图 解 法分析输入的 各 种 组 合 情况, 从 而 设计测试用例的方法 , 它 适 合 于检 查 程序输入 条件 的 各 种 组 合 情况 。2. 因果图法产生的背景:等价类划分法 和 边界值分析方法 都 是 着 重考虑 输入 条件, 但 没 有 考虑 输入 条件 的 各 种 组 合、输入 条件 之间 的 相互 制 约 关系 。 这样 虽 然 各 种输入 条件 可能 出 错的 情况 已 经 测试 到 了, 但 多 个输入 条件组 合 起 来 可能 出 错的 情况 却 被 忽视 了 。如 果 在 测试

35、时 必须 考虑 输入 条件 的 各 种 组 合 , 则 可能的 组 合数 目将 是 天 文 数 字 , 因 此 必须 考 虑 采 用一种 适 合 于 描述 多 种 条件 的 组 合、 相应 产 生 多 个动作的 形式来 进行 测试用例的设计 , 这就 需 要利 用因果图(逻辑模 型 。3. 因果图介绍1 4种 符号 分 别 表 示 了规格说明 中 向 4种因果 关系 。 2 因果图中 使 用 了 简 单 的 逻辑 符号 ,以 直 线联 接 左右 结 点 。 左 结 点 表 示 输入 状态 (或称 原 因 , 右 结 点 表 示 输 出 状态 (或 称 结 果 。3 Ci表 示 原 因 , 通

36、常 置 于 图的 左 部 ; ei 表 示 结 果 , 通 常在 图的 右 部。 Ci 和 ei 均 可取 值 0或 1, 0表 示 某 状态 不 出 现, 1表 示 某 状态 出 现 。4. 因果图概念1 关系 恒 等:若 ci 是 1, 则 ei 也 是 1; 否 则 ei 为 0。 非 :若 ci 是 1, 则 ei 是 0; 否 则 ei 是 1。 或 :若 c1或 c2或 c3是 1, 则 ei 是 1; 否 则 ei 为 0。 “ 或 ” 可有 任 意 个输入。 与 :若 c1和 c2都 是 1, 则 ei 为 1; 否 则 ei 为 0。 “ 与 ” 也 可有 任 意 个输入。2

37、 约 束输入 状态 相互 之间 还 可能 存 在某 些 依赖 关系 , 称 为 约 束 。 例 如 , 某 些 输入 条件 本 身 不 可 能 同时 出 现 。输 出 状态 之间 也 往往 存 在 约 束 。 在 因果图中 , 用 特 定的 符号 标明这 些 约 束 。 A. 输入 条件 的 约 束 有 以 下 4类: E 约 束 (异 :a 和 b 中 至多 有一个可能为 1, 即 a 和 b 不 能 同时 为 1。 I 约 束 (或 :a 、 b 和 c 中 至 少有一个 必须 是 1, 即 a 、 b 和 c 不 能 同时 为 0。 O 约 束 (唯 一 ; a 和 b 必须 有一个 ,

38、 且 仅 有 1个为 1。 R 约 束 (要 求 :a 是 1时, b 必须 是 1, 即 不 可能 a 是 1时 b 是 0。B. 输 出 条件 约 束 类 型输 出 条件 的 约 束 只 有 M 约 束 (强 制 :若 结 果 a 是 1, 则 结 果 b 强 制 为 0。5. 采用因果图法设计测试用例的步骤:1 分析 软件规格说明 描述 中 , 那 些 是 原 因 (即输入 条件或 输入 条件 的等价类 , 那 些 是 结 果 (即输 出 条件 , 并 给 每个 原 因 和结 果 赋予 一个 标 识符 。2 分析 软件规格说明 描述 中的 语 义, 找 出原 因 与结 果 之间 , 原

39、因 与 原 因 之间 对应 的 关 系 , 根 据 这 些 关系 , 画 出 因果图。3 由 于 语 法 或 环 境 限 制 , 有 些 原 因 与 原 因 之间 , 原 因 与结 果 之间 的 组 合 情况不 可能 出 现, 为表 明这 些 特殊 情况 , 在 因果图 上 用一 些 记 号 表 明 约 束 或 限 制 条件 。4 把因果图 转换 为判定表。5 把判定表的每一 列 拿 出 来 作为 依 据 , 设计测试用例。实战演习1. 某软件规格说明 书 包 含 这样 的 要 求 :第 一 列 字 符必须 是 A 或 B , 第 二 列 字 符必须 是一个数 字 ,在此情况 下进行 文 件

40、的 修 改 , 但 如 果 第 一 列 字 符 不 正 确, 则给出 信息 L ;如 果 第二 列 字 符 不 是数 字 , 则给出 信息 M 。解答 :1 根 据 题意, 原 因 和结 果 如下 :原 因:1 第 一 列 字 符 是 A ;2 第 一 列 字 符 是 B ;3 第 二 列 字 符 是一数 字 。结 果:21 修 改 文 件 ;22 给出 信息 L ;23 给出 信息 M 。2 其对应 的因果图 如下 :11为中 间 节点 ; 考虑 到原 因 1和 原 因 2不 可能 同时 为 1, 因 此在 因果图 上 施加 E 约 束 。 3 根 据因果图 建立 判定表。 表中 8种 情况

41、 的 左 面 两 列 情况 中 , 原 因 和 原 因 同时 为 1, 这 是 不 可能 出 现 的 , 故 应 排 除 这两 种 情况 。 表的 最 下 一 栏 给出 了 6种 情况 的测试用例 , 这 是 我们 所 需 要 的数据。 2. 有一个 处 理 单 价为 5角 钱 的 饮料 的 自 动 售 货 机 软件 测试用例的设计。 其规格说明 如 下 :若 投 入 5角 钱 或 1元 钱 的 硬币 , 押 下 橙汁 或 啤酒 的 按 钮 , 则 相应 的 饮料 就 送 出 来 。若 售 货 机 没 有 零 钱 找 , 则 一个 显示 零 钱 找 完 的 红灯亮 ,这时在 投 入 1元 硬币

42、 并 押 下按 钮 后 , 饮料 不 送 出 来而 且 1元 硬币 也 退 出 来 ; 若有 零 钱 找 , 则 显示 零 钱 找 完 的 红灯灭 ,在 送 出 饮料 的 同时 退 还 5角 硬币 。1 分析 这 一 段 说明, 列出原 因 和结 果原 因:1. 售 货 机 有 零 钱 找2. 投 入 1元 硬币3. 投 入 5角 硬币4. 押 下 橙汁 按 钮5. 押 下 啤酒 按 钮结 果:21. 售 货 机 零 钱 找 完 灯亮22. 退 还 1元 硬币23. 退 还 5角 硬币24. 送 出 橙汁饮料25. 送 出 啤酒饮料2 画 出 因果图 , 如 图所 示 。所有 原 因 结 点

43、列 在 左 边 , 所有 结 果 结 点 列 在 右 边。 建立 中 间 结 点 , 表 示 处 理的中 间 状态 。中 间 结 点 :11. 投 入 1元 硬币 且 押 下 饮料 按 钮12. 押 下 橙汁 或 啤酒 的 按 钮13. 应 当 找 5角零 钱 并 且 售 货 机 有 零 钱 找14. 钱 已 付清 3 转换 成判定表: 4 在 判定表中 , 阴影 部分表 示 因 违 反 约 束 条件 的 不 可能 出 现 的 情况, 删去 。 第 16列 与 第 32列 因 什么 动作 也 没 做 , 也 删去 。 最 后可 根 据 剩 下 的 16列 作为 确 定测试用例的 依 据。五、判

44、定表驱动分析方法1. 定义判定表是分析 和 表 达 多 逻辑 条件 下执行 不同 操 作的 情况 的 工 具。2. 判定表的优点能 够 将复杂 的 问题 按 照 各 种可能的 情况全 部 列 举 出 来, 简 明并避免 遗漏 。 因 此, 利 用判 定表能 够 设计 出 完 整的测试用例集合。在 一 些 数据 处 理 问题 当 中 , 某 些 操 作的实 施依赖 于多 个 逻辑 条件 的 组 合 , 即:针 对不同 逻辑 条件 的 组 合值 , 分 别执行 不同 的 操 作。判定表 很 适 合 于 处 理 这 类 问题 。3. “ 阅读指南 ” 判定表 4. 判定表通常由四个部分组成如下图所示

45、 。 1 条件 桩 (Condition Stub :列出 了问题得 所有 条件 。 通 常 认 为 列出 的 条件 的 次 序 无 关 紧 要 。2 动作 桩 (Action Stub :列出 了问题规 定可能 采 取的 操 作。 这 些 操 作的 排 列 顺 序 没 有 约 束 。3 条件 项 (Condition Entry :列出 针 对它 左 列 条件 的取值。 在 所有可能 情况 下 的 真 假 值。4 动作 项 (Action Entry :列出 在条件 项 的 各 种取值 情况 下 应 该 采 取的动作。 5. 规 则及 规 则 合 并1 规 则 :任何 一个 条件组 合的 特

46、 定取值 及 其相应要 执行 的 操 作 称 为 规 则 。 在 判定表中 贯穿 条件 项 和 动作 项 的一 列 就 是一 条规 则 。 显 然 , 判定表中 列出 多 少 组条件 取值 , 也就 有 多 少 条规 则 , 既 条件 项 和 动作 项 有 多 少 列 。2 化 简 :就 是 规 则 合 并 有 两条或多条规 则 具有 相同 的动作 ,并 且 其条件 项 之间 存 在 着 极 为 相 似 的 关系 。 6. 规 则 及规 则 合并举 例1 如下 图 左 端 ,两规 则 动作 项 一 样,条件 项 类 似 ,在 1、 2条件 项 分 别 取 Y 、 N 时, 无 论 条件 3取

47、何 值 ,都 执行 同 一 操 作。即 要 执行 的动作 与条件 3无 关 。 于 是可合 并 。 “ -” 表 示 与 取值 无 关 。2 与 上 类 似 , 下 图中 ,无 关 条件 项 “ -” 可 包 含 其 他 条件 项 取值 , 具有 相同 动作的 规 则 可合 并 。3 化 简 后的 读 书 指 南 判定表1 2 3问题 你 觉 得 疲倦吗? - - Y 你 对 内 容 感兴趣吗? Y Y N 书 中 内 容 使 你胡涂吗? Y N -建 议 请 回 到本 章开头 重 读 x 继续读 下 去 X跳 到下 一 章 去 读停 止 阅 读 , 请休 息 x7. 判定表的 建立 步骤:(

48、根据软件规格说明1 确 定 规 则 的个数 . 假 如 有 n 个 条件 。每个 条件 有 两 个取值(0,1 , 故 有 2n 种 规 则 。2 列出 所有的 条件 桩 和 动作 桩 。3 填 入 条件 项 。4 填 入动作 项 。等 到 初 始 判定表。5 简 化 . 合 并相 似 规 则 (相同 动作 。实战演习1. 问题要 求 :” 对 功 率 大 于 50马力 的 机 器 、 维 修 记录 不全或 已 运 行 10年 以 上 的 机 器 ,应 给 予 优 先 的 维 修 处 理 ” 。 这 里 假 定 , “ 维 修 记录 不全 ” 和 “ 优 先 维 修 处 理 ” 均 已 在 别

49、 处 有 更 严 格 的定 义 。 请 建立 判定表。解答 : 确 定 规 则 的个数:这 里 有 3个 条件, 每个 条件 有 两 个取值 , 故 应 有 2*2*2=8种 规 则 。 列出 所有的 条件 茬 和 动作 桩 : 填 入 条件 项 。可从 最 后 1行 条件 项 开 始 , 逐 行 向 上 填 满 。 如 第 三 行 是:Y N Y N Y N Y N, 第 二 行 是:Y Y N N Y Y N N等等。 填 入动作 桩 和 动作 顶 。 这样 便 得 到 形 如 图的 初 始 判定表。1 2 3 4 5 6 7 8条 件 功 率 大 于 50马力吗? Y Y Y Y N N

50、 N N 维 修 记录 不全 吗? Y Y N N Y Y N N 运 行 超 过 10年 吗? Y N Y N Y N Y N动 作 进行 优 先 处 理 x x X X X 作 其 他 处 理 X x x初 始 判定表 化 简 。合 并相 似 规 则 后 得 到 图。1 2 3 4 5条 件 功 率 大 于 50马力吗? Y Y Y N N 维 修 记录 不全 吗? Y N N - - 运 行 超 过 10年 吗? - Y N Y N动 作 进行 优 先 处 理 x x X 作 其 他 处 理 x x 2. NextData函 数的 精 简 决 策表M1=月 份 , 每月有 30天 M2=

51、月 份 , 每月有 31天 M3=月 份 , 2月 有 29=512条规 则D1=日期 , 128 12月 末 31日 和其它 31 D2=日期 , 29 日 月 份 的 31日 处 理 不同 D3=日期 , 30 平 年 2月 28日 处 理 不同 D4=日期 , 31 于 2月 27日Y1 =年:年是 闰 年 Y2 =年:年 不 是 闰 年 改 进 为M1=月 份 :每月有 30天 M2=月 份 :每月有 31天 , 12月 除 外 M4=月 份 :12月 M3=月 份 :2月 D1=日期 :1<=日期 <=27D2=日期 :28D3=日期 :29D4=日期 :30D5=日期

52、:31Y1 =年:年是 闰 年 Y2 =年:年 不 是 闰 年 输入 变 量 间 存 在 大 量 逻辑 关系 的 NextData 决 策表 3. 用 决 策表测试法测试 以 下 程序:该程序有三个输入 变 量 month 、 day 、 year (month 、 day 和 year 均 为整数值 ,并 且 满足 :1 month 12和 1 day 31 , 分 别 作为输入 日 期 的月 份 、 日 、年 份 , 通过 程序可 以 输 出 该输入 日期 在 日 历 上 隔 一 天 的 日期 。例 如 , 输入为 2004年 11月 29日 , 则 该程序的输 出 为 2000年 12月

53、 1日 。1 分析 各 种输入 情况, 列出 为输入 变 量 month 、 day 、 year 划分的有 效 等价类。2 分析程序 规格说明,结 合 以 上 等价类划分的 情况 给出 问题规 定的可能 采 取的 操 作 (即 列出 所有的动作 桩 。3 根 据(1 和 (2 , 画 出 简 化 后的 决 策表。案 例分析 如下 :month 变 量 的有 效 等价类:M1: month=4, 6, 9, 11M2: month=1, 3, 5, 7, 8, 10M3: month=12M4: month=2day 变 量 的有 效 等价类:D1 : 1 day 26 D2: day=27

54、D3: day=28 D4: day=29 D5: day=30 D6: day=31 year 变 量 的有 效 等价类:Y1: year是 闰 年 Y2: year不 是 闰 年 考虑各 种有 效 的输入 情况, 程序中可能 采 取的 操 作有 以 下 六种:a1: day+2 a2: day=2 a3: day=1 a4: month+1 a5: month=1 a6: year+14. 判定表 在 功能测试中的 应 用1 一 些 软件 的功能 需 求 可用判定表表 达 得 非 常 清 楚 ,在检 验程序的功能 时 判定表 也就 成为一个 不 错的 工 具。 如 果一个 软件 的 规格说明指 出 :I. 当 条件 1和条件 2满足 ,并 且 条件 3和条件 4不 满足 ,或 者当 条件 1、 3和条件 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论