欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    白盒测试的实用技术.ppt

    • 资源ID:6594246       资源大小:269.50KB        全文页数:57页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    白盒测试的实用技术.ppt

    第2章 白盒测试的实用技术 白盒测试(White Box Testing),按照程序内部的结构、逻辑驱动测试程序,通过测试来检测产品内部动作是否按照设计说明书的规定正常进行,检验程序中的每条路径是否都能按预定要求正确工作。,软件测试技术研究组 中国信息大学,白盒测试技术是软件测试的主要方法之一,白盒测试的基本概念、检查方法、测试方法、测试工具等内容是必须掌握的,本章重点讨论以下内容:白盒测试的概述 白盒测试的静态检查方法 白盒测试的常用方法,软件测试技术研究组 中国信息大学,2.1白盒测试的概述 白盒测试的对象主要是源程序。是指用代码内部的分支、路径、条件,使程序设计的控制结构导出测试用例,是软件测试的主要方法之一。2.1.1 白盒测试的基本知识白盒测试方法分为两类:(1)静态测试(2)动态测试:,软件测试技术研究组 中国信息大学,2.1.2 白盒测试测试原则白盒测试的原则有4点:1)保证一个模块中所有路径至少被测试一次;2)所有逻辑值都要测试真和假两种情况;3)检查程序的内部数据结构是否有效;4)检查上、下边界及可操作范围内运行所有循环。,软件测试技术研究组 中国信息大学,2.1.3 白盒测试的类别、依据和流程 白盒测试策略是首先进行静态结构分析,采用先静态后动态的组合方式。然后进行覆盖测试。利用静态测试的分析结果和通过动态测试的结果进行进一步确认已达到测试效果。白盒测试一般要考虑类别、依据和流程。,软件测试技术研究组 中国信息大学,1.白盒测试的类别白盒测试的类别具体分为8大类。(1)软件公用问题的测试;(2)语言测试;(3)SQL语句测试;(4)数据类型测试;(5)界面测试;(6)数值对象测试;(7)业务对象测试;(8)数据管理对象测试。,软件测试技术研究组 中国信息大学,2.白盒测试依据软件需求报告;软件需求规格说明;程序设计文档;软件界面设计;编码规范;开发命名标准。,软件测试技术研究组 中国信息大学,3.白盒测试的流程白盒测试的流程分为界面对象和业务对象两种方式。界面对象测试界面对象测试的流程如图2-1所示。,软件测试技术研究组 中国信息大学,图2-1界面对象的流程图,(2)业务对象流程测试业务对象测试的流程如图2-2所示。,软件测试技术研究组 中国信息大学,图2-2 业务对象测试的流程图,2.2 白盒测试方法 在白盒测试中,可以使用各种测试方法进行测试。但是,测试要考虑五点问题。(1)测试中,尽量先用自动化工具来进行静态结构分析;(2)测试中建议先从静态测试开始,如:静态结构分析、代码走查和静态质量度量,然后进行动态测试,如:覆盖率测试;(3)利用静态分析的结果作为依据,再使用代码检查和动态测试的方式对静态分析结果进行进一步确认,提高测试效率及准确性;(4)覆盖率测试是白盒测试中的重要手段,在测试报告中可以作为量化指标的依据,对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率;(5)在不同的测试阶段,测试的侧重点是不同的。,软件测试技术研究组 中国信息大学,2.2.1 代码检查 代码检查是静态测试的主要方法,代码检查包括代码走查、桌面检查、流程图审查等。对于代码检查从如下几点进行叙述。1)概述 代码检查主要检查代码和流图设计的一致性、代码结构的合理性、代码编写的标准性、可读性、代码的逻辑表达的正确性等方面。包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。,软件测试技术研究组 中国信息大学,2)代码走查目的代码走查是为达到以下目的:通过检查代码程序是不是按照某种标准或规范编写的代码;通过检查代码来发现程序缺陷;通过检查代码容易发现程序产生的错误;通过检查代码来发现代码是不是流程图要求的;通过检查代码来发现有没有遗漏的项目;要代码易于移植,代码经常需要在不同的硬件中运行,或者使用不同的编译器编译;要代码易于阅读、理解和维护。,软件测试技术研究组 中国信息大学,2.2.2 代码检查方式代码走查的方式有:1 桌面检查2 走查3 代码审查 代码审查可分为以下两步:第一步:小组负责人把程序文本、规范、相关要求、流程图及设计说明书发给每个成员。第二步:每个成员依据所发材料作为审查依据,但是由程序员讲解程序的结构每、逻辑和源程序。在此过程中,小组成员可以提出自己的疑问;程序员在讲解自己的程序时,也能发现自己原来没有注意到的问题。,软件测试技术研究组 中国信息大学,2.2.3 代码检查项目代码检查项目主要有以下几点:目录文件组织检查函数数据类型及变量检查条件判断语句检查循环体制检查代码注释桌面检查其它检查,软件测试技术研究组 中国信息大学,2.2.4 静态结构分析静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。通过应用程序各函数之间的调用关系展示了系统的结构。列出所有函数,用连线表示调用关系和作用。静态结构主要分析:1.可以检查函数的调用关系是否正确;2.是否存在孤立的函数而没有被调用;3.明确函数被调用的频繁度,对调用频繁的函数可以重点检查。,软件测试技术研究组 中国信息大学,2.2.5 SQL语句测试主要检查以下两点:语句检查类型转换2.2.6 代码检查的分析与评价代码检查的分析与评价主要注意以下两大点:1 能力陈述经代码检查证实了的本软件的能力。2 缺陷和限制,软件测试技术研究组 中国信息大学,2.3 白盒测试的常用技术白盒测试常用技术主要有7种。现分别叙述如下:,软件测试技术研究组 中国信息大学,2.3.1 逻辑覆盖法,逻辑覆盖也是白盒测试主要的动态测试方法之一,是以程序内部的逻辑结构为基础的测试技术,是通过对程序逻辑结构的遍历实现程序的覆盖,这一方法要求测试人员对程序的逻辑结构有清楚的了解逻辑覆盖法主要讨论四点:测试覆盖率;逻辑覆盖;面向对象的覆盖;测试覆盖准则。现分别进行讨论。,1.测试覆盖率 测试覆盖率是用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。但覆盖率不是目标,只是一种手段。其中 测试覆盖率包括功能覆盖和结构覆盖,软件测试技术研究组 中国信息大学,2 逻辑覆盖 从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。为便于理解,根据下面所示的2个被测试程序(用C语言书写),分别讨论几种常用的覆盖技术。,程序1如下:void js(float A,floatB,float X)if(A1&B=0)X=X/A;if(A=2|X1)X=X+1;,图2-2 程序1流程图,程序2如下:void DoWork(int x,int y,int z)int k=0,j=0;if(x2),图2-4 程序2流程图,1语句覆盖 语句覆盖使程序中每个语句至少都能被执行一次。例:请对以上的程序1和程序2设计测试用例,达到语句覆盖。,在程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,例如选择输入数据为:A=2,B=0,X=2就可达到“语句覆盖”标准。在程序2中,如测试用例输入为:x=4、y=5、z=5 程序执行的路径是:a-b-d。,如果把程序2中的第二个if 改成else呢?,2判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。,例:请对以上的程序1和程序2设计测试用例,达到判定覆盖。,程序1:判定覆盖判定如下:A1&B=0 为真 为假 A=2|X1为真 为假测试用例如下:A=2 B=0 X=1 覆盖1,3A=5 B=0 X=0 覆盖2,4,3条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。例在程序2中,共有四个条件,A1,B=0,A=2,x1,条件覆盖使得每个条件的真假值至少满足一次,例:请对以上的程序1和程序2设计测试用例,达到条件覆盖。,程序1条件覆盖所有的条件如下:A1 为真 为假B=0 为真 为假A=2 为真 为假X1 为真 为假测试用例:A=2 B=0 X=0 覆盖1,3,5,8A=0 B=1 X=2 覆盖2,4,6,7,4条件判定组合覆盖 条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。,例:请对以上的程序1和程序2设计测试用例,达到条件判定组合覆盖。,程序1条件判定覆盖所有的条件如下:A1 为真 为假B=0 为真 为假A=2 为真 为假X1 为真 为假判定如下:A1&B=0 为真 为假A=2|X1为真 为假测试用例:A=2 B=0 X=2 覆盖1,3,5,7,9,11A=0 B=1 X=0 覆盖2,4,6,8,10,12,5多条件覆盖 多条件覆盖也称为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。,测试用例:1)A=2 B=0 X=2 覆盖1,5 2)A=2 B=1 X=0 覆盖2,63)A=0 B=0 X=2 覆盖3,7 4)A=0 B=1 X=0 覆盖4,8,判定1 A1&B=0 其中两个条件四个组合A1 B=0 T1,T2A1 B!=0 T1,F2A=1 B=0 F1,T2A=1 B!=0 F1,F2,判定2 A=2|X1其中两个条件四个组合A=2 X1 T3,T4A=2 X1 F3,T4A!=2 X=1 F3,F4,2.逻辑覆盖 根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修改条件判定覆盖、组合覆盖和路径覆盖。3.面向对象的覆盖 面向对象的覆盖主要讨论继承上下文覆盖和基于状态的上下文覆盖。,软件测试技术研究组 中国信息大学,4.测试覆盖准则 测试覆盖准则主要讨论ESTCA(Error Sensitive Test Cases Analysis)错误敏感测试用例分析和LCSAJ(Linear Code Sequence and Jump)线性代码序列与跳转。(1)ESTCA覆盖准则(2)现行代码序列与跳转LCSAJ现行代码序列与条状LCSAJ是指一组顺序执行的代码,以控制流跳转为结束点。可产生4层覆盖,软件测试技术研究组 中国信息大学,2.3.2 插桩技术软件动态测试中,插桩测试是一个被广泛应用的测试方法。插桩测试就是向源程序中插入语句然后执行程序,通过打印语句,获得动态信息(我们最为关心的信息)。在这里,我们举一个最简单的例子,以计算整数X和整数Y的最大公约数为例,试图说明插桩技术的要点。插桩后求最大公约数程序流程图如图2-3所示。,软件测试技术研究组 中国信息大学,软件测试技术研究组 中国信息大学,图2-3求最大公约数程序插桩流程图,基本路径测试法 上节的例子是个比较简单的程序段,只有两条路径。但在实际问题中,即使一个不太复杂的程序,其路径的组合都是一个庞大的数字。基本路径测试法是在是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试程序的每一条可执行语句至少执行一次。,1程序的控制流图 控制流图是描述程序控制流的一种图示方式。其中基本的控制结构对应的图形符号如图2-4所示。在图2-5所示的图形符号中,圆圈称为控制流图的一个结点,它表示一个或多个无分支的语句或源程序语句。,图2-5 控制流图的图形符号,图2-6(a)所示的是一个程序的流程图,它可以映射成图(b)所示的控制流图。,图2-6 程序流程图和对应的控制流图,图2-7 复合逻辑下的控制流程图,如果判断中的条件是复合条件,则需改变复合条件为一系列只有单个条件的嵌套的条件,如:If a and b then x else y为复合条件的判断,它的控制流图如2-7所示.,2基本路径测试法的步骤(1)画出程序控制流图 流程图用来描述程序控制结构.可将流程图映射出一个相应的控制流程图(不包括复合条件).例:有下列一段程序:,Void sort(int i;int type)int x=0;int y=0;while(i0)if(type=0)x=y+2;break;else if(type=1)x=y+10;else x=y+20;,(2)计算程序环路复杂性 进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。所谓独立路径,是指包括若干未曾处理的语句或条件的一条路径,基本路径集不是惟一的,对于给定的控制流图,可以得到不同的基本路径集。通常环路复杂性可用以下2种方法求得。将环路复杂性定义为控制流图中的区域数。设E为控制流图的边数,N为图的结点数,则定义环路的复杂性为V(G)=EN+2。若设P为控制流图中的判定结点数,则有V(G)=P+1。,(2)确定独立路径集合 独立路径数=环路复杂度V(G)给出上例的独立路径(4)准备测试用例,4,144,6,7,144,6,8,10,12,4,144,6,8,11,12,4,14,例:设计一段程序,输入每个学生的成绩,以-1作为输出结束标志.计算学生人数,学生分数的总分,平均分的测试程序.该程序最多输入50个值。给出程序流程图 写出用C语言表示的程序 根据流程图画出控制流图 计算环路复杂度 确定基本路径集合 为每一条路径设计测试用例 进行测试,程序流程图如下:,开始,i=0,n1=n2=0;sum=0,Score(i)!=-1 and n250,N2=n2+1,Score(i)=0 and score(i)=100,i=i+1,N10,Average=-1,Average=sum/n1,返 回,F 2和3,4 T,F 2和3,N1=n1+1,sum=sum+score(i),7 T,8,9,10,11,根据上面的程序流程图 1)绘制相应程序的控制流图2)确定环路复杂度3)确定基本路径集合4)为每一条独立路径各设计一组测试用例。,2.3.4 域测试法域测试是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择测试点进行测试。主要为:1)域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误;2)计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误;3)丢失路径错误:由于程序中的某处少了一个判定谓词而引起的丢失路径错误,软件测试技术研究组 中国信息大学,2.3.5 符号测试 符号测试基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式。1)符号测试执行的是代数运算,可以作为普通测试的一个扩充;2)符号测试可以看作是程序测试和程序验证的一个折衷办法;3)符号测试程序中仅有有限的几条执行路径;,软件测试技术研究组 中国信息大学,2.3.6 Z路径覆盖法 分析程序中的路径是指检验程序从入口开始,执行过程中经历的各个语句,直到出口。Z路径覆盖对循环机制进行简化,减少路径的数量,使得覆盖所有路径成为可能,简化循环意义下的路径覆盖称为Z路径覆盖(循环简化:限制循环次数,只考虑循环一次或零次情况),循环简化的目的是限制循环的次数,无论循环的形式和循环体实际执行的次数,简化后的循环测试只考虑执行循环体一次和零次(不执行)两种情况,即考虑执行时进入循环体一次和跳过循环体这两种情况。,软件测试技术研究组 中国信息大学,2.3.7 程序变异测试法 程序变异是一种错误驱动测试。错误驱动测试是指该方法是针对某类特定程序错误的,经过多年的测试理论研究和软件测试的实践,人们逐渐发现要想找出程序中所有的错误几乎是不可能的。比较现实的解决办法是将错误的搜索范围尽可能地缩小,以利于专门测试某类错误是否存在。,软件测试技术研究组 中国信息大学,请您解答:1.白盒测试有哪两个分类?2.说出白盒测试的4个原则。3.详细说明白盒测试方法要注意的问题。4.请简要写出白盒测试常用的7类技术。5.逻辑覆盖主要测试哪8各方面的覆盖率?,

    注意事项

    本文(白盒测试的实用技术.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开