




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试与维护 软件测试综述 软件测试背景软件开发过程软件测试实质 软件测试背景 臭名昭著的软件错误案例软件缺陷是什么为什么会出现软件缺陷软件缺陷的修复费用软件测试员究竟做些什么怎样成为优秀的软件测试员 臭名昭著的软件错误案例 Disney的狮子王 1994 1995 美国航天局火星极地登陆 1999 爱国者导弹防御系统 1991 千年虫 1974 软件缺陷是什么 描述软件缺陷的术语缺点 defect 偏差 variance 谬误 fault 失败 failure 问题 problem 矛盾 incosistency 错误 error 特殊 feature 毛病 incident 缺陷 bug 异常 abnormality 软件缺陷是什么 软件缺陷的定义 符合下列规则的叫软件缺陷 软件未达到产品说明书的功能 软件出现了产品说明书指明不会出现的错误 软件功能超出产品说明书指明范围 软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为难以理解 不易使用 运行速度缓慢 或者最终用户认为不好 为什么会出现软件缺陷 软件缺陷的修复费用 软件测试员究竟做些什么 软件测试员的目的是发现软件缺陷软件测试员的目的是发现软件缺陷 尽可能早一些软件测试员的目的是发现软件缺陷 尽可能早一些 并确保其得以修复 怎样成为优秀的软件测试员 探索精神故障排除能手不懈努力创造性追求完美判断准确老练稳重说服力 软件开发过程 产品的组成部分软件开发过程软件开发模式 产品的组成部分 软件产品需要多少投入 产品说明书进度测试计划 产品审查来自上一版的反馈客户调查易用性数据 设计文档竞争对手情况观察和感受说明书 客户要求 产品开发小组必须摸清客户所需用调查问卷的形式搜集详细信息反馈软件的以前版本竞争产品信息 同领域产品 杂志评论 媒体 焦点人群的意见 产品说明书 对客户要求的研究结果是原始资料 无法描述要做的产品 只是确定哪些要做 哪些不要做 以及客户要求的功能 产品说明书综合上述信息和一些没有提出但必须实现的要求 真正地定义产品是什么 有哪些功能 外观如何产品说明书是 锁定 的 进度表 Gantt图 系统最终交付日期已经确定 软件开发部门必须在规定期限内完成系统最终交付日期只确定了大致的年限 最后交付日期由软件开发部门确定Gantt图中横坐标表示时间 纵坐标表示任务 图中的水平线段表示对一个任务的进度安排 线段的起点和钟点对应在横坐标上的时间分别表示该任务的开始时间和结束时间 线段的长度表示完成该任务所需的时间 文档 常用的软件设计文档 构架数据流示意图状态变化示意图流程图注释代码测试文档 软件开发模式 大棒式边写边改式流水式螺旋式 软件测试的实质 软件为什么永远不会完美软件测试为什么不仅是技术问题 测试原则 完全测试不可能软件测试的风险 最优测试量并非所有软件缺陷都能修复软件测试员在产品小组中不受欢迎 软件测试的基本方法 尽早不断的测试回归测试的关联性一定要引起充分的注意测试应从 小规模 开始 逐步转向 大规模 不可将测试用例置之度外 排除随意性必须彻底检查每一个测试结果一定要注意测试中的错误集中发生现象对测试错误结果一定要有一个确认的过程 黑盒测试 黑盒测试法 也称为功能测试或数据驱动测试黑盒测试主要用于发现以下情况 是否有不正确或遗漏了的功能 在接口上 能否正确地接受输入数据 能否产生正确地输出信息 访问外部信息是否有错 性能上是否满足要求 界面是否错误 是否不美观 初始化或终止错误 黑盒测试方法示意图 客户需求 输入 输出 事件驱动 白盒测试法 白盒测试 也称为结构测试或逻辑驱动测试已知产品地内部工作过程 清楚最终生成软件产品地计算机程序地结构和语句 按照程序内部地结构测试程序 测试程序内部的变量状态 逻辑结构 运行路径等 检验程序中的每条通路是否都能按照预订的要求正确工作 检查程序内部动作或运行是否符合设计规格要求 所有内部成分是否按规定正常进行 白盒测试的原则 保证每个模块中所有独立路径至少被执行一次对所有逻辑值均测试为真值和假值在上下边界及可操作范围内运行所有循环检查内部数据结构以确保其有效性白盒测试用例的常见设计方法有逻辑覆盖 循环覆盖和基本路径测试 静态和动态的方法 静态测试就是静态分析 对模块的源代码进行研读 查找缺陷或收集一些度量数据 并不需要对代码进行编译和仿真运行 包括对软件产品的设计产品说明书的审查 对程序代码的阅读 审查等 包括人工检测和计算机辅助静态分析 动态测试是通过观察代码运行时的动作 来提供执行跟踪 时间分析 以及测试覆盖度方面的信息 它通过真正运行发现缺陷 软件测试方法分类 一 按测试范围分类单元测试组件测试集成测试系统测试验收测试安装测试按测试目的分类正确性测试白盒测试黑盒测试性能测试 可靠性测试强壮性测试异常处理测试负载测试安全性测试按测试对象分类单元测试组件测试模块测试程序测试系统测试文档测试 软件测试方法分类 二 按测试过程分类需求阶段的测试设计阶段的测试程序阶段的测试测试结果的评估安装测试验收测试测试变化 维护 其他测试技术和方法 回归测试压力测试恢复测试安全测试兼容性测试同一测试技术可以融合在不同类的相关测试阶段之中 测试的阶段 软件测试贯穿软件产品开发的整个生命周期 软件项目一开始 软件测试也就开始了 从产品的需求分析审查到最后的验收测试 安装测试结束 单元测试 单元测试 单元测试 综合测试 功能测试 系统测试 接受测试 安装测试 设计规范 接受测试 综合模块 功能系统 系统功能需求 其它软件需求 客户需求规范 用户环境 检验并确认软件 使用中的系统 测试的阶段 软件测试由一系列的不同测试阶段所组成 这些阶段分为 产品说明书审查系统和程序设计审查单元测试集成测试 组装测试 功能测试确认测试系统测试验收测试安装测试 各个测试阶段输入和输出标准 单元测试 单元测试时在软件测试过程中进行的最早期的测试活动 单元测试是对软件基本组成单元进行的测试 单元测试的对象是软件设计的最小单位 模块 一个最小的单元应该有明确的功能 性能定义 接口定义而且可以清晰地与其他单元区分开来 一个菜单 一个显示界面或者能够独立完成地集体功能都可以是一个单元 从某种意义上来讲 单元地概念已经扩展为组件 需关注地单元测试地内容 目标 确保模块被正确执行依据 详细设计描述过程 包括设计 脚本开发 执行 调试和分析结果执行者 由程序开发人员和测试人员共同完成测试方法 以白盒测试为主 辅以黑盒测试方法评估 通过所有单元测试用例 代码没有严重缺陷 单元测试地目标 信息能否正确地流入和流出单元在单元工作过程中 其内部数据能否保持其完整性 包括内部数据形式 内容及相互关系不发生错误 也包括全局变量在单元中地处理和影响在为限制数据加工而设置地边界处 能否正确工作单元地运行能否做到满足特定地逻辑覆盖单元中发生了错误 其中地出错处理措施是否有效 单元测试地任务 模块接口测试模块局部数据结构测试模块边界条件测试模块中所有独立执行通路测试模块地各条错误处理通路测试 黑盒测试用例设计方法 黑盒测试方法主要有等价类划分 边值分析 因 果图 错误推测等 主要用于软件确认测试 黑盒 法着眼于程序外部结构 不考虑内部逻辑结构 针对软件界面和软件功能进行测试 黑盒 法是穷举输入测试 只有把所有可能的输入都作为测试情况使用 才能以这种方法查出程序中所有的错误 等价类划分 等价列划分设计方法是把所有可能的输入数据 即程序的输入域划分成若干部分 子集 然后从每一个子集中选取少量具有代表性的数据作为测试用例 等价类是指某个输入域的子集合 在该子集合中 各个输入数据对于揭露程序中的错误都是等效的 并合理地假定 测试某等价类的代表值就等于对这一类其他值的测试 等价类划分有两种不同的情况 有效等价类和无效等价类 6条确定等价类的原则 1 在输入条件规定了取值范围或值的个数的情况下 则可以确立一个有效等价类和两个无效等价类 2 在输入条件规定了输入值的集合或者规定了 必须如何 的条件的情况下 则可以确立一个有效等价类和一个无效等价类 3 在输入条件是一个布尔量的情况下 可以确立一个有效等价类和一个无效等价类 4 在规定了输入数据的一组值 假定n个 并且程序要对每一个输入值分别处理的情况下 可以确立n个有效等价类和一个无效等价类 5 在规定了输入数据必须遵守的规则的情况下 可以确立一个有效等价类 符合规则 和若干个无效等价类 从不同角度违反规则 6 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下 则应再将该等价类进一步的划分为更小的等价类 等价类中按以下的3个原则设计测试用例 为每一个等价类规定一个唯一的编号设计一个新的测试用例 使其尽可能多的覆盖尚未被覆盖的有效等价类 重复这一步 直到所有的有效等价类都被覆盖为止 设计一个新的测试用例 使其仅覆盖一个尚未被覆盖的无效等价类 重复这一步 直到所有的无效等价类都被覆盖为止 边界值分析法 首先 应确定边界情况 通常输入和输出等价类的边界 就是应着重测试的边界情况 其次 应但选取正好等于 刚刚大于或刚刚小于边界的值作为测试数据 而不是选取等价类中的典型值或任意值作为测试数据 基于边界值分析方法选择测试用例的原则 1 如果输入条件规定了值的范围 应取刚达到这个范围的边界值 以及刚刚超过这个范围边界的值作为测试输入的数据 2 如果输入条件规定了值的个数 应用最大个数 最小个数 比最小个数少一 比最大个数多一的数作为测试输入的数据 3 根据规格说明的每个输出条件 使用前面的原则1 4 根据规格说明的每个输出条件 使用前面的原则2 5 如果程序的规格说明给出的输入域或输出域是有序集合 则应选取集合的第一个元素和最后一个元素作为测试用例数据 6 如果程序中使用了一个内部数据结构 应当选择这个内部数据结构边界上的值作为测试用例 7 分析规格说明 找出其他可能的边界条件 错误推测法 错误推测法就是根据经验和直觉推测程序中所有可能存在的各种错误 从而有针对性地设计测试用例的方法 基本思路 列举出程序中所有可能有的错误和容易发生错误的特殊情况 根据他们选择测试用例 例如 输入数据和输出数据为0的情况 因果图法 因果图法是一种适合于描述对于多种条件的组合 相应产生多个动作的形式的测试用例设计方法 利用因果图生成测试用例的基本步骤 1 分析软件规格说明描述中那些是原因 那些是结果 并给每个原因和结果赋予一个标识符 2 分析软件规格说明描述的语义 找出原因和结果之间 原因和原因之间的关系 根据这些关系 画出因果图 3 在因果图上用一些记号表明约束或限制条件 4 把因果图转换为判定表 5 把判定表的每一列拿出来作为依据 设计测试用例 功能图法 功能图方法是一种黑盒 白盒混合用例设计方法 功能图模型由状态迁移图和逻辑功能模型构成 状态迁移图用于表示输入数据序列以及相应的输出数据 在状态迁移图中 由输入数据和当前状态决定输出数据和后续状态 逻辑功能模型用于表示在状态输入条件和输出条件之间的对应关系 逻辑功能模型只适合于描述静态说明 输出数据仅由输入数据决定 测试用例则由测试中的一系列状态和在每个状态中必须依靠输入 输出数据满足的一对条件组成 白盒测试用例设计 逻辑覆盖法包含语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖和路径覆盖基本路径测试法 例一 实现一个简单的数学运算 Dima bAsIntegerDimcAsDoubleIf a 0Andb 0 thenc c aEndifIf a 1orc 1 Thenc c 1Endifc b c 程序流程图 a 0andb 0 a 1orc 1 c b c c c 1 c c a M N P J K T T F F 1 T2 T4 F3 F5 续 由这个流程图 A 可以看出 该程序模块有4条不同的路径 P1 1 2 4 P2 1 2 5 P3 1 3 4 P4 1 3 5 将里面的判定条件和过程记录为图B 条件M a 0andb 0 条件N a 1orc 1 这样 程序的4条不同路径可以表示为 P1 1 2 4 MandNP2 1 2 5 MandNP3 1 3 4 Mand NP4 1 3 5 Mand N 语句覆盖 基本思想是 设计若干测试用例 运行被测程序 使程序中每个可执行语句至少执行一次 看到例一 P1包含了所有可执行语句 按照语句覆盖的测试用例设计原则 可以使用P1来设计测试用例 令a 2 b 1 c 6 此时满足条件M a 0andb 0 和条件N a 1orc 1 注 此时c c a 3 这样 测试用例的输入 a 2 b 1 c 6 和对应的输出 a 2 b 1 c 5 覆盖路径P1 判定覆盖 基本思想是 设计若干测试用例 运行被测程序 使得程序中每个判断的取真分支何取假分支至少经历一次 即判断真假值均曾被满足 按照判定覆盖的基本思路 可以这样针对上面提到的测试的用例进行设计 p1和p4可以作为测试用例 其中p1作为取真的路径 p4作为取反的路径 条件覆盖 基本思想是 设计若干测试用例 执行被测程序以后要使每个判断中每个条件的可能取值至少满足一次 对于M a 0取真时T1 取假时F1 b 0取真时T2 取假时F2 对于N a 1取真时T3 取假时F3 c 1取真时T4 取假时F4 根据条件覆盖的基本思路 和这8个条件取值 组合测试用例如下 判定 条件覆盖 基本思想是 设计足够的测试用例 使得判断条件中的所有条件可能至少执行一次取值 同时 所有判断的可能结果至少执行一次 按照这种思想 结合前面的方法思路 在前面的例子中 应该至少保证判定条件M和N各取真 假一次 同时要保证8各条件取值至少执行一次 如下表 条件组合覆盖 基本思想是 设计足够的测试用例 使得判断中每个条件的所有可能至少出现一次 并且每个判断本身的判定结果也至少出现一次 按照条件组合覆盖的基本思想 对于前面的例子 设计组合条件如右表 条件组合覆盖 续 路径覆盖 基本思想是 设计所有的测试用例 来覆盖程序中的所有可能的执行路径 条件组合覆盖结合路径覆盖 基本路径测试法 基本路径测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化创意产业政策法规解读试卷及答案
- 2025年文化创意产业策划师综合素质评价试题及答案解析
- 2025年文化传播专员专业能力考核试卷答案
- 2025年网站内容运营师能力评估试题及答案
- 2025年网络运营经理专业技术能力考试试题及答案
- 2025-2026学年部编版语文五年级上册期末复习计划
- 2025年网络营销与社交媒体推广考试试题及答案解析
- 名师测控上册数学试卷
- 泡脚做数学试卷
- 理科基础数学试卷
- 医院检验科实验室生物安全程序文件SOP
- 《病理检验技术》课程标准
- 茶树斜纹夜蛾的特征习性、暴发原因及防治措施
- 航海英语听力与会话第四版答案
- 氯化铵安全技术说明书MSDS
- DB33∕T 1189-2020 装配式建筑结构构件编码标准
- 《投资学》课程教学大纲
- 上海市小学语文学科学习准备期教学指导意见
- 三相三线两元件电能表48种接线功率对3
- 西北工业大学考试试题空间解析几何
- 鄱阳湖底泥中重金属污染现状评价
评论
0/150
提交评论