实用软件工程课件第9章.ppt_第1页
实用软件工程课件第9章.ppt_第2页
实用软件工程课件第9章.ppt_第3页
实用软件工程课件第9章.ppt_第4页
实用软件工程课件第9章.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

实用软件工程概论 IT企业软件的开发与管理赵池龙zhaochilong 第9章软件测试 本章导读 软件测试学科还不成熟 规范还不够完备 测试人员只能在实践中摸索和总结软件测试经验 再从经验中提取测试方法 用测试方法去指导新的测试实践 要求理解 1 微软的测试经验 2 软件自动测试工具的含义与实现方法 当前自动测试工具的发展水平要求掌握 1 静态测试 动态测试 单元测试 集成测试 Alpha测试 Beta测试的定义与作用 2 黑盒子测试与白盒子测试的定义 特点与应用范围 3 测试计划 和 测试报告 的编写方法 9 1软件测试概论 在软件实现过程中 程序员不但要编写程序代码 而且还要对程序代码进行静态测试和动态测试 单元测试 即模块测试或部件测试 这里所讲的测试 主要是指测试部门的集成测试 软件测试较难实现自动化 至今仍然以人工的黑盒子测试方法为主 白盒子测试为辅 为了实现软件的产品化 IT企业要建立自己独立的测试部门 在企业内部制定测试规范 形成自己的软件产品测试提问单 9 1 1软件测试的作用 1 什么是测试 测试的英文单词为test 即检验或考试之意 例5 1 要测试一个人的智力是否真正存在严重障碍 可以出如下测试题目 1加2等于几 2加2等于几 2减2等于几 如果他的回答全部正确 就不是智力严重障碍 反之可能是智力严重障碍 上述回答问题的人就是被测试的对象 这些用来测试的问题就是测试用例 请他回答问题的过程就是测试过程 定义5 1 所谓测试 就是通过一定的方法或工具 对被测试对象进行检验或考试 目的是发现被测试对象存在的问题 2 什么是软件测试 软件测试是测试中的特例 它的测试对象是人类的智力产品 软件 因此 软件测试是所有测试中最复杂的一种测试 定义5 2 1983年 IEEE定义为 使用人工和自动手段来运行或测试某个系统的过程 其目的在于检验它是否满足规定的需求 或弄清预期结果与实际结果之间的差别 3 软件测试有什么作用 1 使软件满足客户的需求不管是为客户定制软件还是开发软件产品 都是为了满足客户的需求 以定制软件为例 需求报告中双方确认的软件功能 性能和接口 就是客户验收测试 Beta测试 的依据 2 便于控制开发团队的工作状态和工作进度计划质量管理部门 只有通过对文档或程序的测试 才能掌握开发团队真正的工作状态和工作进度 避免犯主观主义和官僚主义的错误 3 便于控制版本的发布对市场发布新版本 事先必须通过单元测试 集成测试 Alpha测试和Beta测试 形成测试文档和测试管理文档 甚至建立测试数据库 只有这些工作都做完了 才达到了预期的要求 新版本才能对外发布 4 什么是软件测试V模型 9 1 2软件评测中心 请问周志明同学 你知道软件测试中心吗 软件评测中心是一种测试产业 它不但要测试 而且要对测试结果发表评论 出具权威性的证明材料 它提供下列4种评测类型 1 确认测试它是严格遵循国家标准的一种符合性测试 以确定软件产品是否满足所规定的要求 测试结果证明软件产品的质量是否符合国家标准 并可作为 双软 软件公司的软件产品登记和软件企业认定 认定的依据 双软 认定的好处是 政府发给双软企业资格证书 在工商和税务管理部门登记备案 享受国家的减免税优惠 软件评测中心 2 验收测试系统在买方的场所安装好后 在卖方的参与下 受买方委托 对系统进行的测试 以便证实是否满足合同的条文 维护买方和卖方双方的合法权益 3 鉴定测试通过测试证明系统符合它的规格说明 可在目标环境中使用 测试结果可作为软件产品成果鉴定的依据 4 登记测试配合软件企业认定和软件产品登记而进行的一种符合性测试 采用固定的测试规范和测试报告 测试结果作为软件产品登记和软件企业认定的依据 登记测试是一种级别较低的测试 确认测试是一种级别较高的测试 9 1 3软件测试分类 1 按软件测试的性质分类按软件测试的性质来分 可分为静态测试和动态测试 静态测试又分为文档测试和代码测试 通常它们能发现60 以上的错误 动态测试又称为运行程序测试 或运行代码测试 它又分为黑盒子测试和白盒子测试 通常它们只能发现40 以下的错误 2 按测试的方式分类按测试的方式来分 可分为覆盖测试 单元测试 功能测试 回归测试 有用测试等 而有用测试又可分为配置测试 文档测试 Alpha测试和Beta测试等 软件测试分类 所谓覆盖测试 就是测试用例要很多 一直多到覆盖被测试程序的所有执行路径 白盒子法 或所有实现功能 黑盒子法 为止 所谓单元测试 就是测试对象是一个程序单元 此单元可大可小 大到一个功能模块 组件或中间件 小到一个函数 子程序 构件或控件 所谓功能测试 就是从功能上对测试的对象进行测试 所谓回归测试 就是用上一次的测试环境与测试用例 对同一个测试对象再实施一次测试 所谓有用测试 就是从实用主义的角度进行测试 所谓配置测试 就是从配置项的角度进行测试 所谓文档测试 就是测试提交的文档 软件测试分类 Alpha测试 就是整个大系统在软件组织内部验收前 由测试部门对它进行的集成测试 因此 Alpha测试实际上是系统的最后一次集成测试 只有通过Alpha测试 才能通过内部验收 产生软件的Beta版本 Beta测试 就是将软件的Beta版本交给大量典型用户来测试 从系统功能 性能 接口等方面来测试Beta版本 软件组织集成用户的测试意见 再对Beta版本进行改进 改进后再由测试部门进行回归测试 通过后对外发布正式版本 集成测试与Alpha测试是有区别的 集成测试在开发过程中要进行多次 每次集成的范围在扩大 测试的范围也在扩大 而Alpha测试就不同了 它必须等系统全部集成完了 或系统全部组装完了 才开始进行测试 若测试成功 则Alpha测试只进行一次即可 软件测试分类 3 按测试手段或方法分类一般分为白盒子测试和黑盒子测试 4 按测试的完整性分类可分为正常测试和异常测试 破坏性测试 一方面是正常调用的测试 也就是看程序是否能在正常调用下完成基本功能 这是最基本的测试 但不是惟一的测试 另一方面就是异常调用的测试 比如高压力负荷下的稳定性测试 用户潜在的异常输入情况下的测试 整个系统局部故障情况下该模块受影响状况的测试 异常请求阻塞资源时的模块稳定测试等 当然并不是要对每段代码都需要进行这种完整性测试 但是必须清醒地认识到完整性测试在整个测试中的地位 软件测试分类 5 微软的测试分类方法 1 将测试分为一致性测试 配置测试 集成测试和强力测试 2 将测试分为从代码角度的覆盖测试和从用户角度的使用测试 覆盖测试包括单元测试 功能测试 提交测试 基本验证测试和回归测试 使用测试包括配置测试 兼容性测试 强力测试 性能测试 文档和帮助文件测试 Alpha和Beta测试 3 将测试分为白盒子测试和白盒子测试 白盒子测试由开发人员进行程序执行路径测试 黑盒子测试包括接受性测试 Alpha和Beta测试 菜单或帮助测试 发行测试 回归测试 功能及系统测试 4 将测试分为手工静态测试和工具自动测试 9 1 4软件测试方法 从测试手段或方法上来说 软件测试一般分为两大方法 功能测试和路径测试 即黑盒子测试和白盒子测试 1 黑盒子测试方法软件的黑盒子测试方法 面向需求分析的功能 性能 接口列表 设计测试用例 搭建测试环境 输入测试用例 运行被测试的系统 获得测试数据 将测试数据与计划数据相比较 取得测试结果 根据测试结果 形成测试报告 该方法适合测试部门的测试人员或用户 对系统进行集成测试 Alpha测试和Beta测试 软件测试方法 2 白盒子测试方法面向程序路径的白盒子测试方法是 对程序的执行路径 搭建测试环境 设计枚举用例 进行枚举测试 取得测试数据 形成测试报告 该方法不适合于大单元 大系统的测试 也不适合于评测中心 测试部门的测试 它只适合于很小的单元测试 例如系统软件与应用软件的核心程序模块测试 以及从事软件底层工作 生产构件的测试人员进行测试 3 结论宏观上用黑盒子测试 微观上用白盒子测试 系统集成人员用黑盒子测试方法对系统进行测试 构件开发人员用白盒子测试方法对构件进行测试 这就是常用的测试方法 软件测试方法 4 白盒子测试举例假设一个程序需要3个整数输入 计算机的字长为16位 则每个整数可能取值的个数有216 3个输入数据的排列组合数为216 216 216个 216 216 216 248 3 1014这就是说 这个程序执行的次数达到了3 1014 才能做到有穷测试 如果程序每执行1次需要1毫秒 那么也需要运行10 000年时间 若将无效的和错误的数据输入也计算在内 则程序的运行时间还要长 一万年太久 谁受得了这种测试 9 2测试案例分析 下面是一个鉴定测试的真实故事 1 测试时间 2000年上半年 2 测试地点 北京市某测试中心 3 测试课题 固定电话本地网计费系统 简称本地网计费系统 的实时模拟计费鉴定测试 4 测试方法 黑盒子测试 5 测试背景 中国是全球第一大电信用户国家 本地网计费系统是以地 市为单位的固定电话计费系统 每个地市有一个电话区号 例如烟台市的区号为0535 南京市的区号为025 本地网计费系统的设计思路与运行方式是 地市集中计费 各县 市 区分散营业 通话一次为一个计费基本单位 每月结算收费一次 每天8小时营业 7 24小时客户热线服务 测试案例分析 6 测试平台 网络平台包括程控交换机 路由器 高档服务器 终端PC机 网络操作系统 数据平台包括数据库管理系统 本地网计费系统的一个月原始话单记录文件 这就是测试用例数据 正确的计费运算时间和输出结果 这就是测试结果的比较数据 7 测试准备 各IT企业将本地网计费程序光盘和文档资料送到北京 等待审查批准和安排测试日期 8 测试过程 先安装本地网计费程序光盘 后运行数据采集 传输 分拣 计费 入库 客户化账单 查询统计程序 最后查看计费处理时间和输出结果 测试结论 若整个计费处理时间和输出结果在允许的范围内 则通过 反之 根据实际情况酌情处理 或取消资格 或下一次补测 测试案例分析 9 计费 许可证 的发放情况 绝大部分的被测试IT企业 都先后获得了参加本地网计费的投标资格 10 实际中标情况 因为中标的因素很多 如投标书制作的质量 客户化和初始化实施方案 讲标人的气质与水平 商务谈判的技巧 维护的能力与水准 公关与关系是否到位等等 而投标资格仅仅是一个技术因素而已 所以有的IT企业虽然有了投标资格 但中标的可能性极小 甚至一无所获 11 技术上的经验教训 由于数据量特大 一个小地市每月几百万条记录 一个大地市每月几千万条记录 计费优惠规则复杂多变 所以电话费月结算时计费处理时间长 缩短处理时间的有效方法是 将计费数据拉到数据库表外面进行 先用C 语言在文件中计费 然后再入库存储到数据库表中 该方法能提高速度6倍 9 3软件测试文档 1 系统软件测试文档微软的系统软件测试计划和测试报告 不十分强调用户需求报告中的功能 性能 接口和界面 而是强调Bug 包括Bug发现 Bug分类 Bug排序 Bug重现 Bug入库 Bug修复 Bug统计等内容 Bug报告都存放在一个Bug数据库中 该Bug数据库在微软产品的开发中占有核心地位 Bug数据库至少要包括以下几个数据项 字段 1 Bug名称 2 被测试的软件产品版本号 3 Bug的优先级及严重性 4 Bug出现的测试操作步骤 5 Bug造成的后果 6 备注或说明 软件测试文档 2 应用软件测试文档 见 测试报告 编写指南 测试文档包括测试计划 测试报告和测试管理三种文档 其中测试计划和测试报告的编制格式大部分地方相同 两者的比较如表9 2所示 实际上 将 发现问题 测试结果 测试时间 测试人 的测试记录数据填入测试计划之中 再加上不符合项列表的内容 原来的测试计划就变成了现在的测试报告 现以公司内部对项目 或产品 进行确认测试 Alpha测试 或用户对项目 或产品 进行验收测试 Beta测试 为例进行论述 无论哪种情况 测试的依据都是 用户需求报告 为此 首先要列出需求报告中的功能点列表 性能点列表 外部接口列表 并以此作为进行测试的具体依据 测试管理文档是 测试报告不符合项跟踪表 9 4软件产品测试提问单 测试提问单是供测试人员在测试过程中 向被测项目 或产品 提出测试问题的思考提纲 借助于它 不但可以对用户需求报告的功能 性能 接口测试提供帮助 而且便于对用户需求报告之外的其他问题进行测试 它有利于公司软件的产品化 标准化和规范化 测试提问单的具体内容 偏重于操作界面 操作过程 操作结果的测试 是对用户需求报告中的功能 性能 接口测试的补充 因为每个IT企业的产品方向不同 测试提问单具有的企业文化特色肯定也不同 测试提问单属于软件产品测试的规程之一 它体现了一种软件企业文化 仅供测试人员参考 9 5本章小结 软件开发属于重智力劳动 软件产品属于智力产品 它具有许多特殊性 必须通过各种手段进行各种测试 尽量及早发现问题 为纠错工作创造条件 因此 软件测试在美国受到高度重视 测试人员在IT企业中占很大比例 如微软程序员与测试员的比例为1 2左右 IBM程序员与测试员的比例为1 1左右 但是 国内有些IT企业对软件测试不够重视 不但测试人员少 而且待遇低 针对这种情况 要特别强调测试工作的重要性 更要重视测试人员的作用 在测试分类和测试方法中 重点要掌握白盒子测试和黑盒子测试 尤其是黑盒子测试

温馨提示

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

评论

0/150

提交评论