软件测试 第二讲 软件测试策略与过程.ppt_第1页
软件测试 第二讲 软件测试策略与过程.ppt_第2页
软件测试 第二讲 软件测试策略与过程.ppt_第3页
软件测试 第二讲 软件测试策略与过程.ppt_第4页
软件测试 第二讲 软件测试策略与过程.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、软件测试,第2讲 软件测试策略与过程,1,李钏 licleadall.cc,软件测试策略与过程,软件测试的策略与方法 软件测试过程 软件测试的分类,软件测试的策略与方法,软件测试的策略与方法,动态测试和静态测试,静态测试 不执行程序来寻找代码中存在的错误或评估代码的过程。由人工来进行,发挥了人的逻辑思维的优势或测试经验。能够批量性地发现问题,并直接定位到缺陷或错误的具体位置。 用静态测试来进行代码检查、静态结构分析。 动态测试 必须生成测试数据来运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析测试质量依赖于测试数据 生成测试数据、分析测试结果的工作量大,使开展测试工作费时、费力、

2、费人,动态测试和静态测试,静态测试 静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估 静态测试包括代码检查、程序结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行 代码检查比动态测试更有效率,能快速找到缺陷,发 现30%70%的逻辑设计和编码缺陷,黑盒测试和白盒测试,什么是黑盒测试(Black-box Testing) 功能测试,数据驱动测试:是在已知软件产品具有何种功能的前提下,用来检验每个功能是否能够正常使用的一个测试方法。 测试的方法和原理:把程序看成是一个不能打开的黑盒子,在不考虑程序内部结构的情况下,测试人员用操作接口的方式进行测试,检查程序能否

3、按照需求指定的功能接收输入数据产生正确的结果。 黑盒测试主要在开发后期进行。基于对需求、设计、用户要求的理解 黑盒测试关注输入、输出的信息域,而不关注软件的内部结构 黑盒测试是穷举输入测试,黑盒测试和白盒测试,什么是白盒测试 白盒测试也称结构测试或逻辑驱动测试 必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行 通过逻辑覆盖、路径覆盖等方式选择测试用例,可以用测试覆盖率评价测试用例 白盒测试法是否可以用穷举逻辑或路径法来测试?,黑盒测试和白盒测试,P,IN,OUT,白盒测试:,黑盒测试:,黑盒测试和白盒测试,黑盒测试主要工作:检查实现功能与实际需求的满足程度;(确认和验

4、证的过程) 白盒测试主要工作: -代码检查(语法、逻辑、书写) -静态结构分析(内部关系如系统结构、函数调用关系等) -功能确认与接口分析(主要是确认过程) -逻辑覆盖率分析(内部的执行路径、提高软件的可靠性) -性能与效率分析 -内存分析(内存泄露、内存越界等),手工测试和自动测试,手工测试 自动测试 适合自动化的测试操作 手工测试和自动测试的比较,手工测试和自动测试,手工测试 传统的测试方法 由测试人员手工编写测试用例 缺点在于测试工作量大,重复多,回归测试难以实现,手工测试和自动测试,自动测试 利用软件测试工具自动实现全部或部分测试工作:管理、设计、执行和报告 自动测试节省大量的测试开销

5、,并能够完成一些手工测试无法实现的测试 自动化测试前必须首先手工测试(调试) 缺点:无法及时进行动态调整和数理分析,例如:计算正确不代表逻辑性上没有错误;,手工测试和自动测试,适合自动化的测试操作 测试用例的生成(包括测试输入,标准输出,测试操作指令等) 测试的执行与控制(包括单机与网络多机分布运行;夜间及假日运行) 测试对象、范围、版本等的控制 测试结果与预期输出的对比 不吻合的测试结果的分析、记录、分类、和通报 测试的统计,报表的产生,手工测试和自动测试的比较,手工完成测试的全部过程无法保证测试的科学性与严密性: 修改的缺陷越多,回归测试越困难 没有人能向决策层提供精确的数据以度量当前的工

6、作进度及工作效率 反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一 测试花费的时间越长,测试的严格性也就越低 难以对不可视对象或对象的不可视属性进行测试。,手工测试和自动测试的比较,自动测试将测试人员从反复、烦杂的测试执行中解放出来,用更多的时间进行测试设计和结果分析 软件测试不可能完全自动化 不能完成所有手工测试任务 无创造性且灵活性差,不能改进测试的有效性 过程中可能会遇到许多意想不到的问题,特别是当软件不稳定时 测试脚本的维护高,软件测试的各个阶段,好处:可以找到软件的Bug,提高软件可靠性! 不好:这些Bug可能让开发人员疯掉!可能项目延期!,软件测试是“不得不做”!,软件测试

7、阶段,测试阶段(SDLC),需求和设计审查,测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等,单元测试,单元测试的对象是程序系统中的最小单元-模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块 单元测试一般由编程人员和测试人员共同完成,而以开发人员为主 单元测试包括代码评审,代码评审可以发

8、现程序50%70%代码的缺陷。,单元测试,单元测试又称为模块测试,什么是模块?并没有严格的定义,不过按照一般的理解,模块应该具有以下的一些基本属性: 名字; 明确规定的功能; 内部使用的数据,或称局部数据; 与其它模块或外界的数据联系; 实现其特定功能的算法; 可被其上层模块调用,也可调用其下属模块进行协同工作。,单元测试,单元测试的任务 模块接口测试对被测模块,检测数据能否正确无误地进入和流出模块; 模块局部数据结构测试检测模块在工作过程中,其内部数据能否保持其完整性,包括内部数据的内容、形式以及相互之间关系; 模块边界条件测试检测在数据边界处,模块能否正常工作; 覆盖测试检测模块运行能否满

9、足特定的逻辑覆盖; 出错处理检测检测模块出错处理是否有效。,单元测试,2.单元测试过程 单元测试一般在编码之后进行。 由于每个模块在整个软件中并不是孤立的,在对每个 模块进行单元测试时,需要考虑它和周围模块的相互 联系。为模拟这一联系,在进行单元测试时,必须设 置若干个辅助测试模块。这些辅助模块分为两种: 驱动模块(driver): 用以模拟被测模块的上级模块, 相当于被测模块的主程序。 桩模块(stub): 用以模拟被测模块的下级模块, 相当于被测模块调用的子模块。,单元测试,被测模块与其相关的驱动模块和桩模块共同构成了一个“测试环境”,如图所示。,集成测试,集成测试,也称组装测试、联合测试

10、、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方式。,集成测试,一些模块单独能够工作,并不能保证连接起来也能正常工作。 程序在某些局部反映不出的问题,在全局上很可能暴露出来,影响功能的发挥。 可能的原因有: 模块相互调用时引入了新的问题; 几个子功能组合起来不能实现主功能; 误差不断积累达到不可接受的程度; 全局数据结构出现错误等。,集成测试,集成测试,独立地测试程序的每个模块,然后再把 它们组合成整个程序的集成测试方法。,把下一个待测试的模块组合到已经测试过的那些模块上去,再进行测试。

11、,从主控模块开始,按照软件的控制层次结构,逐步把各个模块集成在一起。,从最下层的模块开始,按照程序的层次结构,逐渐形成完整的整体。,集成测试,在软件集成阶段,测试的复杂程度远远的超过单元测试的复杂程度。,确认测试,集成测试完成以后,分散开发的模块被联接起来,构成一个完整的程序。其中各模块之间接口存在的种种问题都已消除。于是进入了确认测试阶段。 所谓确认测试,是对照软件需求规格说明书,对软件产品进行评估以确定其是否满足需求规格的过程。,确认测试,经过确认测试,应该为已开发的软件做出结论性的评价。这无非是两种情况之中: (1)经过检验,软件功能、性能及其它要求都已满足需求规格说明书的规定,是一个合

12、格的软件。 (2)经过检验,发现与需求说明书有相当的偏离,我们得到一个缺陷清单,这就需要开发部门和顾客进行协商,找出解决的办法。,系统测试,系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等,系统测试,系统测试实际上是针对系统中各个组成部分进行的综合性检验,很接近我们的日常测试实践。 系统测试的目标不是要找出软件故障,而是要证明系统的性能。 系统测试很困难,需要很多的创造性。那么,系统测试应该由谁来进行测试。我们说: 系统开发人员不能进行系统测试。 系统开发组织不能负责系统测试。 系统

13、测试最好由独立的测试机构完成。,验收测试,验收测试是将最终产品与最终用户的当前需求进行比较的过程,是软件开发结束后,软件产品向用户交付之前进行的最后一次质量检验活动,回答开发的软件产品是否符合预期的各项要求,用户是否接受等问题。 验收测试不只检验软件某方面的质量,还要进行全面的质量检验并决定软件是否合格。因此验收测试是一项严格的正规的测试活动,并且应该在生产环境中而不是开发环境中进行。,各阶段所使用的方法技术,单元测试 白盒、自动、静态 集成测试 白盒、黑盒、自动、静态 系统测试 黑盒、自动、手工 用户验收/确认测试 黑盒、自动、手工,软件测试分类,软件测试的分类,按测试的对象或范围分类, 如单元测试、文档测试、系统测试等 按测试目的分类, 如功能测试、回归测试、性能测试、可靠性测试、

温馨提示

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

评论

0/150

提交评论