




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章测试 基本概念单元测试集成测试验收测试设计测试方案调试软件可靠性日立预测法自动测试工具 基本概念 7 1 1软件测试的目标7 1 2黑盒测试和白盒测试7 1 3软件测试的步骤7 1 4测试阶段的信息流 基本概念 软件测试的目标测试是为了发现程序中的错误而执行程序的过程只能尽可能查错 不能证明程序中没有错测试员与程序员不应是同一个人 基本概念 黑盒测试和白盒测试黑盒测试 已经知道产品应该具有的功能 检验每个功能是否都能正常使用 功能测试白盒测试 已经知道产品内部工作过程 检验产品内部动作是否按规定正常使用 结构测试 基本概念 软件测试的步骤模块测试单元测试子系统测试测试模块的接口系统测试和子系统测试合称集成测试验收测试平行运行 基本概念 测试阶段的信息流 单元测试 7 2 1单元测试考虑7 2 2单元测试过程 单元测试 单元测试考虑模块接口内部检查 传输参数的数目 属性 单位 次序是否匹配 全程变量的定义是否一致 只做输入的变元有无被修改外部检查 打开 结束 关闭文件的操作 文件和属性 I O错误处理 输出拼写局部数据结构数据说明 declaration 初始化与缺省值的设置 变量名拼写 数据类型的相容性 上 下溢出及地址异常 单元测试 单元测试考虑重要的执行通路常见的错误计算次序问题不同类型混合运算 例 比较类型不同的量 初值设置错误精度问题 例 精度不够导致两变量不可能相等 而程序中等待相等条件的出现 表达式错误循环终止条件错误 例 次数差1 或陷入死循环 单元测试 单元测试考虑出错处理通路常见的问题输出的错误信息难以理解 不能确定错误位置描述的错误与实际错误不符处理之前系统已经干预处理不正确边界条件单元测试中最后 也可能是最重要的任务 因为软件常在其边界失效 单元测试 单元测试过程代码审查测试软件 集成测试 非渐增式测试分别测试每个模块 再放在一起结合成所要的程序渐增式测试将下一个要测试的模块同以测试好的模块放在一起测试 类推结合成所要的程序分为自顶向下和自底向上两种方法 集成测试 两者比较渐增式测试可以较早发现模块间的接口错误非渐增式测试最后才组装 因此错误发现得晚 非渐增式测试中发现错误后难以诊断定位渐增式测试中 出现的错误往往跟最新加入的模块有关 渐增式测试在不断集成的过程中使模块不断在新的条件下受到新的检测 测试更彻底 渐增式测试较非渐增式测试费时 非渐增式测试可以同时并行测试所有模块 能充分利用人力 集成测试 自顶向下结合步骤 集成测试 自顶向下结合步骤测试顶端模块 用存根程序 stub 代替直接附属的下层模块根据深度优先或宽度优先的策略 每次用一个实际模块代换一个stub在结合进一个模块的同时进行测试回归测试 全部或部分地重复以前做过的测试 集成测试 自顶向下结合优点在早期即对主要控制及关键的抉择进行检验问题Stub只是对低层模块的模拟 测试时没有重要的数据自下往上流 许多重要的测试须推迟进行 而且在早期不能充分展开人力 集成测试 自底向上结合步骤 集成测试 自底向上结合步骤把低层模块组合成族 每族实现一个子功能用驱动程序 Driver 协调测试数据的I O 测试子功能族去掉Driver 自下而上把子功能族合成更大的子功能族 集成测试 不同集成测试策略的比较改进的自顶向下测试方法混合法两种策略的优 缺点刚好互补 但单用其中任一种都不实际 通常根据软件的特点将二者混用 验收测试 7 4 1验收测试的范围7 4 2软件配置复查 验收测试 验收测试的范围某些已经测试过的纯粹技术性的特点可能不需要再次测试对用户特别感兴趣的功能或性能 可能需要增加一些测试 通常主要使用生产中的实际数据进行测试 可能需要设计并执行一些与用户使用步骤有关的测试软件配置复查 系统测试 SystemTesting 系统测试 是将通过确认测试的软件 作为整个基于计算机系统的一个元素 与计算机硬件 外设 某些支持软件 数据和人员等其它系统元素结合在一起 在实际运行环境下 对计算机系统进行一系列的组装测试和确认测试 系统测试的目的在于通过与系统的需求定义作比较 发现软件与系统的定义不符合或与之矛盾的地方 测试和 测试 在软件交付使用之后 用户将如何实际使用程序 对于开发者来说是无法预测的 测试是由一个用户在开发环境下进行的测试 也可以是公司内部的用户在模拟实际操作环境下进行的测试 测试的目的是评价软件产品的FLURPS 即功能 局域化 可使用性 可靠性 性能和支持 尤其注重产品的界面和特色 测试可以从软件产品编码结束之时开始 或在模块 子系统 测试完成之后开始 也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始 测试是由软件的多个用户在实际使用环境下进行的测试 这些用户返回有关错误信息给开发者 测试时 开发者通常不在测试现场 因而 测试是在开发者无法控制的环境下进行的软件现场应用 在 测试中 由用户记下遇到的所有问题 包括真实的以及主观认定的 定期向开发者报告 测试主要衡量产品的FLURPS 着重于产品的支持性 包括文档 客户培训和支持产品生产能力 只有当 测试达到一定的可靠程度时 才能开始 测试 它处在整个测试的最后阶段 同时 产品的所有手册文本也应该在此阶段完全定稿 设计测试方案 7 5 1逻辑覆盖7 5 2等价划分7 5 3边界值分析7 5 4错误推测7 5 5实用测试策略 设计测试方案 逻辑覆盖 适用于白盒测试语句覆盖 每个语句至少执行一次判定覆盖 在语句覆盖的基础上 每个判定的每个分支至少执行一次条件覆盖 在语句覆盖的基础上 使每个判定表达式的每个条件都取到各种可能的结果判定 条件覆盖 即判定覆盖 条件覆盖条件组合覆盖 每个判定表达式中条件的各种可能组合都至少出现一次点覆盖 边界覆盖 路径覆盖 由弱到强 设计测试方案 逻辑覆盖语句覆盖A 2 B 0 X 4若AND错写为OR 或X 1错写为X 1 则错误无法由上例测出 设计测试方案 逻辑覆盖判定覆盖A 3 B 0 X 3A 2 B 1 X 1若X 1错写为X 1 仍然无法被测出 设计测试方案 逻辑覆盖条件覆盖A 2 B 0 X 4 满足A 1 B 0 A 2 X 1 A 1 B 1 X 1 满足A 1 B 0 A 2 X 1 设计测试方案 逻辑覆盖条件组合覆盖A 1 B 0 A 1 B 0A 1 B 0 A 1 B 0A 2 X 1 A 2 X 1A 2 X 1 A 2 X 1仍有未测到的路径 T F 设计测试方案 逻辑覆盖边覆盖A 3 B 0 X 3 T F A 2 B 1 X 1 F T 设计测试方案 逻辑覆盖路径覆盖A 1 B 1 X 1 F F A 1 B 1 X 2 F T A 3 B 0 X 1 T F A 2 B 0 X 4 T T 对一个具有多重选择和循环嵌套的程序 不同的路径数目可能是天文数字 给出一个小程序的流程图 它包括了一个执行20次的循环 包含的不同执行路径数达520条 对每一条路径进行测试需要1毫秒 假定一年工作365 24小时 要想把所有路径测试完 需3170年 假设一个程序P有输入量X和Y及输出量Z 在字长为32位的计算机上运行 若X Y取整数 按黑盒方法进行穷举测试 可能采用的测试数据组 232 232 264如果测试一组数据需要1毫秒 一年工作365 24小时 完成所有测试需5亿年 设计测试方案 等价划分划分经验如果规定了输入值的范围 则可划分出一个有效的等价类 输入值在此范围内 两个无效的等价类 输入值小于最小值或大于最大值 如果规定了输入数据的个数 则类似地也可以划分出一个有效的等价类和两个无效的等价类如果规定了输入数据的一组值 而且程序对不同输入值做不同处理 则每个允许的输入值是一个有效的等价类 此外还有一个无效的等价类 任一个不允许的输入值 设计测试方案 等价划分划分经验如果规定了输入数据必须遵循的规则 则可以划分出一个有效的等价类 符合规则 和若干个无效的等价类 从各种不同角度违反规则 如果规定了输入数据为整型 则可以划分出正数 零和负整数等三个有效类如果程序的处理对象是表格 则应该使用空表 以及含一项或多项的表 设计测试方案 等价划分有效输入的等价类有 1 1 6个数字字符组成的数字串 最高位数字不是零 2 最高位数字是零的数字串 3 最高位数字左邻是负号的数字串 无效输入的等价类有 4 空字符串 全是空格 5 左部填充的字符既不是零也不是空格 6 最高位数字右面由数字和空格混合组成 7 最高位数字右面由数字和其他字符混合组成 8 负号与最高位数字之间有空格 例如 在程序的规格说明中 对输入条件有一句话 项数可以从1到999 则有效等价类是 1 项数 999 两个无效等价类是 项数 1 或 项数 999 在数轴上表示成 设计测试方案 等价划分合法输出的等价类有 9 在计算机能表示的最小负整数和零之间的负整数 10 零 11 在零和计算机能表示的最大正整数之间的正整数 非法输出的等价类有 12 比计算机能表示的最小负整数还小的负整数 13 比计算机能表示的最大正整数还大的正整数 设计测试方案 边界值分析程序最容易在边界发生错误通常与等价划分结合进行 设计测试方案 错误推测思路列出可能有的错误列出容易发生错误的特殊情况根据直觉 经验工具 常见错误清单 判定表等 设计测试方案 实用测试策略在任何情况下都应该使用边界值分析的方法必要时用等价划分法补充必要时再用错误推测法补充对照程序逻辑 检查测试方案 可根据对程序可靠性的要求采用不同的逻辑覆盖标准 必要时补充一些测试方案 调试 7 6 1调试技术7 6 2调试策略 调试 调试技术输出存储器内容以八进制或十六进制的形式印出存储器的内容 缺点输出信息量极大 不易解读且大多无用输出的是程序在某一时刻的静态情况 且往往不是出错时的状态 调试 调试技术打印语句缺点可能输出大量需要分析的信息 对于大型程序系统来说情况更是如此必须修改源程序才能插入打印语句 但是这可能改变了关键的时间关系 从而既可能掩盖错误 也可能引进新的错误 调试 调试策略试探法凭经验猜测 回溯法由症状最先出现的地方 沿控制流向回检查 适用于小型程序 对分查找法在关键点插入变量的正确值归纳法从错误症状中找出规律 推断根源演绎法普通 特殊从假设中逐步排除 精化 从而导出错误根源 软件可靠性 7 7 1基本概念7 7 2估算平均无故障时间的方法7 7 3程序正确性证明 软件可靠性 基本概念可靠性程序在给定的时间间隔内 按照说明书的规定 成功地运行的概率 可用性程序在给定的时间点 按照说明书的规定 成功地运行的概率正确性程序的功能正确 软件可靠性 估算平均无故障时间的方法平均无故障时间MTTF K为经验常数 典型值约在200左右 ET为测试前故障总数 IT为程序长度 机器指令总数 为测试 包括调试 时间 EC 为时间从0至 期间改正的错误数 软件可靠性 程序正确性证明正确性证明只证明程序功能正确 但不能验证动态特性 证明过程本身也可能发生错误 日立预测法 7 8 1测试完成率模型7 8 2错误发现率模型7 8 3使用日立预测法的步骤 日立预测法 测试完成率模型 测试时间使用率 所用时间 总时间 第一阶段 第二阶段 第三阶段 测试用例完成率 已完成用例 全部用例 工程的成败取决于第一阶段向第二阶段转移断点的位置 一般成功的工程其转折点位于15 若超过55 则破产不可避免 日立预测法 错误发现率模型 峰值时间 成功的工程 失败的工程 极坏的工程 刚过峰值点后曲线的导数关系到工程的成败 若导数值大于 0 3 则失败不可避免 自动测试工具 7 9 1测试数据生成程序7 9 2动态分析程序7 9 3静态分析程序7 9 4文件比较程序 自动测试工具 测试数据生成程序功能自动生成大量输入数据用途测试系统在实际环境中的性能 例如测试数据库管理系统 自动校核系统输出 若输出数据的语法可以被形式地说明 缺点不能自动生成预期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力系统自动化技术习题集
- 音乐常识知识考试试题及答案
- 彝语文考试试题及答案
- 六一优惠玩乐活动方案
- 医学知识考试试题及答案
- 六一剪窗花活动方案
- 六一婴儿活动方案
- 六一室内活动方案
- 六一活动小市集活动方案
- 六一活动户外艺术活动方案
- 硫化氢中毒现场处置方案
- 2025年陇南村文书考试题及答案
- 马克思主义基本原理与科技创新的结合心得体会
- 美发店投资入股协议书8篇
- 第四单元 课题3 物质组成的表示教学设计-2024-2025学年九年级化学人教版(2024)上册
- 2024年中国软件行业基准数据 (CSBMK-202410)
- 国家开放大学本科《商务英语4》一平台机考真题及答案(第四套)
- 公共政策分析概论 课件 第3章 政策主体、政策客体与政策环境
- 《学前教育教育研习》课程教学大纲
- 医疗美容行业美容管理流程标准化解决方案
- 【MOOC】世界贸易组织法-上海对外经贸大学 中国大学慕课MOOC答案
评论
0/150
提交评论