测试原理与方法-基础篇_第1页
测试原理与方法-基础篇_第2页
测试原理与方法-基础篇_第3页
测试原理与方法-基础篇_第4页
测试原理与方法-基础篇_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、测试原理与方法 基础篇1内容梗概 测试概念 测试的目的 测试的原则 测试的分类 测试的方法 测试用例 用例的设计方法2测试的概念 什么是测试在IEEE610.12-1990 标准中是这样定义的:测试是在特定条件下操作系统或组成,观察记录结果,并对该系统或组成各方面做出客观评价的过程。它的核心内容:测试是带着“什么应该是”的疑问去比较“是什么”的过程3软件测试Software Testing 软件测试的经典定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 一种实际输出与预期输出间的审核或者比较过程 一种用来促进鉴定软件的正确性、完整性、安

2、全性和质量的过程 软件测试活动包括:制定计划、分析风险、设计和创建测试用例、关注测试执行等4软件测试的目的5u测试的目的:利用最少的时间和付出,系统地揭示不同类型的错误测试的目的:利用最少的时间和付出,系统地揭示不同类型的错误软件测试是为了发现错误而执行程序的过程目的是为了:通过“证明程序有错”,从而排错,最终证明软件功能的实现符合功能需求定义验证性能方面的表现是否能够被接受测试数据可以提供全面、周详的软件可用性和质量方面的评测指标软件测试的原则从用户的角度出发 通过软件测试充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品从开发者的角度出发 表明软件产品不存在错误,已经正确地实现了用

3、户的需求,确立人们对软件质量的信心6软件测试的特点 测试是不完全的 测试具有免疫性 测试是泛型概念(全程测试) 80-20 原则 为效益而测试 缺陷的必然性 软件测试必须有预期结果 事后分析 7软件测试的基本流程图8软件配置软件配置测试环境配置测试环境配置测试测试测试结果测试结果判断判断错误错误期望结果期望结果错误率数据错误率数据排除程序故障排除程序故障修改修改可靠性模型可靠性模型预计可靠度预计可靠度软件测试的分类 从是否需要运行被测软件的角度,分为:静态测试动态测试 从是否针对系统的内部结构和具体实现算法的角度,分为白盒测试黑盒测试9静态测试不运行被测程序本身,也不需要对代码编译、链接和生成

4、可执行文件,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性,找出欠缺和可疑之处。例:不匹配的参数不适当的循环嵌套和分支嵌套不允许的递归未使用过的变量空指针的引用可疑的计算等等静态测试结果可用于进一步的查错,并为测试用例选取提供指导。10静态测试11p代码检查Desk checking 桌面检查由程序员自己检查自己编写的程序,对源程序代码进行分析,检验,并补充相关的文档。检查项目有:检查变量的交叉引用表、检查标号的交叉引用表、检查子程序、宏、函数、等值性检查、常量检查、标准检查、风格检查和补充文档等Inspection 代码审查通过阅读、讲解、讨论和模拟运行的方式,对程序进行

5、静态分析的过程。根据软件设计文档,通过阅读程序发现软件缺陷Walk-Through 代码走查人们借助于测试用例的媒介作用,对程序的逻辑和功能提出各种疑问,结合问题开展热烈的讨论和争议,以求发现更多的问题Review 技术评审开发组、测试组和相关人员(产品经理等)联合进行,也是采用讲解、提问并使用编码模板进行的查找错误的活动p静态分析计算机辅助的静态分析方法。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析的对象是软件程序,程序设计语言不同,相应的静态分析工具也就不同。动态测试通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。 构造测试实例 执行

6、程序 分析程序的输出结果 12白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。盒子指的是被测试的软件,白盒指的是盒子是可视的,清楚盒子内部的东西以及里面是如何运作的。全面了解程序内部逻辑结构、对所有逻辑路径进行测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。白盒测试的主要方法:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次; 在循环的边界和运行界限内执

7、行循环体; 测试内部数据结构的有效性等。 13白盒测试一些明显且表面的问题能够轻而易举地通过黑盒测试的手段发现,但对于设计上的缺陷和错误,常规的黑盒测试方法往往显得力不从心,或是需要巨大地投入才能小有收获。而白盒测试则可以从代码级别对设计问题进行检查 对逻辑错误和不正确的假设条件错误做原始的排查 发现关于执行路径的条件判断错误和一些设计上的明显错误 发现一些明显的排版错误而导致的逻辑判断上的错误14白盒测试方法方法一:基本路径方法一:基本路径测试测试 画出程序控制流图,通过分析控制构造的环路复杂性,从而设计出测试用例的方法。1.流向图符号2.各种复杂嵌套条件的组合3.导出用例4.图表矩阵方法二

8、:控制结构测试方法二:控制结构测试条件测试数据流测试循环测试15白盒测试方法:基本路径测试16基本流向图符号白盒测试方法:基本路径测试17流向图组合符号白盒测试方法:基本路径测试18嵌套流向图符号白盒测试方法:基本路径测试19流向图连接矩阵白盒测试方法:控制结构测试定义:关系式简单条件:布尔变量和关系式复合条件:两个或更多的简单条件和布尔运算和符号等布尔公式:没有关系式的条件测试策略:分支测试:测每一个分支范围测试:测每一个关系运算分支和关系运算测试20条件测试:目的是演练程序模块中的所有逻辑条件白盒测试方法:控制结构测试21数据流测试:按照定义变量的位置和用途选择测试路径白盒测试方法:控制结

9、构测试22常见循环模型Concatenate嵌套的连接的无组织的软件测试的分类:黑盒测试黑盒测试也称功能测试或数据驱动测试。在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求说明的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。可以发现的问题没实现或实现不正确的功能界面错误数据结构或外部数据访问错误性能错误等等23常规黑盒测试方法介绍功能测试 (functional testing

10、)系统测试(System testing)端到端测试 (end-to-end testing)兼容性测试 (Compability testing)负荷试验 (load testing)压力测试 (stress testing)性能测试 (performance testing)可用性测试 (usability testing) 恢复测试 (recovery testing) 安全测试 (security testing) 测试 (alpha testing) 测试 (beta testing) 24测试用例指对某一功能点如何进行测试的描述。一般多个测试用例的集合称之为测试用例集,或者测试规格

11、。测试用例应该包含的元素: 所属模块 相关需求 用例标题 前置条件 步骤 预期结果 用例类型 优先级25测试用例在软件测试中的作用 1、指导测试的实施2、规划测试数据的准备 3、编写测试脚本的设计规格说明书 4、评估测试结果的度量基准 5、分析缺陷的标准 26黑盒用例的设计方法1. 等价类划分法2. 边界值分析法3. 因果图法4. 对比测试法5. 错误推测法 6. 逻辑覆盖法 27等价类划分法等价类划分:是一种完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。等价类合理地假设:某个等价类的代表值

12、,与该等价类的其他值,对于测试来说是等价的。因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。28边界值分析法 对取值范围两边的值进行检查 例:变量的取值范围定义为1100,那我们对于其边界值得检查即为0,1,n(1100之间数值的等价类), 100,101(100的等价类)29因果图法提供一种简明的逻辑关系表示和相对应的响应30因果图法31因果关系图的简化符号因果关系图的简化符号比较法排查版本问题的方法:用同样的测试数据对不同版本的输出结果进行比较很多版本平行测试实时的比对测试结果排查软件还是硬

13、件问题的方法:不同的硬件相同的软件比较相同的硬件不同的软件比较测试排查32黑盒用例设计的常规策略 用边界值分析法和等价分类法提出基本的测试用例; 用猜测法补充新的测试用例; 如果在程序的功能说明中含有输入条件的组合,宜在一开始就用因果图法,然后再按以上1、2两步进行。 33软件生存期模型34瀑布模型n各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入每项活动均处于一个质量环(输入- -处理处理- -输出输出- -评审)中。评审)中。35需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与

14、系统测试实现与单元测试实现与单元测试运行与维护运行与维护快速原型模型特点 快速开发工具 循环 低成本种类 渐进型 抛弃型36需求分析原型开发最终系统设计原型评价最终系统实现用户反馈演化模型37客户评价原型客户评价原型快速设计快速设计停止停止开始开始螺旋模型38螺旋模型n螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。n螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。 u制定计划 确定软件目标,选定实施方案,弄清项目开发的限制条件;u风险分析 分析所选方案,考虑如何识别和消除风险;u实施工程 实施软件开发u客户评估 评价开发,提出修正建议。39增量模

15、型n把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。 n每个构件由多个相互作用的模块构成,并且能够完成特定的功能。n增量开发方法的新演进版本叫做 “极限程序设计(eXtreme Programming)”。 40定义定义基本需求基本需求将需求赋予将需求赋予增量构件增量构件设计系统设计系统体系结构体系结构开发开发增量构件增量构件确认确认增量构件增量构件集成集成增量构件增量构件确认系统确认系统喷泉模型41需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段喷泉模型n体现了迭代和无间隙的特性。n系统某个部分常常重复工作多

16、次,相关对象在每次迭代中随之加入演进的软件成分。n无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。n喷泉模型是对象驱动的过程。42智能模型43用户要求用户要求需求分析需求分析概要设计概要设计详细设计详细设计程序编码程序编码测试测试维护维护支持需求支持需求 分析的分析的专家系统专家系统支持软件支持软件 设计的设计的专家系统专家系统 支持测试支持测试的专家系统的专家系统 支持维护支持维护的专家系统的专家系统智能模型n智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。n该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。n为此,建立了各个阶段的知

17、识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。 44构件集成模型45构件集成模型特点面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法 软件重用46V 模型47迭代式开发模型48迭代模型和瀑布模型区别49由于瀑布模型的 软件开发模型软件对比模型模型名称名称瀑布模型瀑布模型 模形模形 迭代开发模型迭代开发模型 优点优点清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。 V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系迭代和瀑布的最大的差别就在于风险的暴露时间上,迭代开发模型 可以更早的暴露风险,以达到降低项目成本的目的缺点缺点不适合需求模糊的系统5

温馨提示

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

评论

0/150

提交评论