1、清远职业技术学院- 1 -1清远职业技术学院计算机网络技术专业毕业论文姓 名:专 业: 计算机网络技术年 级: 学 号:指导教师:清远职业技术学院- 2 -2关于手机软件测试技术的学习与研究摘要:近年来,随着智能手机的产生以及不断发展,智能手机的应用大范围增加,手机软件的质量要求也就越来越高,也只有高质量的软件,才能满足人们对手机功能的需求。智能手机已经完全渗透到人们工作和生活中。同时,手机的软件质量特别重要,手机软件优秀程度如何,直接关系到整个公司的产品销售的情况。现在的智能手机的市场竞争也越来越强烈,近年来,各个企业都与千元智能手机作为公司的主打机,以此来赢得市场。软件测试在软件生存期非常
2、重要,工作量和开销占将近一半,是保证软件质量的主要手段,对于查找软件缺陷、保证产品质量,提高企业效益具有不可替代的作用。据统计,国外在软件开发中,开发费用的近一半甚至更多要用于软件测试,由此也可以看出软件测试在软件开发中的重要地位。关键词:测试的意义、测试流程、测试用例、BUG、白盒测试、黑盒测试清远职业技术学院- 3 -3目录第一章 引言 .4一、软件测试的背景和意义 .41、软件测试的背景 .42、软件测试的意义 .4二、软件测试的定义与概述 .41、软件测试的定义 .42、软件测试的概述 .4三、软件测试的基本原则 .5第二章 软件测试的流程 与内容 .6一、测试流程简介 .6二、软件测
3、试的 内容 .71、正确性测试 .72、容错性测试 .73、性能与效率测试 .7第三章 软件测试的分类 .6一、常用分类 .8二、白盒测试和黑盒测试 .8三、静态测试 .11四、动态测试 .11第四章 提交 BUG 定义与提交技巧 .13第五章 软件测试技术拓展 .14一、用例编写与原则 .141、设计概述 .142、功能测试用例 .143、性能测试用例 .15二、开发修改 .15三、回归测试 .151、简述回归测试 .152、回归测试策略 .15参考文献 .15致谢 .15清远职业技术学院- 4 -4第一章 引言一、软件测试的背景和意义1、软件测试的背景随着智能手机的广泛应用,手机软件的质量
4、要求也就越来越高。落后的软件生产方式无法满足日趋复杂大型软件系统的开发需求。手机是属于消费品,随着用户对手机有着不同的要求,从只能简单通话的手机到 3G 的智能手机,手机所扮演的不再是一个简单的通话工具,而是成为人们办公、娱乐的得力助手。随着手机功能越来越多,只有高质量的软件,才能满足人们对手机功能的需求。软件测试在软件生存期非常重要,工作量和开销占将近一半,是保证软件质量的主要手段,对于查找软件缺陷、保证产品质量,提高企业效益具有不可替代的作用。2、软件测试的意义软件测试是保证软件质量的重要手段,软件测试深入软件开发过程中每个阶段,在有限的开发条件下,最大程度地保证最终软件产品符合用户需要。
5、只要拥有高质量的软件,对提高企业效益就有很大的帮助。二、软件测试的定义与概述1、软件测试的定义软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 完全度(completeness)和质量(quality)的软件过程;是 SQA(software quality assurance)的重要子域。(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时
6、改进;(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。2、软件测试的概述测试是软件开发过程的重要组成部分, 是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的, 第一是确认软件的质量, 其一方面是确认软件做了你所期望的事情(Do the right thing), 另一方面是确认软件以正确的方式来做清远职业技术学院- 5 -5了这个事件(Do it right) ;第二是提供信息, 比如提供给开发人员或程序经理的反馈信息, 为风险评估所准备的信息;第三软件测试不
7、仅是在测试软件产品的本身, 而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题, 这说明此软件开发过程很可能是有缺陷的。三、软件测试的基本原则软件测试时为了使软件质量得到改善,以确保满足产品的需求。在设计有效测试用例之前,测试工程师必须理解软件测试的基本原则,具体有以下原则:(1) 、所有的测试都是为了满足用户的需求。(2) 、在测试开始之前,拟好测试计划。(3) 、应 尽 早 地 和 不 断 地 进 行 软 件 测 试 。应 当 把 软 件 测 试 贯 穿 到 整 个 软 件 开 发 的 过 程 中 , 而 不 应 该 把 软 件 测 试 看 作 是 其 过 程中 的 一
8、个 独 立 阶 段 。 因 为 在 软 件 开 发 的 每 一 环 节 都 有 可 能 产 生 意 想 不 到 的 问 题 , 其 影 响因 素 有 很 多 , 比 如 软 件 本 身 的 抽 象 性 和 复 杂 性 、 软 件 所 涉 及 问 题 的 复 杂 性 、 软 件 开 发 各个 阶 段 工 作 的 多 样 性 , 以 及 各 层 次 工 作 人 员 的 配 合 关 系 等 。 所 以 要 坚 持 软 件 开 发 各 阶 段的 技 术 评 审 , 把 错 误 克 服 在 早 期 , 从 而 减 少 成 本 , 提 高 软 件 质 量 。(4) 、 对 测 试 用 例 要 有 正 确
9、的 态 度第 一 , 测 试 用 例 应 当 由 测 试 输 入 数 据 和 预 期 输 出 结 果 这 两 部 分 组 成 ; 第 二 , 在 设计 测 试 用 例 时 , 不 仅 要 考 虑 合 理 的 输 入 条 件 , 更 要 注 意 不 合 理 的 输 入 条 件 。 因 为 软 件 投入 实 际 运 行 中 , 往 往 不 遵 守 正 常 的 使 用 方 法 , 进 行 了 异 常 操 作 , 就 很 容 易 产 生 一 系 列的 问 题 , 轻 则 输 出 错 误 的 结 果 , 重 则 瘫 痪 失 效 。 因 此 常 用 一 些 不 合 理 的 输 入 条 件 来 发现 更 多
10、 的 鲜 为 人 知 的 软 件 缺 陷 。(5) 、 人 以 群 分 , 物 以 类 聚 。软 件 测 试 也 不 例 外 , 一 定 要 充 分 注 意 软 件 测 试 中 的 群 集 现 象 。 不 要 以 为 发 现 几 个错 误 并 且 解 决 这 些 问 题 之 后 , 就 不 需 要 测 试 了 。 反 而 这 里 是 错 误 群 集 的 地 方 , 对 这 段 程序 要 重 点 测 试 , 要 经 过 反 复 测 试 , 才 能 真 正 地 解 决 问 题 , 这 样 才 能 提 高 测 试 投 资 的 效益 。(6) 、 严 格 执 行 测 试 计 划 , 排 除 测 试 的
11、 随 意 性 , 以 避 免 发 生 疏 漏 或 者 重 复 无 效 的 工作 。 在 测 试 过 程 中 , 要 仔 细 , 不 能 有 半 点 马 虎 , 这 样 才 能 找 出 问 题 的 所 在 , 以 便 更 快 地解 决 问 题 。(7) 、 应 当 对 每 一 个 测 试 结 果 进 行 全 面 检 查 。 一 定 要 全 面 地 、 仔 细 地 检 查 测 试 结 果 ,但 常 常 被 人 们 忽 略 , 导 致 许 多 错 误 被 遗 漏 。(8) 、 妥 善 保 存 测 试 用 例 、 测 试 计 划 、 测 试 报 告 和 最 终 分 析 报 告 , 以 备 回 归 测
12、试 及维 护 之 用 。清远职业技术学院- 6 -6第二章 软件测试的流程与内容一、测试流程简介以下是软件测试主要流程图:测试用例执行结果处理:通过 (注:在执行用例时,成功后应提交用例,有备注的需要备注)失败 (失败,需要备注,写明缘由,提交 BUG,并在用例中批注 BUG 号)未执行 (未执行)测试结果不支持预期结果(策划)用例(指手机无策划或用例描述的功能)注:测试用例需逐条执行,严禁私自更改操作步骤或测试方法,测试结果要保证真实性.准确性.及时性。图 1接收测试任务升级测试策略准备测试资源全功能测试基本功能测试专项测试现网入网测试软件测试流程图对比机升级工具测试物料(手机卡 T 卡)测
13、试用例用户反馈问题Monkey 工具 总结:记录经典用例,以便建立 BUG 库,用例库确认测试目的、内容、评估测试时间 (发现异常,及时上报)回复测试报告、提交问题BDKBUGBUG 测 试 用 例 执 行 结 果 处 理 : 测试结果 = 预期结果 用例.策划 PAS FAIL(提 交 BUG, 并 在 用 例 中 批 注 BUG号 ) E( 用 粉 红 色 字 体 标 识 错 误 用 例 ) SKIP( 指 手 机 无 用 例 .策 划 描 述 的 功 能 ) 注 : 用 例 需 逐 条 执 行 , 严 禁 私 自 更 改 操 作 步 骤 或 测 试 方 法 , 测 试 结 果 要 保 证
14、 真 实 性 , 准 确 性 。 接 收 测 试 任 务 ( 大 于 四 小 时 ) 测 试 软 件 (正 文 一 或 回 复 三 ) 升 级 测 试 策 略 准 备 测 试 资 源 全功能测试 基本功能测试 回归测试 针对性测试 软 件 测 试 流 程 图 上 一 版 本 对 比 机 ( 一 定 是 上 一 版 本 成 功 开 展 测 试 ) 测 试 物 料 (如 : 测 试 卡 、 T卡 、 其 它 品 牌 对 比 机 等 ) 基 本 功 能 点 检 表 ( 尽 早 发 现 必 解 缺 陷 ) 修 改 记 录 表 策 划 测 试 用 例 ( 无 测 试 指 导 , 可 拒 绝 测 试 ,
15、但 要 上 报 ) INT问 题 跟 踪 表 ( 测 试 过 程 中 发 现 INT问 题 , 跟 踪 不 能 超 过 1小 时 ) 建 立 典 型 BUG库 使 用 售 后 或 产 线 升 级 工 具 升 级 前 要 将 U盘 或 T卡 数 据 格 式 化 升 级 前 要 导 参 数 升 级 后 要 插 入 正 确 的 T卡 数 据 再 开 机 确 认 测 试 目 的 、 内 容 、 评 估 测 试 时 间 ( 发 现 异 常 , 及 时 上 报 ) 回 复 测 试 报 告 (交 接 物 料 ) ( 测 试 用 例 执 行 结 果 处 理 : 测试结果 = 预期结果 用例.策划 PAS FA
16、IL(提 交 BUG, 并 在 用 例 中 批 注 BUG号 ) E( 用 粉 红 色 字 体 标 识 错 误 用 例 ) SKIP( 指 手 机 无 用 例 .策 划 描 述 的 功 能 ) 注 : 用 例 需 逐 条 执 行 , 严 禁 私 自 更 改 操 作 步 骤 或 测 试 方 法 , 测 试 结 果 要 保 证 真 实 性 , 准 确 性 。 接 收 测 试 任 务 ( 大 于 四 小 时 ) 测 试 软 件 (正 文 一 或 回 复 三 ) 升 级 测 试 策 略 准 备 测 试 资 源 全功能测试 基本功能测试 回归测试 针对性测试 软 件 测 试 流 程 图 上 一 版 本
17、对 比 机 ( 一 定 是 上 一 版 本 成 功 开 展 测 试 ) 测 试 物 料 (如 : 测 试 卡 、 T卡 、 其 它 品 牌 对 比 机 等 ) 基 本 功 能 点 检 表 ( 尽 早 发 现 必 解 缺 陷 ) 修 改 记 录 表 策 划 测 试 用 例 ( 无 测 试 指 导 , 可 拒 绝 测 试 , 但 要 上 报 ) INT问 题 跟 踪 表 ( 测 试 过 程 中 发 现 INT问 题 , 跟 踪 不 能 超 过 1小 时 ) 建 立 典 型 BUG库 使 用 售 后 或 产 线 升 级 工 具 升 级 前 要 将 U盘 或 T卡 数 据 格 式 化 升 级 前 要
18、导 参 数 升 级 后 要 插 入 正 确 的 T卡 数 据 再 开 机 确 认 测 试 目 的 、 内 容 、 评 估 测 试 时 间 ( 发 现 异 常 , 及 时 上 报 ) 回 复 测 试 报 告 (交 接 物 料 ) )清远职业技术学院- 7 -7二、软件测试的内容1、正确性测试正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。2、容错性测试容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错。3、性能与效率测试性能与效率测试主要是
19、测试软件的运行速度和对资源的利用率。性能与效率测试中很重要的一项是极限测试,因为很多软件系统会在极限测试中崩溃。清远职业技术学院- 8 -8第三章 软件测试的分类一、常用分类从是否需要执行被测软件的角度, 可分为: 静态测试 、动态测试 从测试是否针对系统的内部结构和具体实现算法的角度来看, 可分为 : 白盒测试 、黑盒测试二、白盒测试和黑盒测试1、黑盒测试和白盒测试 黑盒测试指的是把被测软件看作是一个黑盒子, 我们不去关心盒子里面的结构是什么样子, 只关心软件的输入数据和输出结果。黑盒测试方法是在程序接口上进行测试, 主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上, 输入能否正
20、确地接受? 能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误? 用黑盒测试发现程序中的错误, 必须在所有可能的输入条件和输出条件中确定测试数据, 来检查程序是否都能产生正确的输出。 但这是不可能的。n 假设一个程序 P 有输入量 X 和 Y 及输出量 Z。在字长为 32 位的计算机上运行。若X、Y 取整数, 按黑盒方法进行穷举测试:n 可能采用的 测试数据组: 232232 264 n 如果测试一组数据需要 1 毫秒, 一年工作 365 24 小时, 完成所有测试需 5 亿年。黑盒测试的测试用例设计:等价划分法、界值
21、法、推测法、果图法1.等价类划分1等价类划分是一种典型的黑盒测试方法, 使用这一方法时, 完全不考虑程序的内部结构, 只依据程序的规格说明来设计测试用例。2等价类划分方法把所有可能的输入数据, 即程序的输入域划分成若干部分, 然后从每一部分中选取少数有代表性的数据做为测试用例。3使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。4划分等价类等价类是指某个输入域的子集合。在该子集合中, 各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。 等价类的划分有两种不同的情况: 有效等价类:是指对于程序的规格说明来说, 是合理的 , 有
22、意义的输入数据构成的集合。 清远职业技术学院- 9 -9 无效等价类:是指对于程序的规格说明来说, 是不合理的 , 无意义的输入数据构成的集合。 在设计测试用例时, 要同时考虑有效等价类和无效等价类的设计。划分等价类的原则(1) 如果输入条件规定了取值范围, 或值的个数, 则可以确立一个有效等价类和两个无效等价类。 n 例如, 在程序的规格说明中, 对输入条件有一句话: “ 项数可以从 1 到 999 ” 则有效等价类是“1项数999”两个无效等价类是“项数1”或“项 数999” 。(2) 如果输入条件规定了输入值的集合, 或者是规定了“ 必须如何”的条件, 这时可确立一个有效等价类和一个无效
23、等价类。 例如, 在 Pascal 语言中对变量标识符规定为“以字母打头的串” 。那么所有以字母打头的构成有效等价类, 而不在此集合内(不以字母打头)的归于无效等价类。(3) 如果输入条件是一个布尔量, 则可以确定一个有效等价类和一个无效等价类。(4) 如果规定了输入数据的一组值, 而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类, 此外针对这组值确立一个无效等价类 , 它是所有不允许的输入值的集合。2.边界值分析边界值分析也是一种黑盒测试方法, 是对等价类划分方法的补充。 人们从长期的测试工作经验得知, 大量的错误是发生在输入或输出范围的边界上, 而不是在输入范围
24、的内部。因此针对各种边界情况设计测试用例, 可以查出更多的错误。比如, 在做三角形计算时 , 要输入三角形的三个边长: A、B 和 C。 我们应注意到这三个数值应当满足 A0、B0、C0、ABC、ACB、BCA, 才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”, 那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。这里所说的边界是指, 相当于输入等价类和输出等价类而言, 稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例, 首先应确定边界情况。应当选取正好等于, 刚刚大于, 或刚刚小于边界的值做为测试数据, 而不是选取等价类中的典型值或
25、任意值做为测试数据。 3.错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误, 从而有针对性地编写检查这些错误的例子。这就是错误推测法。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况, 根据它们选择测试用例。 4.因果图因果图的适用范围,如果在测试时必须考虑输入条件的各种组合, 可使用一种适合于描述对于多种条件的组合, 相应产生多个动作的形式来设计测试用例, 这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。 (1)分析软件规格说明描述中, 哪些是原因 (即输入条件或输入条件的等价类 ), 哪些是结果 (即输出条
26、件), 并给每个原因和结果赋予一个标识符。清远职业技术学院- 10 -10(2)分析软件规格说明描述中的语义, 找出原因与结果之间, 原因与原因之间对应的是什么关系? 根据这些关系, 画出因果图。 (3)由于语法或环境限制, 有些原因与原因之间, 原因与结果之间的组合情况不可能出现。为表明这些特殊情况, 在因果图上用一些记号标明约束或限制条件。(4) 把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据, 设计测试用例。白盒测试:指的是把盒子盖打开, 去研究里面的源代码和程序结构。白盒测试也称结构测试或逻辑驱动测试, 它是知道产品内部工作过程, 可通过测试来检测产品内部动作是否按照规格说
27、明书的规定正常进行, 按照程序内部的结构测试程序, 检验程序中的每条通路是否都有能按预定要求正确工作, 而不顾它的功能。 使用被测单元内部如何工作的信息, 允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例, 对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识, 测试是基于覆盖全部代码、分支、路径、条件。白盒测试的主要方法:逻辑驱动测试、基本路径测试。主要用于软件验证。使用程序设计的控制结构导出测试用例。逻辑驱动测试:主要是测试覆盖率, 以程序内在逻辑结构为基础的测试。包括以下 6 种类型:语句覆盖、判断覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖。白盒测试的主要目的
28、:保证一个模块中的所有独立路径至少被执行一次;对所有的逻辑值均需要测试真、假两个分支;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。白盒测试的实施方案:在开发阶段要保证产品的质量, 产品的生产过程应该遵循一定的行业标准。软件产品也是同样, 没有标准可依自然谈不上质量的好坏。所有关心软件开发质量的组织、单位, 都要定义或了解软件的质量标准、模型。其好处是保证公司实践的均匀性, 产品的可维护性、可靠性以及可移植性等。在测试阶段,与软件产品的开发过程一样, 测试过程也需要有一定的准则, 来指导、度量、评价软件测试过程的质量。定义测试准则:为控制测试的有效性以及完成程度, 必须
29、定义准则和策略, 以判断何时结束测试阶段。准则必须是客观的, 可量化的元素, 而不能是经验或感觉。 根据应用的准则和项目相关的约束, 项目领导可以定义使用的度量方法, 和要达到的覆盖率。 度量测试的有效性、完整性,对每个测试的测试覆盖信息和累计信息, 用图形方式显示覆盖比率, 并根据测试运行情况实时更新 , 随时显示新的测试所反映的测试覆盖情况。允许所有的测试运行依据其有效性进行管理, 用户可以减少不适用于非回归测试的测试的过程。 概念:1.语句覆盖:语句覆盖就是设计若干个测试用例, 运行被测试程序, 使得每一条可执行语句至少执行一次; 2.判定覆盖(也称为分支覆盖):设计若干个测试用例, 运行所测程序, 使程序中每个判断的取真分支和取假分支至少执行一次;3.条件覆盖:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的每个条件的每个可能取值至少执行一次; 4.判定-条件覆盖:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的每个条件的所有可能取值至少执行一次, 并且每个可能的判断结果也至少执行一次, 换句话说, 即是要求各个判断的所有可能的条件取值组合至少执行一次; 5.条件组合测试:设计足够多的测试用例, 运行所测程序, 使程序中每个判断的所有可能的条件取值组合至少执行一次;