hw软件测试(周)4.ppt_第1页
hw软件测试(周)4.ppt_第2页
hw软件测试(周)4.ppt_第3页
hw软件测试(周)4.ppt_第4页
hw软件测试(周)4.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

Unit4软件的测试过程 概述 4 1概述 测试生命周期称为软件测试过程模型 POCERM 其内容如下所示 1 拟定软件测试计划 Plans 2 编制软件测试大纲 Outlines 3 设计和生成测试用例 testCasegeneration 4 实施测试 Execution 5 生成软件测试报告 softwaretestingReports 4 2测试计划 IEEE829 1998软件测试文档编制标准软件测试计划文档模板目录1 测试计划标识符2 介绍3 测试项4 需要测试的功能5 方法 策略 6 不需要测试的功能7 测试项通过 失败的标准8 测试中断和恢复的规定9 测试完成所提交的材料10 测试任务11 环境需求12 测试人员的工作职责13 人员安排与培训需求14 进度表15 潜在的问题和风险16 审批 4 3测试设计 测试设计目的是为每一个测试需求确定测试用例集 并且确定执行测试用例的测试过程 测试设计具体如下 1 对每一个测试需求 确定其需要的测试用例 2 对每一个测试用例 确定其输入及预期结果 3 确定测试用例的测试环境配置 需要的驱动程序 4 编写测试用例文档 5 对测试用例进行同行评审 4 4测试实施过程 软件测试实施一般经历如下3个阶段 1 初测期 测试主要功能和关键的执行路径 排除主要障碍 2 细测期 依据测试计划和测试大纲 测试用例 逐一测试大大小小的功能 方方面面的特性 性能 用户界面 兼容性 可用性等等 预期可发现大量不同性质 不同严重程度的错误和问题 3 回归测试期 系统已达到稳定 在一轮测试中发现的错误已十分有限 复查已知错误的纠正情况 确认未引发任何新的错误时 终结回归测试 三个测试期阶段图示 软件测试执行过程按以下步骤进行 即单元测试 集成测试 确认测试 系统测试 验收测试和回归测试 4 4 1单元测试 什么是单元测试 单元测试是对软件基本组成单元进行测试 主要是为了发现单元内部可能存在的各种错误和不足主要工作分为两个步骤 人工静态检查和动态执行跟踪 什么是单元 一个函数或几个函数的集合类或类内成员函数一个菜单 一个显示界面或者能够独立完成的具体的功能等 单元测试的目的验证代码能否达到详细设计的预期要求 发现代码中不符合编码规范的地方 准确定位发现的错误 以便排除错误 单元测试环境由于一个模块或一个方法 Method 并不是一个独立的程序 在考虑测试它时要同时考虑它和外界的联系 因此要用到一些辅助模块 来模拟与所测模块相联系的其他模块 一般把这些辅助模块分为两种 1 驱动模块 driver 相当于所测模块的主程序 2 桩模块 stub 用于代替所测模块调用的子模块 那么 所测模块和与它相关的驱动模块及桩模块共同构成了一个 测试环境 单元测试的主要任务 1 模块接口测试 1 调用所测模块时的输入参数与模块的形式参数在个数 属性 顺序上是否匹配 2 所测模块调用子模块时 它输入给子模块的参数与子模块中的形式参数在个数 属性 顺序上是否匹配 3 是否修改了只做输入用的形式参数 4 调用标准函数的参数在个数 属性 顺序上是否正确 5 全局变量的定义在各模块中是否一致 注 主要关注单元中的输入和输出 2 局部数据结构测试 1 数据类型说明是否正确 2 是否使用了尚未赋值或尚未初始化的变量 3 是否使用了错误的初始值或错误的默认值 4 错误的变量名 如拼写错误或书写错误 注 主要关注与被测单元内部相关的数据的类型 3 路径测试 1 运算的优先次序不正确 2 错误的初始化 精度不够等 3 进行比较的两数类型不同 4 循环次数 差1错 5 循环终止条件错 6 对循环变量的修改不恰当等等 不正确的计算 不正确的比较和控制流 注 主要关注程序的逻辑分支问题 4 错误处理测试 1 对运行发生的错误描述难以理解 2 所报告的错误与实际遇到的错误不一致 3 出错后 在错误处理之前就引起系统的干预 4 提供的错误信息不足 以至于无法找到错误的原因 总之 一个好的设计应能预见各种出错条件 并进行适当的出错处理 注 主要针对于程序中的错误提示问题 5 边界条件 单元测试误区1 单元测试是一种浪费时间的工作 现在要赶进度 时间来不及了 随便做做应付领导 2 我是个很棒的程序员 我是不是可以不进行单元测试 注 主要针对于单元测试中的边界问题 砌墙 4 4 2集成测试 什么是集成测试集成测试是在单元测试的基础上 将所有模块按照概要设计要求组装成为子系统或系统所进行的测试集成测试关注的重点模块接口的数据交换各子功能组合起来能否达到预期要求的父功能模块间是否有不利影响全局数据结构单个模块的误差是否会累积放大 集成方法大爆炸集成Bigbangintegration allmoduletogether 自顶向下集成Topdownintegration fromhigherlevels notestdriversareneeded 自底向上集成Bottomupintegration fromlowerlevels Noteststubsnecessary 三明治集成Sandwichtesting combinationofbottom upandtop down 大爆炸集成1 目的尽可能缩短测试时间 使用最少的测试用例验证系统 2 定义大爆炸集成也称为一次性组装或整体拼装 这种集成测试策略的做法就是把所有通过单元测试的模块一次性集成到一起进行测试 不考虑组件之间的互相依赖性及可能存在的风险 3 具体方法举例来说 假设要对某个系统的部分功能进行测试 其功能分解如图 自顶向下集成自顶向下的集成测试就是按照系统层次结构图 以主程序模块为中心 从顶层控制 主控模块 开始 自上而下按照深度优先或者广度优先策略 对各个模块一边组装一边进行测试 自顶向下集成测试的步骤 以主模块为被测试模块 主模块的直接下属模块则用桩模块来代替 采用深度优先或宽度优先策略 用实际模块替换相应的桩模块 每次仅替换1个或少量几个 它们的直接下属模块则用桩模块来代替 与已测试的模块或子系统集成为新的子系统 对新形成的子系统进行测试 若所有的模块都已集成到系统中 则结束集成 否则转步骤2 自底向上集成自底向上集成是从系统层次结构图的最底层模块开始按照层次结构图 逐层向上进行组装和集成测试的方式 自底向上集成测试的步骤 为最底层模块开发驱动模块 对最底层模块进行测试 用实际模块替换驱动模块 与其直属子模块集成为一个子系统 为新形成的子系统开发驱动模块 对该子系统进行测试 若该子系统已对应为主控模块 则结束集成 否则转步骤2 三明治集成 混合集成 1 目的综合利用自顶向下和自底向上两种集成测试策略的优点2 定义三明治集成是一种混合增殖式测试策略 综合了自顶向下和自底向上两种集成方法 把系统划分成三层 中间一层为目标层 目标层上采用自顶向下集成 目标层下采用自底向上集成 其他集成方法核心系统先集成高频集成方式集成测试小结 集成测试过程中的两个重要里程碑在集成测试过程中的两个重要的里程碑是功能冻结和代码冻结的确定 这两个里程碑界定出回归测试期的起止界限 功能冻结 Function FeatureFreeze 经过测试 符合设计要求 确认系统功能和其他特性均不再做任何改变 代码冻结 CodeFreeze 理论上 在无错误时冻结程序代码 但实际上 代码冻结只标志系统的当前版本的质量已达到预期的要求 冻结程序的源代码 不再对其做任何修改 这个里程碑是设置在软件通过最终回归测试之后 单元测试与集成测试区别测试对象 单元测试对象是实现具体功能的单元 一般对应详细设计中所描述的设计单元 集成测试是针对概要设计所包含的模块以及模块组合进行的测试 测试方法 单元测试所使用的主要测试方法是基于代码的白盒测试 而集成测试所使用的主要测试方法是基于功能的黑盒测试 测试时间 集成测试要晚于单元测试 所以单元测试的好坏直接影响着集成测试 测试内容 单元测试主要包括模块内程序的逻辑等方面 集成测试主要是验证各个接口 接口之间的数据传递关系 模块组合后能否达到预期效果 4 4 3确认测试 什么是确认测试确认测试 ValidationTesting 的任务是验证软件的功能 性能及其他特性是否达到需求规格说明书的要求 确认测试一般包括有效性测试和软件配置复查 1 有效性测试有效性测试是在模拟的环境下 通过执行黑盒测试 验证被测软件是否满足需求规格说明书中的需求 2 软件配置复查软件配置复查的目的是保证软件配置 在软件工程过程中产生的所有信息项 如文档 报告 程序 表格 数据等 称为软件配置 的所有成分齐全 各成分的质量都符合要求 具有维护阶段所必需的细节 且已编排好分类的目录 确认测试的标准所有的功能需求都得到了满足所有性能需求都达到了文档是正确且合理的其他的需求可移植性兼容性错误恢复可维护性 4 4 4系统测试 什么是系统测试系统测试是将通过确认测试的软件 作为整个基于计算机系统的一个元素 与计算机硬件 外设 支持软件 数据等其它系统元素结合在一起 在实际运行 使用 环境下所进行的一系列测试活动 系统测试的目的通过与系统的需求定义比较 检查软件是否存在与系统定义不符合或与之矛盾的地方 以验证软件系统的功能和性能等满足其规约所指定的要求 4 4 5验收测试 Acceptancetesting 验收测试 系统开发生命周期方法论的一个阶段 这时相关的用户和 或独立测试人员根据测试计划和结果对系统进行测试和接收 它让系统用户决定是否接收系统 它是一项确定产品是否能够满足合同或用户所规定需求的测试 验收测试的常用策略Alpha测试Beta测试 测试是由一个用户在开发环境下进行的测试 也可以是公司内部的用户在模拟实际操作环境下进行的测试 测试的目的是评价软件产品的FLURPS 即功能 局域化 可使用性 可靠性 性能和支持 尤其注重产品的界面和特色 测试可以从软件产品编码结束之时开始 或在模块 子系统 测试完成之后开始 也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始 测试是由软件的多个用户在实际使用环境下进行的测试 这些用户返回有关错误信息给开发者 测试时 开发者通常不在测试现场 因而 测试是在开发者无法控制的环境下进行的软件现场应用 在 测试中 由用户记下遇到的所有问题 包括真实的以及主观认定的 定期向开发者报告 测试主要着重于产品的支持性 包括文档 客户培训和支持产品生产能力 4 4 6回归测试 回归测试在软件生命周期中的任何一个阶段 只要软件发生了改变 就可能给该软件带来问题 每当软件发生变化时 就必须进行回归测试 重新测试原有的功能 以便确定修改是否达到了预期的目的 检查修改是否损害了原有的正常功能 回归测试的使用时机 a 改错后进行回归测试 b 加入新代码后进行回归测试 冒烟测试 smoketest 的来历 从电路板测试得来的 因为当电路板做好以后 首先会加电测试 如果板子没有冒烟再进行其它测试 否则就必须重新来过 类似的如果冒烟测试没有通过 那么这个build也会返回给开发队伍

温馨提示

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

评论

0/150

提交评论