1、 西安理工大学硕士学位论文面向GUI软件测试的自动化工具研究与实现姓名:张年林申请学位级别:硕士专业:计算机应用技术指导教师:吕林涛20070301计算机 应 用 技 术张年林图 形用 户 界面是 现 代软 件的重要 组 成部 分 。由 于软 件的功能主要 是 通 过 图 形用 户 界面遍 采 用 使得 砑 馐 员涞糜 任V 匾! 壳 耙到缙 毡 椴 捎玫纳 逃 肎 软 件自 动 化 测试 工具氘 , 篏 ; 论 文作者签名 :琵 乞冬丝幼 噼 弓 月日本 人学位论 文全部 或 部 分内 容 的公布 n 授 权西 安理工 大 学研 究生部 糍 :微 氰 协 带 硼 口 日 课题 研 究 背 景
2、 及意义 的 出 现 为 软 件 系统 的 使 用 者 带 来误 ”。试 数据生 成 方 法 无法 应 用 于 砑 馐 允 萆 晒 獭到 缙 毡椴捎玫 牟 蹲 剑 胤 疨, 扛 鯣 控 件由事 件 表 示, 再 结 合 丶 谑录 哺 亲 荚蚝虶 控 件之间 的 覆 盖 准 ”, 用以描述 交互 式软件的 各种 可能 的 交互 执行 过 的 测 试 憬 笱亩潘 攵 跃 哂型 夹斡 没 缑 且 进 行 事 务处 理 软件系 统 的 测 试 ,联 结 、 制 约 关系 , 进 而 提 出了 基于界面 构 件关联 图 的 软件测 试 覆盖 准则和测 试 用例 生成 方护 困难 ; 杂 诓 馐 越峁 难
3、 橹 蒲 芯 坎还 唬 测 试 人 员 分 析 测 试 执 行 过 程出 错写 进 测 试 脚 本 里 ; 测 试 数据只 包 含 在数据文 件中 , 而 不 是 脚 本 里 , 测 试 脚 本 只 是 一个“驱 。 避 免 现 有 的 自 动 化测试 框架 中 脚本 维护 困难 、 软 件 公 司 西 安 分 公 司 的 系 统软 件 试 , 其 测试 结果基 本 上 达到 了 预 期 效 果。 软件 测 试一 目 的 , 查 不 出 错 误的 测 试 并 非 没 有 价 值 。 甅 在 其 所 著 的 年 , 甅 在 软件 测 试 艺 术 上 世 纪 年代 , 测 试 工 具 终 于 盛
4、行 起 来 。 人 们 普遍 意识到, 工 具 不仅仅是 有用 的 ,而 且 要对 今天 的 软件 系统进 行 充分 的 测 试 , 工 具 是 必不可少的 。 通 常 情 况 下, 一个 软件 模型 说明 的 内 容主 要包括: 在测 试 过 程中你 应 该考虑 到哪些 问 强 调早 期 计 划 及 需求调查;缺点:验的 测试人 员 在 测试计 划之 外发现 更多的 软件错 误。 软件自动 化测试自 动化 测 试 是 非 常 必要的 。 本 节从自 动化 测 试 的概 念 、 自 动化 测 试 在软 件开发 中 的位 置、 自 动化 测 试 特点、 成功进行 自 动化 测 试 需 要注 意
5、的 问 题、 自 动化 测 试 生命 周 期、 以 及 实 施 自 动化 测 试 的 原 则 六 个方 面来介 绍软 件自 动化 测 试 。自 动化 测 试 的 目 标 是 对被 测 试 系统进行 自 动测 试 。总 的 来说,自 动化 测 试 的 目 的 就是用 较少的 开销,获得 较彻 底 的测 试 ,提 高产品 的质 量 。鬻 嚣工 具羹矗 翮自黑 测 试 设 计工 具用 于准 备 测 试 输入和输出 数据 。逻辑 设 计工 具用 于处 理 说明 、 接 口 和代码逻辑 ,也成为 测 试 用 例 生成器 。从说明 中 获取测 试 数据 的工 具就是 逻辑 设 计工 具。 物 理设 计工
6、具用 于操作 己有的 数据 或者 产生数据 ,可 以随机从数据 库 中 获取记 录 的工 具就是 物理 设 计工 具。 测 试 管 理 工 具用 于帮 助完 成测 试 计划 ,跟 踪测 试 运行 结 果等 。该 类 工 具还 包括有助于需 求 、 设 计、 编码、 测 试 以 及 故障 跟 踪的 工 具。 静 态 分析 工 具分 析 代码而 不 执 行当 一款自 动 化 测 试工 具 引 入 到 一个 项目 中 ,我 们常 对 它 给 予很高 的 期 望 ; 项目 成员希望 工 具 能 够尽 可能 的 缩 小测 试范 围、节 约成本 并缩 短 项目 进度 。然 而 可悲 的 是,很多 采 用自
7、 动 化 测 试的 项目 依然 失 败了 。结合 前述所 讨 论的 自 动 化 测 试项目 的 教 训 ,我 们可以 总 结出 严 重影 响自 动 化 测 试效 率的 若 干 因 素 ,严 重的 将 会 造 成事倍 功 半 甚 至前功 尽 弃 的 后 果 ,自 动 化 测 试也 就 成了 一副空 架子 。测 试被执行 三 次以 后 的 周期 内 。的 完整性 。楚 。 由 提 出 的 自动 化测 试 生 命 周期 方法 学 狝 道 自动 化测 试 的 预 期 结 果 和列 出 在 正 确执 行自动 化测 试 后 的 益 处 。 同时 , 需要 列 出 自动 化测 试 工具的 备 选方案 , 这
8、 对于 获 得 管 理 层 的 支 持是 非 常有帮助 的 。活 动 的 不断 改 进 , 必须有相应 的 标准 来 衡量评审 的 结 果 。 通 过 运用 中 所概括 的 系 统 的 方法 , 一 个 测 试 团 队就 能在 测 试 资 源受 限 的 情 况下利用 这 一 途径 组 织 和执 行测 试 活 动 , 并 且 达到 使 测 试 覆 盖率最 大 的 目 的 。很 明显, 强 调自动 化测 试 是 软件 工业 的 一 个 很 大 转变。 这 种 转变不仅 包括 应 用 程序 工具和测 试 自动 化, 它 还 贯 穿 于 系 统 开 发 的 整个 生 命 周期 。 和系 统 的 开 发
9、 生 命 周期 是同步 进 行的 。 要 使 软件 专 业 人 员 转到 自动 化测 试 上 来 , 结 构化的 方法 是 必须采用 的 。 因 此 , 是 革命 性 的 , 它 代 表了一 种 结 构化的 方法 , 规 定 了确定 测 试 方法 和执 行测 试 的 流程 ,使 得 软件 专 业 人 员 能进 行可 重复的 软件 测 试 。 这 种 结 构化的 方法 能够使 测 试 人 员 避免经常犯 的 错 误, 如实现 了自动 化工 具的 使 用 而没 有一 个 正 规 的 流程 , 结 果 是 测 试 项目 变得 很 杂乱不可 重复, 也无 法 测 量: 实现 了测 试 设 计 而没 有
10、遵 循 任何 的 设 计 标准 , 结 果是 测 试 脚 本是 不可 重 复 的 , 因 此 也不能够重 用 等 等 。为 了 防止 这种情况 发 生,应 当 定义 文 档的标准和 模 板。 在任 何可 能的情况 下 ,模 块 文档都应 该及 时 地编 写,甚 至 直 接写在源代码 中 ,可 以 使用 已 有 的或 是 自己开发 的工 具 来 自动地提 取这些 文 档记录并 发 布 。 这样 做不 仅可 以 避 免 需 要同 时 维 护两 份独 立的文 件 :源代码 及其文 档,还为 维 护代码 的人 提 供 了 一 个 参 考 依 据 ,几乎 所有 他 们 想 要知道 的东 西 都存在于源代
11、码 中 。 我 们 应 当 牢记,我 们 的最 终目标是 简 化 并 且 使我 们 的自 动化 测 试 框 架 一 直发 挥 作 用 ,使我 们 的工 作 能一 直 被其他 人重复使用 ,只要技术上 是 可 行 的,并 且能带 来 产出。软 件 自动 化 测试 在 过 去 的 年 中已经有 了 很 大 的 发展 。 最初 的 测试 工具只 提供了 简入事 先录制 好的或手工 编 写的测 试 脚 本中。这 些 变 量被 用 作传 递 淙 耄 涑 验证应 用 程序的测 试 数 据 。在 这 个过 程当 中, 数 据 文 件的读 取 、 测 试 状 态和所 有 测 试 信息都 被 编 写进测试 脚
12、本里;测 试 数 据 只 包 含 在 数 据 文 件中, 而不 是 脚 本里, 测试 脚 本只 是 一个“驱 动 ” ,简单 的说 就 是 一个传 送 数 据 的机 制 而已。图 籰给出 了基于 数 据 驱 动 的自动 化测 试 框架 模型的结 构图 。动 时, 只 需 要 修改 业务 功能部分 的脚 本; 利 用 模 型化的设 计 , 避 免重复的脚 本, 减 少建基 于 关 键字驱 动的 软件自动化 测试 框架 建 立在测试 指令 驱动手 段 之上 ,表 中包含指令黑试 表, 中 层 测 试 表, 以及 底 层 测 试 表 。 基于混 合 驱 动 的 软 件 自动 化 测 试 框架 模 型
13、支 持 库 砑 远 馐怨 逜 的 设 计 。同 时 , 结 合 当 前 软图 自 动 化测 试 框架 模 型 的 主 要 部件包 括: 旌 锨 混 合 驱 动 器包 括四 个 部分 : 高 层 驱 动 器; 中层 驱 动 器: 低 层 驱 动 器; 数据 驱动 器。高 层 驱 动 器读 取 高 层 表 的 每 个 记 录, 如 果遇 到 中间 表 关键 字 , 就 把 这个 表 传递 给 中层 驱 动 器 , 依 此类 推 , 直 至到 达 低 层 表 , 低 层 驱 动 器 调 用 关键 字 词 库 中 的 低 层 指 令 所对应的 组件函 数来 完 成 最 后 的 执 行 。在组件函 数中遇 到 的 变 量, 通 过 数据 驱 动 器从 测 试 数据 文件中 找到 该 变 量 对应 的 测 试 数 据 , 替换 变 量 。 砑 远 馐怨 逜 的 设计是 “登 陆 ”例子对应 的 测 试 数 据 表 。假设 : 正确 的 用 户名 和 密码为: 虯 。 ”映 射 表 是 我们的 自 动 化模 型 中关键 的 组件之 一。在进 行 测 试 设计之 前 , 测 试 人 员 首先