软件测试理论和方法.ppt_第1页
软件测试理论和方法.ppt_第2页
软件测试理论和方法.ppt_第3页
软件测试理论和方法.ppt_第4页
软件测试理论和方法.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

软件测试理论和方法 由安博测试空间技术中心提供 主要内容 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 ThefirstBug 海军中尉 格蕾丝 霍波 计算机软件第一夫人1947年夏 哈佛大学MarkII计算机继电器触点 飞蛾 第一只有记载的 电脑虫 软件缺陷 Defect 软件缺陷是对软件产品与其属性的偏离现象 对产品规格说明的偏离对用户期望的偏离软件产品的三类缺陷 错误 未将规格说明书正确实现遗漏 规定的或预期的需求未体现在产品中额外的实现 规格说明书并未规定的需求被纳入产品 并得到实现软件缺陷不可能完全避免 软件缺陷 行业对比机械制造业建筑业软件业缺陷是软件内部的 裂缝 在为影响用户和系统运行的情况下是隐蔽的 但是 当缺陷引发运行错误或产生负面影响时 将会构成事故 造成损失或伤害 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 软件测试 排除软件缺陷的第一个重要手段 测试在软件开发中占有重要地位测试成本占有近一半的开发成本软件开发成本分布 软件项目评审 排除软件缺陷的第二个重要手段 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 软件测试的基本概念 测试的目的测试的对象软件测试的原则软件测试信息流为什么不可能做到穷举测试软件测试的现状和局限性 测试的目的 提高产品的质量 提高产品的商誉 获得更多的销售机会和市场份额 降低客户的售后支持成本以及产品维护成本 测试是程序执行的过程 目的在于发现错误 缺陷 好的测试用例能有效地发现别的测试用例未发现的错误 缺陷 成功的测试是发现了未曾发想的错误 缺陷 测试的对象1 1 程序测试 发现程序中的缺陷 测试的对象2 2 软件测试 发现程序及前期设计开发的缺陷 软件测试的原则 在测试工作开始前 不应设想程序中没有缺陷或找不出缺陷 软件心理学 测试以前应预知测试的结果数据尽可能避免测试自己写的程序 坚持独立测试原则 必要的情况下建立独立测试机构测试用例应兼顾有效输入和无效输入不仅要检验程序是否做了应该做的事 还应检验是否做了不应该做的事测试的充分性测试的有效性保留一切测试用例任何已测程序的变更都应重新测试 回归测试 软件测试信息流 测试的成本曲线 为什么不可能做到穷举测试1 该程序有5条独立路径 含一个循环 最大循环次数为20次分析 循环次数 0123 1920独立路径数 5 1 5 2 5 3 5 21 10 14 100万亿 每个测试用例 考虑 执行 验证结果 5分钟共需测试时间 10亿年 为什么不可能做到穷举测试2 一个功能模块有两个输入A和B 一个输出C 输入A B 均为最大长度为32的正整数测试 A1 B1 C1A2 B2 C2 An Bn Cnn 2 32x2 32 2 64 1 84x10 19 软件测试的现状和局限性 目前的软件测试仍然是发现一个缺陷 解决一个缺陷随着测试工作的进展 隐藏的缺陷将逐渐减少采用任何测试方法都只能发现某些缺陷不存在一个理想的测试方法能够发现所有的缺陷不存在没有缺陷的软件 即使经过了周密的测试 运行的考验和维护的修补 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试阶段测试过程测试方法测试类型测试策略测试工具 测试阶段 V模型 V模型的优缺点 优点 文档驱动的开发模型很注重反馈和测试在需求非常明确的前提下可以使用 也适用于有长期专职开发人员的小型项目开发 不足 严格限定了开发的各阶段 缺乏迭代性 集成测试的时候是发现缺陷最多的时候 在V模型中滞后严重 不支持探测性测试 不适合新领域 缺乏对变化的支持 不支持频繁集成 XP中的测试 XP的特点 每日集成 所有的源代码保存在单一的开发服务器上 可运行的程序框架 自动化编译 创建 所有人都可以得到最新 最好的可执行文件测试优先 先测试后编程组队编程 Pairprogramming用户在场 On site缺陷样本管理定期培训支持重构 代码集体所有增量开发 举例 微软的XP元素 微软的一天从几点开始 答 半夜为什么 答 因为DailyBuild是所有工作的核心 而且是在半夜自动启动 举例 微软的XP元素 续 程序员每天上班前最担心什么 答 由于自己前一天的代码Check in 造成BlockingBug 为什么 因为每天的Build时所有人当天工作的基础程序员需要Build验证与其他模块的接口测试需要Build发现新的Bug 并验证新Build中已解决的Bug 举例 微软的XP元素 续 有BlockingBug怎么办 答 解决问题 并对今天的Build打Patch 经历对Build的提心吊胆和争分夺秒后 开发人员的第一件事做什么 答 打开缺陷跟踪工具 查看指定给自己的Bug 解决高优先度的Bug 因为质量重于新功能 举例 微软的XP元素 续 接下来开发人员会 从版本控制工具中CheckOut代码修改代码 解决Bug或实现新功能 取得版本工具中最新变化 在本机Build 并进行单元测试请开发组同事做CodeReviewCheckin代码 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 测试过程 测试计划 测试开发 测试执行 测试过程 测试计划 测试目标测试的范围测试的项目采用的测试手段需要的工具 资源交付物 Artifacts 测试设计 确认和详细描述测试用例确认和设计测试脚本评估测试覆盖 测试开发 建立测试环境录制或编写测试脚本开发测试驱动器和桩模块建立外部数据集 测试执行 执行测试脚本测试执行情况分析测试结果验证研究未预期的测试结果写测试日志Bug报告和Bug跟踪 测试评估 分析测试用例覆盖分析代码覆盖分析缺陷分析是否达到测试停止 成功标准写测试分析报告 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 测试方法 静态测试方法动态测试方法黑盒测试白盒测试回归测试模拟用户操作测试方法 Method1 Method2 Method3 静态测试方法 主要特征是在用计算机测试源程序时 计算机并不真正运行被测试的程序 只对被测程序进行特性分析 因此 静态方法常称为 分析 静态分析试对被测程序进行特性分析的一些方法的总称 动态测试方法 主要特征是计算机必须真正运行被测试的程序 通过输入测试用例 对其运行情况 输入 输出的对应关系 进行分析 黑盒测试 Black boxTesting 又称功能测试 数据驱动测试或基于规格说明的测试 是一种从用户观点出发的测试被测程序被当作一个黑盒 不考虑程序内容结构和内容特性 测试着只知道该程序输入和输出之间的关系或程序的功能 依靠能够反映这一关系的程序功能的需求规格说明书考虑确定测试用例盒推断测试结果的正确性 软件的黑盒测试被用来证明软件功能的正确性盒可操作性 白盒测试 White boxTesting 又称结构测试 逻辑驱动测试或基于程序的测试白盒测试依赖于对程序细节的严密检查 针对特定条件和循环集设计测试用例 对软件的逻辑路径进行测试在程序的不同点检验 程序状态 一盘定期实际情况是否和预期的状态相一致软件的白盒测试用来分析程序的内部结构白盒测试要求对某些程序的结构特性做到一定程度的覆盖 或者说是 基于覆盖的测试 回归测试 回归测试应用于 增量开发版本控制软件维护回归测试的目的 验证修改的或增加的部分是正确的验证这些部分没有引起其他部分产生错误 模拟用户操作测试 模拟用户操作测试 是基于对用户如何使用被测试软件的了解来开发测试的方法经验告诉我们 复杂的软件产品有许多错误 但用户一般只能找出这些错误中的很少一部分为了给用户带来最大的利益 要着重对那些用户可能发现的错误进行测试和修改工作 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 可靠性测试 质量维度1 完整性测试侧重于评估测试对象的强壮行 防止失败的能力 语言 语法的技术兼容性 以及资源利用率的测试 该测试针对不同的测试对象实施和执行 包括单元测试和已集成单元结构测试侧重于评估测试目的是否符合其设计和构造的测试 通常对基于Web的应用程序执行该测试 以确保所有链接都已连接 显示正确的内容 以及没有孤立的内容 功能测试 质量维度2 配置测试侧重于确保测试对想在不同的硬件和 或 软件配置上按预期运行的测试 该测试还可以作为系统性能测试来实施功能测试侧重于盒是测试对象按计划运行 提供需求的服务 方法或用例的测试 该测试针对不同的测试对象实施和执行 包括单元 已集成单元 应用程序和系统安装测试侧重于确保测试对想在不同的条件下 磁盘空间不足或电源中断 按预期安装的测试 该测试针对不同的应用程序 系统实施和执行 功能测试 质量维度2 安全测试侧重于确保只由预期的主角才可以访问测试对象 数据 或系统 的测试 该测试针对多种测试对象实施和执行 容量测试侧重于个是测试对象对于大量数据 输入和输出或驻留在数据库内 的处理能力的测试 容量测试包括多种测试策略 如 创建返回整个数据库内容的查询对查询设置很多限制 以至不返回数据或返回每个字段中最大数据量的数据条目 性能测试 质量维度3 基准测试一种性能测试 该测试将比较 新的或未知的 测试对象与已知的参照和系统的性能 竞争测试侧重于盒是测试对象对于多个主角对相同资源 数据记录 内存等 的请求的处理是否可以接受的测试负载测试一种性能测试 用于在测试的系统保持不变的情况下 核实和评估系统在负载下操作吉祥的可接受性 评测包括负载和响应时间的特征 性能测试 质量维度3 性能曲线在该测试中 将监测测试对象的计时配置文件 包括执行流 数据访问 函数和系统调用 已确定并解决性能瓶颈和底效流程 强度测试也是一种性能测试 侧重于确保系统可在遇到异常条件时按预期运行 系统面对的工作强度可以包括过大的工作量 不充足的内存 不可用的服务 硬件或过低的共享资源 其他测试类型术语 1 单元测试侧重于何时软件的最小可测试元素通常应用于实现模型中的构件主要做 功能正确的前提下的控制流和数据流的覆盖测试主要针对单元的内部结构 更注重白盒测试集成测试集成的单元能够正确的执行用例测试对象是实现模型中的一个包或一组包要集成的包通常来自于不同的开发组集成测试将揭示包结构规约中不够完全或错误的地方 其他测试类型术语 2 系统测试所有集成测试完成软件系统之间的联合测试软 硬件等之间的联合测试模拟真实运行环境的测试验收测试测试的最后一道工序用户在场或者直接测试用户可能自定义测试用例 其他测试类型术语 3 恢复测试例如 硬件故障或用户不良数据引起的一些情况兼容性测试对软 硬件 操作系统 网络的兼容性测试比较测试与同类产品进行比较 列出优缺点 其他测试类型术语 4 边界测试测试产品特定的限制 如最大值 最小值 确定软件在这些特定的限制下是否能正常工作 正向测试确定正确使用软件时 软件某一特性产生的结果是否与需求一致逆向测试确定软件无效输入或非法操作的处理是否合理 软件测试理论和方法 软件缺陷排除软件缺陷的两种重要手段软件测试的基本概念测试过程测试方法测试类型测试策略测试工具 测试策略 测试策略是各个测试阶段 单元测试 集成测试和系统测试 测试类型 功能测试 性能测试 负载测试 强度测试等 中使用的策略 策略描述的是在这些测试活动中采用的手段和主要目标 测试策略的几个重要元素 目标技术工具成功标准专门考虑 举例 安装测试 目标 把软件在指定硬件下正确的进行安装或升级 并能对安装过程记录和配置 技术 开发

温馨提示

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

评论

0/150

提交评论