好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

测试流程图.ppt

64页
  • 卖家[上传人]:ths****59
  • 文档编号:58827567
  • 上传时间:2018-11-01
  • 文档格式:PPT
  • 文档大小:593.50KB
  • / 64 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 测试总体流程图,,F验收测试,B单元测试,C整合测试,D系统测试,E性能测试,A测试计划、测试设计,,,,,,,,立项,结束,测试分类,.黑盒测试 .白盒测试 .灰盒测试,软件中的难题,1.开发的不是客户需要的 2.计划赶不上变化,进度无法按期完成 3.挖坑还是开渠?永远的资源不足 4.不能正确实现功能 5.如何维护大量的已有软件?,软件与硬件的区别,,软件工程,1.软件工程是为创造高质量软件提供的一个框架 2.将系统化,规范化,可度量的方法应用于软件的开发,运行和维护,即将工程化应用于软件中 3.包括过程,方法和工具三个层面 4.过程,方法和人对质量的影响,过 程,1.过程是项目管理的基础2.定义关键过程区域框架3.CMM中的KPA,方 法,1.技术上需要如何做?2.方法涵盖一系列的任务:需求,设计,编码,测试,维护,工 具,1.为工程,方法提供自动,半自动化的支持2.组建起来被另外一个工具使用3.组成软件工程环境,过程篇—关于CMM,CMM(Capability Maturity Model)能力成熟度模型用于软件开发过程和开发能力的改进与评估的模型对软件工程的全过程进行考察和评估不告诉你怎么做,但告诉你不用成熟度应该关注的关键过程,何为CMM/CMMI,CMMI,目标:第一个是质量,第二个是时间表,第三就是要用最低的成本。

      与原有的能力成熟度模型CMM相比,CMMI涉及面更广,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购 CMMI即CMM集成,是系统工程和软件工程的集成成熟度模型,CMMI更适合于信息系统集成企业CMMI是在CMM基础上发展起来的,它继承并发扬了CMM的优良特性,借鉴了其他模型的优点,融入了新的理论和实际研究成果它不仅能够应用在软件工程领域,而且可以用于系统工程及其他工程领域CMMI阶段模型,5.优化级 :持续过程改进,组织性快速重新配置 4.量化管理级: 过程和产品被量化度量并控制,组织性能提升 3.已定义级:组织内项目改进和执行 2.已管理级:能重复以前的成功,有纪律性 1.初始级:过程能力不可预测,无秩序,Level 1,在级别1: 过程是随机,混乱和无序的这种通常没有一个稳定的环境,它的成功依赖于组织中个人的能力和英雄主意,而不是依赖使用经过验证的过程尽管这种混乱,无序的环境,对成熟度1的组织也经常能制造出能工作的产品和服务,但是,他们的项目经常是超成本和进度的 它们有过度承诺的趋势,在危机时放弃过程,不能重复他们过去的成功Level 2,1.组织中的项目确保需求得到管理,过程已经计划,执行,度量和控制。

      2.即使在时间压力下,依然能够保留现有的实践 3.管理层在某些已定义点上对工作产品的状态和提交的服务具有可视性 4.在干系人(风险承担者)之间建立了承诺,在必要的时候进行修正Level 3,工程得到很好地表现和理解,被描述成标准,规程,关键和方法 作为3级基础的组织标准过程集已经简历和不断改进 2,3级的区别在于标准,过程和规程的范围 3级比2级的描述更具体和更严格,Level 4,使用统计和量化技术进行控制 建立了质量和过程性能的量化目标,作为过程管理的准则 收集了过程性能的详细度量,进行统计分析 质量和过程性能度量数据组成组织的度量库,来支持将来的基于事实的决策 3,4级的区别在于过程性能的可预测性Level 5,基于对过程中的固有偏差的一般原因的定量理解,持续的进行过程改进 通过渐进的和革新的技术改进,集中在持续地过程性能改进上 指出过程偏差的一般原因和可测地改进组织过程的过程改进得到识别,评估和实施 敏捷和创新的过程优化依赖于授权员工的参与,他们与业务价值和组织目标保持一致,Level 2,CMM2: 可重复性KPA: 软件配置管理软件质量保证子合同管理,Level 2,软件项目跟踪和监控软件项目计划需求管理,配置管理,1.定义并文档化配置项的功能和物理属性2.控制这些属性的变更3.记录和报告变更处理结果和实施状态4.遵从制定的需求进行验证,同行评审,为什么进行评审? .促进文档化,提升可读性,易理解性等 .查找错误,收集建议 .扩散知识,产生后备力量 评审什么? .项目中的一系列计划 .项目各阶段的输出:文档,代码等 谁来评审? 项目组成员,PPQA,上级领导,客户等,同行评审,.评审的输入--待评审的文档,代码--《XXX评审检查表》.评审的输出--《评审报告》-- 《评审过程检查表》,正确看待文档,.文档是所有事情能够继承的保证.如果认为不必要,多一分也是多,如果认为必要,多少都不够.文档是一个人水平高低的体现.需要提高每个人的写作能力,练好内功,软件开发模型—瀑布型,1.需求2.设计3.代码4.测试5.运行/维护,软件开发模型—原型,1.用户需求不明确是采用2.快速设计,快速开发3.迭代的过程4.与用户一起明确需求5.最终会被抛弃,软件开发模型—演化模型,.线性迭代.每个线性过程产生一个版本.分阶段提供给用户,敏捷式开发,1.是一种以人为核心、迭代、循序渐进的开发方法。

      2.在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征决定软件质量的因素,1.过程2.方法3.工具4.人,测试目的,在产品投入使用前,通过综合的智力活动,发现程序中的显性和隐形的错误和缺陷控制发布产品的质量,提升客户满意度,测试目的,测试的目的是发现和确认系统有问题,而不是验证系统没有问题 确认软件生命周期中的各个阶段的产品是否正确 确认最终交付的产品是否符合用户需求 使用测试数据检验系统运行的行为是否是按照预期目标执行的,测试原则,所有测试都应该追溯到用户需求应该在测试工作真正开始的较长时间内就进行测试测试中发现的80%的问题可能集中在模块的20%中,测试原则,测试顺序应从简单到复杂,从模块到集成,从白到黑穷举测试是不可能的Bug不可避免,常用的测试技术,1.在产品成型前,对规约,设计,代码进行Review,确认与需求是否一致---静态测试2.了解产品内部结构,确认内部逻辑是否符合需求,且内部构件被充分利用---白盒测试3.如果了解特定的功能,在各种功能中寻找错误—黑盒测试,静态测试和动态测试,1.静态测试:指不用执行程序的测试主要采用Review,代码走查,同级评审,check list 检查单的方法对软件产品进行测试。

      2.动态测试:通过执行程序,找出产品问题的测试过程黑盒,白盒都是动态测试白 盒 测 试,白盒测试发现的错误类型:1.语法错误 2.编译错误 3.逻辑错误 4.判定条件问题 5.编程规范 6.Memory Leak 7.Performance Problem,白 盒 测 试,逻辑驱动测试基本路径测试,逻辑驱动测试,逻辑驱动测试: 主要是测试覆盖率,以程序内在逻辑结构为基础的测试包括以下6种类型: 1.语句覆盖 2.判断覆盖 3.条件覆盖 4.判定-条件覆盖 5.条件组合覆盖 6.路径覆盖,逻辑驱动测试,主要是测试覆盖率,以程序内在逻辑结构为基础的测试包括以下6种类型: 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行测试程序,使得每一条可执行语句至少执行一次 2.判断覆盖:也叫分支覆盖设计若干个测试用例,运行测试程序,使得每个判断的取真分支和取假分支至少执行一次 3.条件覆盖:设计足够多的测试用例,运行测试程序,使得每个判断的每个条件的每个可能取值至少执行一次 4.判定-条件覆盖:设计足够多的测试用例,运行测试程序,使得每个判断的所有可能的条件取值组合至少执行一次 5.条件组合覆盖:设计足够多的测试用例,运行测试程序,使得程序中每个判断的所有可能的条件取值组合至少执行一次 6.路径覆盖:设计足够多的测试用例,运行测试程序,要覆盖程序中所有可能的路径,For Example,Void DoWork(int x , int y , int z){int k=0,j=0;if ((x>3) //语句块2}j=j%3;//语句块3 },流程图如下:,语 句 覆 盖,为了说明简略,分别对各个判断的取真,取假分支编号为 b,c,d,e为了测试语句覆盖率只要设计一个测试用例就可以把三个执行语句块中的语句覆盖。

      测试用例输入为:{x=4,y=5, z=5}程序执行的路径是:a b d该测试用例虽然覆盖了可执行语句,但是并不能检查判断逻辑是否有问题,例如在第一个判断中把&&错误的写成||,上面的测试用例仍然可以覆盖所有的执行语句可以说语句覆盖率是最弱的逻辑覆盖准则,判 定 覆 盖,如果设计两个测试用例则可以满足分支覆盖的要求: 测试用例的输入为: {x=4 , y=5 , z=5} {x=2 , y=5 , z=5} 虽然可以满足分支覆盖的要求,但是也不能对判断条件做完整的检查,条 件 覆 盖,对于这个简单例子的所有条件取值加以标记如: 对于第一个判断: 条件x>3,取真值为T1,取假值为-T1 条件z5,取真值为T4,取假值为-T4,设计测试用例如下:,,上面的测试用例不但覆盖了所有分支的真假两个分支, 而且覆盖了判断中的所有条件的可能值,测试用例如下:,但是如果设计了下面的测试用例,则虽然满足了条件覆盖,但是只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足分支覆盖的要求,分支条件覆盖,根据定义只需要设计以下两个测试用例便可以覆盖8个条件值以及4个判断分支,分支条件覆盖,,条件分支覆盖从表面上看,它测试了所有条件的取值,但是实际上某些条件掩盖了另外的一些条件,例如对于条件表达式(x>3)&&(z5)来说,若x==4测试结果为真,就认为表达式的结果为真,这是不在检查(y>5)的条件了。

      因此,采用分支条件覆盖,逻辑表达式的错误不一定能够查出来了条件组合覆盖,,设计足够多的测试用例,运行测试程序,使得程序中每个判断的所有可能的条件取值组合至少执行一次 现在对例子中的各个判断的条件取值组合加以标记如下: x>3,z3,z>=10 记做T1,-T2, 第一个判断的取假分支 x=10 记做-T1,-T2, 第一个判断的取假分支 x=4,y>5 记做T3,T4, 第一个判断的取真分支 x=4,y5 记做-T3,T4, 第一个判断的取真分支 x!=4,y<=5 记做-T3,-T4,第一个判断的取假分支,条件组合覆盖,,,上面的测试用例覆盖了所有条件的可能取值的组合,覆盖了所有判断的可取分支,但是却丢失了一条路径abe基本路径测试,1.根据源代码导出流程图2.分析程序逻辑复杂度3.导出测试Case,基本路径测试举例-PDL分析,计算不超过100个数字的平均值,使用PDL语言 INTEFACE RETURNS average, total.input , total.valid; INTEFACE RETURNS value,minimum,maxium,sum; TYPE value(1:100) IS SCALAR ARRAY; TYPE i IS INTEGER; i=1; Total.input=total.valid=0; 1 Sum=0 DO WHILE value(i) -999 2 and total.input=minimum 5 and value(i)0; 10THEN average=sum/total.valid; 11ELSE average = -999; 12ENDIF 13END average,数 据 流 分 析,,环形复杂度,V(G)=判定节点+1=5+1 基本测试路径: 1. 1-2-10-11-13 1-2-10-12-13 1-2-3-10-11-13 1-2-3-4-5-8-9-2… 1-2-3-4-5-6-8-9-2… 1-2-3-4-5-6-7-8-9-2…,基本路径测试用例,,从基本路径测试想到的,穷举测试是不可能的尽量选择有代表性的主要路径,更易发现问题,且对质量的贡献很大环形复杂度的方法也可以应用到黑盒测试中,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.