白盒测试1.ppt_第1页
白盒测试1.ppt_第2页
白盒测试1.ppt_第3页
白盒测试1.ppt_第4页
白盒测试1.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、第三部分是白盒测试。在本章中,我们将学习:静态白盒测试、动态白盒测试、结构测试定义,并将测试对象视为一个透明的盒子。白盒测试是一种根据被测试程序的内部结构设计测试用例并完成测试的测试方法。白盒测试或逻辑驱动测试基于应用程序代码的内部逻辑知识,涵盖所有代码、分支、路径和条件。结构测试(白盒测试)特性,它可以构成测试数据来测试特定的程序部分。有一些适当的措施和更多的工具来支持它。通常只用于单元测试、结构测试方法、静态测试方法:程序结构分析的正式评审、同行评审、公共语句检查、动态测试方法:逻辑覆盖语句覆盖、分支覆盖、条件覆盖、分支覆盖、路径覆盖、通用代码评审列表、数据引用错误、数据声明错误、计算错误

2、、比较错误、控制流错误、子程序参数错误、输入错误和输出错误、代码覆盖率,当使用白盒方法进行测试时,认为测试用例覆盖了程序的内部逻辑。最彻底的白盒方法覆盖了程序中的每一条路径,但是用其他标准来衡量覆盖程度通常是不可能的。希望覆盖率尽可能高。逻辑覆盖法和白盒测试中有六种逻辑覆盖方法:语句覆盖判断覆盖条件覆盖判断覆盖条件组合覆盖路径覆盖,例如,为了实现一个简单的数学运算,Dim a,B作为整数dim c作为双if (A0和B0)然后c=c/a结束if (a1或C1)然后c=c结束如果c=b c,1。语句覆盖,基本思想是设计几个测试用例并运行测试程序,以便程序中的每个可执行语句至少执行一次。1,1。语

3、句覆盖率继续为1,只需要设计一个测试用例:a=2,b=1,c=6;也就是说,实现了语句覆盖。1。声明覆盖范围继续,2。【优点】:测试用例可以从源代码中直观地获得,无需细分每个判断表达式。【缺点】:这种测试方法只针对程序逻辑中的显式语句,但不能测试隐藏条件。例如,它不能在多分支逻辑运算中被综合考虑。语句覆盖是最弱的逻辑覆盖。2。判断覆盖,基本思想是:设计几个测试用例并运行被测试的程序,使程序中每个判断的真假分支至少经过一次,即满足真值和假值。1,2。决策覆盖继续1,a=2,b=1,c=6可以覆盖决策m的y分支和决策q的y分支;A=-2,b=-1,c=-3可以覆盖m的n个分支和q的n个分支。这两组

4、测试用例可以覆盖所有的真分支和假分支。m法官,Q法官,2。判断覆盖继续2,a=1,b=1,c=-3可以覆盖m判断的y分支和q判断的n分支;A=1,b=-2,c=3可以覆盖判断m的n分支和判断q的y分支;类似地,这两组测试用例也可以覆盖所有真的和假的分支。m法官,Q法官,2。法官覆盖率续3,优势:法官覆盖率比陈述覆盖率有更强的测试能力。类似地,决策覆盖和语句覆盖一样简单,测试用例可以在不细分每个决策的情况下获得。【缺点】:大多数判断语句由多个逻辑条件组成。如果你只判断整个最终结果而忽略每个条件的值,你将不可避免地错过一些测试路径。确定覆盖仍然是弱逻辑覆盖。3。条件覆盖,基本思想是:设计几个测试用

5、例,在执行测试程序后,使每个判断中每个条件的可能值至少满足一次。1,3。有条件覆盖继续1。条件覆盖续2,覆盖判决M的n个分支和判决Q的y个分支。我们的条件覆盖设计思想是使测试用例覆盖T1,T2,T3,T4,F1,F2,F3,F4,判决M,判决Q,3。有条件覆盖继续3。【优点】:增加了条件判断和测试路径的测试。【缺点】:条件覆盖不一定包括判断覆盖。例如,我们刚刚设计的用例没有覆盖判断M的Y分支和判断q的N分支。不管所有的判断结果如何,条件覆盖只能保证每个条件至少满足一次。4。判断条件覆盖,基本思想是设计足够多的测试用例,使得判断条件中的所有条件至少可以被评估一次,同时,所有可能的判断结果至少可以

6、被执行一次。1,4。判断条件覆盖范围继续1。根据判断条件覆盖的要求,我们设计的测试用例应该满足以下条件:所有条件至少可以取一次;所有可能的判决结果应至少执行一次。以满足T1、T2、T3、T4 F1、F2、F3、F4、4。决策条件覆盖范围继续为2,以满足T1、T2、T3、T4 F1、F2、F3、F4、4。决策条件覆盖率续3,优势:它可以同时满足决策和条件覆盖率标准。【缺点】:判断/条件覆盖标准的缺点是没有考虑条件的组合。5。条件组合覆盖,基本思想是:设计足够的测试用例,使得所有可能的条件组合至少执行一次,或者判断条件组合至少执行一次。1,5。条件组合覆盖续1(第一种情况),根据条件组合覆盖的基本

7、思想,对于前面的例子,我们在每个判断中组合了所有的条件,并且设计了如表所示的组合条件,并且我们设计的测试用例应该包括所有的组合条件。5。有条件组合覆盖率续2,满足1,2,3,4,5,6,7,8,5。条件组合覆盖率续3,优势:条件组合覆盖率标准满足判断覆盖率、条件覆盖率和判断/条件覆盖率的标准。缺点:测试用例的数量线性增加。路径覆盖(案例2),基本思想是设计所有的测试案例来覆盖程序中所有可能的执行路径。注意:它不同于第二种方法,不仅仅指条件。1,6。路径覆盖(续1,6)。路径覆盖范围(续2)。【优点】:这种测试方法可以彻底测试程序,覆盖面比之前的五种测试方法更广。【缺点】:需要设计大量复杂的测试

8、用例,这使得工作量成倍增加,没有必要覆盖所有的条件组合。从前面的例子中,我们可以看到任何覆盖方法都不能满足我们的需求,所以在实际的测试用例设计过程中,可以根据需要组合不同的覆盖方法来实现最佳的测试用例设计。条件组合覆盖与路径覆盖、基本路径测试方法相结合,路径测试是从程序入口开始执行每条语句的完整过程。从广义上讲,任何与路径分析相关的测试都可以称为路径测试。路径测试的理想情况是覆盖所有路径,但是对于复杂的程序来说,不可能覆盖所有路径(测试所有可执行路径)。在不能覆盖所有路径的前提下,如果一个程序的每个独立路径都被测试过,就可以认为程序中的每个语句都被测试过了,即语句覆盖已经实现。这种测试方法称为

9、基本路径测试方法。基本路径测试方法(续)。在控制流程图的基础上,通过分析控制结构的环复杂度,得到执行路径的基本集合,并在此基础上设计测试用例。基本路径测试方法包括以下四个步骤:(1)绘制程序控制流程图。(2)计算程序的循环复杂度,并得出程序基本路径集中独立路径的数量,这是确定每个可执行语句在程序中至少执行一次所需的测试用例数量的上限。(3)导出基本路径集并确定程序的独立路径。(4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出。环复杂性,也称为环复杂性,是一种软件度量,它为程序逻辑复杂性提供了一个量化的尺度。环复杂度的应用可以将环复杂度应用到基本路径方法中,它可以提供:程序基本集的独

10、立路径数;确保所有语句至少执行一次的测试数的上限。独立路径是指至少引入一组新的处理语句或新条件的程序路径。使用流程图的术语,也就是说,独立路径必须包含至少一条在这次定义路径之前从未使用过的边。测试可以被设计为基本路径集的执行过程,但是基本路径集通常不是唯一的。基于图论的计算环复杂度的方法为我们提供了一个非常有用的软件度量。环复杂度可以通过以下三种方法之一来计算:控制流图中的区域数量对应于环复杂度。给定控制流图G的环复杂度V(G),它被定义为V(G)=E-N 2,其中E是边数,N是控制流图中的节点数。给定控制流图G的环复杂度V(G),它也可以被定义为V(G)=P 1,其中P是控制流图G中的决策节

11、点的数量.确定该节点是具有至少两个输出边缘的节点。基本路径测试方法(续),void sort(int irecornum,int itype)12 int x=0;3 int y=0;4而(irecornum-0)5 6 If(iType=0)7x=y 2;8否则9如果(iType=1)10 x=y 10;11其他12 x=y 2013 14,基本路径测试方法(续),绘制控制流程图:如图所示,计算环复杂度:10(边)-8(节点)2=4,导出独立路径(用语句号表示),1: 414,2: 46714,3: 4691013414,4: 4691213414,一些有很强发现错误能力的条件错误可能无法发

12、现路径数量巨大,不可能覆盖所有路径。循环测试路径覆盖,检查循环0次,跳出循环,检查循环的初始值一次,检查循环2次,多次检查循环的最大循环数,检查循环边界一次大于最大循环数,一次小于最大循环数,简化循环路径。循环使得路径的数量急剧增加。简化循环路径图,不管循环的形式和执行循环体的实际次数,只考虑进入循环体一次和跳出循环体一次两种情况。循环程序流程图,C,B,(1),(2)估计测试用例的最小数量有助于估计测试时间。结构化程序和南北图。结构化程序由三种基本控制结构组成:顺序选择(条件分支)、顺序选择(条件分支)、程序结构和测试用例数量、并行、串行、程序结构和测试用例数量。形成的分支结构可分为两类:嵌套分支结构和链式分支结构。如果在N-S图中有并行的A1和A2层,并且这两个层组合的测试用例的最小数量是a1*a2。

温馨提示

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

评论

0/150

提交评论