第07课 白盒测试逻辑覆盖测试_第1页
第07课 白盒测试逻辑覆盖测试_第2页
第07课 白盒测试逻辑覆盖测试_第3页
第07课 白盒测试逻辑覆盖测试_第4页
第07课 白盒测试逻辑覆盖测试_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、把程序看成装在一个透明的白盒子里,程序的结构和处理把程序看成装在一个透明的白盒子里,程序的结构和处理呈现过程完全可见,按照程序的内部逻辑测试程序,以检呈现过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。查程序中的每条通路是否都能按照预先要求正确工作。 第第3章章 白盒测试方法白盒测试方法 2路径分析测试路径分析测试3分支条件测试、循环测试分支条件测试、循环测试4其它测试类型其它测试类型5主主要要内内容容综合测试实例综合测试实例 6黑盒测试与白盒测试黑盒测试与白盒测试1逻辑覆盖测试逻辑覆盖测试黑盒测试与白盒测试黑盒测试与白盒测试v 任何工程产品都可以

2、使用白盒测试和黑盒任何工程产品都可以使用白盒测试和黑盒测试两种方法之一进行测试。测试两种方法之一进行测试。 1黑盒测试v 黑盒测试:已知产品的功能设计规格和用黑盒测试:已知产品的功能设计规格和用户手册,可以进行测试证明每个功能是否实现、户手册,可以进行测试证明每个功能是否实现、每个实现了的功能是否符合客户要求。每个实现了的功能是否符合客户要求。v 软件的黑盒测试意味着测试要在软件的接软件的黑盒测试意味着测试要在软件的接口处进行,测试人员完全不考虑程序内部的逻口处进行,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的辑结构和内部特性,只依据程序的需求规格说明书和用户手册,检查程序的功

3、能是否符合它,检查程序的功能是否符合它的功能说明,以及性能是否满足用户的要求。的功能说明,以及性能是否满足用户的要求。因此因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试又叫功能测试或数据驱动测试。 2白盒测试v 白盒测试:已知产品的内部工作过程,可以通白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。所有内部成分是否以经过检查。v 软件的白盒测试是对软件的过程性细节做细致软件的白盒测试是对软件的过程性细节做细致的检查,它允许测试人员利用程序内部的逻辑结构的检查,它允许测试人员利用程序内部

4、的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序状态,确辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此定实际状态是否与预期的状态一致。因此白盒测试白盒测试又称为结构测试或逻辑驱动测试。又称为结构测试或逻辑驱动测试。白盒测试的基本概念白盒测试的基本概念v什么是白盒测试 把程序看成装在一个透明的白盒子里,程序的结构和处理过程完全可见,按照程序的内部逻辑测试程序,以检查程序中的每条通路是否都能按照预先要求正确工作。 不可能进行彻底的白盒测试不可能进行彻底的白盒测试v 结论是:结论是

5、:4 41 1+4+42 2+4+43 3+4+41010,需要需要1414秒左右的时秒左右的时间间v 如果循环次数为如果循环次数为2020次,次,100100次时,结果又如何?次时,结果又如何?v 结论是:循环结论是:循环2020次,需要约次,需要约40724072小时,循环小时,循环100100次则大约需要次则大约需要6.796.79* *10104747年年v 左图是具有某程序的流程图,假设循环左图是具有某程序的流程图,假设循环1010次,请次,请计算一下有多少条程序执行通路?假设由图中得计算一下有多少条程序执行通路?假设由图中得到的所有路径都是可执行路径,执行一次循环大到的所有路径都是

6、可执行路径,执行一次循环大约需要约需要1010微秒(奔腾微秒(奔腾4 1.7G4 1.7G),且一年),且一年365365天每天每天天2424小时不停机,请回答:如果循环次数为小时不停机,请回答:如果循环次数为1010的的话,遍历图中所有路径需要多长时间?话,遍历图中所有路径需要多长时间?白盒测试的常用方法白盒测试的常用方法逻辑覆盖逻辑覆盖路径分析路径分析测试测试 循环、条循环、条件分支件分支逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。逻辑覆盖逻辑覆盖语句覆盖语句覆盖判定覆盖判定覆盖条件覆

7、盖条件覆盖判定条件覆盖判定条件覆盖条件组合覆盖条件组合覆盖路径覆盖路径覆盖弱弱强强覆盖程度从覆盖程度从低到高排列低到高排列覆盖准则覆盖准则的作用的作用v说明说明用于描述在测试过程中,被测对象被测试的程度,用于描述在测试过程中,被测对象被测试的程度,有时候也称为软件测试覆盖准则或者测试数据完有时候也称为软件测试覆盖准则或者测试数据完备准则,可以备准则,可以:n 作为作为测试停止测试停止的标准,用于衡量测试是否充分的标准,用于衡量测试是否充分;1. 作为作为选取测试数据选取测试数据的依据,满足相同覆盖准则的测的依据,满足相同覆盖准则的测试数据是等价的试数据是等价的.逻辑覆盖例题逻辑覆盖例题入口入口

8、A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF路径:路径:P1(TT)P2(FF)P3(FT)P4(TF)v程序如下:程序如下: function js(float A,floatB,float X) if( A1)&(B=0) X=X/A; if(A=2)|(X1) X=X+1; 1 语句覆盖语句覆盖 设计足够的测试用例,使设计足够的测试用例,使得程序中的每个语句至少执行得程序中的每个语句至少执行一次。一次。1 语句覆盖语句覆盖入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF路径:路径:P1

9、(TT)P2(FF)P3(FT)P4(TF)?第一个判断中的第一个判断中的逻辑运算符逻辑运算符“AND”若错写若错写成了成了“OR”,能否能否测试出来?测试出来?只包含了只包含了P1一条一条路径,所以语句路径,所以语句覆盖的覆盖程度覆盖的覆盖程度是最弱的是最弱的3022 判定覆盖判定覆盖 设计足够的测试用例,使设计足够的测试用例,使得在语句覆盖的基础上得在语句覆盖的基础上, ,程序程序中每个判定的取中每个判定的取“真真”分支和分支和取取“假假”分支至少都执行一次分支至少都执行一次,判定覆盖又称分支覆盖。,判定覆盖又称分支覆盖。2 判定覆盖判定覆盖(分支覆盖分支覆盖)入口入口A 1AND B=0

10、TA=2OR X 1TX = X / AX = X + 1返回返回FF? 判定覆盖比语句覆判定覆盖比语句覆盖强,但是仍不能保证盖强,但是仍不能保证判断条件的正确性。例判断条件的正确性。例如:第二个判断条件中如:第二个判断条件中的的x x1 1若错写成了若错写成了x x1,1,能否测试出来?能否测试出来?还有其它可能吗?还有其它可能吗?有!例如:有!例如:303,211这这两组用例两组用例路径:路径:P1(TT)P2(FF)P3(FT)P4(TF)从定义上从定义上可知:判可知:判定覆盖包定覆盖包含了语句含了语句覆盖覆盖3 条件覆盖条件覆盖 设计足够的测试用例,在设计足够的测试用例,在语句覆盖的基

11、础上使得程序判语句覆盖的基础上使得程序判定中的每个条件能获得各种可定中的每个条件能获得各种可能的结果。能的结果。3 条件覆盖条件覆盖1T4T3T入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF将每一个条件都列出来:A1 A1X 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF?是否满足判定覆是否满足判定覆盖盖? ?思考:思考:判定覆盖和条件判定覆盖和条件覆盖的关系覆盖的关系4 判定条件覆盖判定条件覆盖 同时满足判定覆盖的和条件同时满足判定覆盖的和条件覆盖的逻辑覆盖称为判定覆盖的逻辑覆盖称为判定/ /条件覆条

12、件覆盖。盖。它的含义是:它的含义是: 设计足够的测设计足够的测试用例,使得判定中的每个条件试用例,使得判定中的每个条件都取到各种可能的值,而且每个都取到各种可能的值,而且每个判定表达式也都取到各种可能的判定表达式也都取到各种可能的结果。结果。4 判定判定/条件覆盖条件覆盖判定条件覆盖仍有缺陷。从表面上看,判定条件覆盖仍有缺陷。从表面上看,它测试了所有条件的所有可能结果,但事实上并它测试了所有条件的所有可能结果,但事实上并不是这样。因为某些条件掩盖了另一些条件。例不是这样。因为某些条件掩盖了另一些条件。例如,在逻辑表达式中,如果如,在逻辑表达式中,如果“与与”表达式中某一表达式中某一条件为条件为

13、“假假”,则整个表达式的值为,则整个表达式的值为“假假”,这,这个表达式中另外的几个条件就不起作用了。同样个表达式中另外的几个条件就不起作用了。同样地,如果在地,如果在“或或”表达式中,某一条件为表达式中,某一条件为“真真”,则整个表达式的值为则整个表达式的值为“真真”,其它条件也就不起,其它条件也就不起作用了。因此,采用判定条件覆盖时,逻辑表作用了。因此,采用判定条件覆盖时,逻辑表达式中的错误不一定能测试出来。达式中的错误不一定能测试出来。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF5 条件组合覆盖条件组合覆盖 设计足够的测试用例,使设计

14、足够的测试用例,使得每个判定中的条件的各种可得每个判定中的条件的各种可能组合都至少出现一次。能组合都至少出现一次。5 条件组合覆盖条件组合覆盖可能的条件组合:可能的条件组合:(1)A1,B0(2)A1,B0(3)A1,B0(4)A1,B0(5)A2,x1(6)A2,x1(7)A2,x1(8)A2,x1相应的输入数据:相应的输入数据:A2,B0,x4 满足(满足(1)和()和(5)A2,B1,x1 满足(满足(2)和()和(6)A1,B0,x2 满足(满足(3)和()和(7)A1,B1,x1 满足(满足(4)和()和(8)显然,满足条件组合覆盖的测试数据,也一定满足判定显然,满足条件组合覆盖的测

15、试数据,也一定满足判定覆盖、条件覆盖和判定条件覆盖标准。覆盖、条件覆盖和判定条件覆盖标准。5 条件组合覆盖条件组合覆盖TEST CASES:A2,B0,x4A2,B1,x1A1,B0,x2A1,B1,x1入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF? 请写出各测试用例的请写出各测试用例的执行路径。然后考察是执行路径。然后考察是否覆盖了否覆盖了(TF)路径。路径。5 路径覆盖路径覆盖 设计足够的测试用例,使设计足够的测试用例,使程序中的每一条可能路径都至程序中的每一条可能路径都至少执行一次。少执行一次。每条可能的路径都至少执行一次。每条可能的

16、路径都至少执行一次。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF6 路径覆盖路径覆盖Test cases: A=1 , B=1 , X=1 A=1 , B=1 , X=2 A=3 , B=0 , X=1 A=2 , B=0 , X=4路径:路径:P1(TT)P2(FF)P3(FT)P4(TF)习题习题v 1. 在用白盒法设计测试用例时,常用的在用白盒法设计测试用例时,常用的6种覆盖标准是语种覆盖标准是语句覆盖、判定覆盖、条件覆盖、判定句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组条件覆盖、条件组合覆盖、路径覆盖合覆盖、路径覆盖.v 假设

17、假设A和和B是两种覆盖准则,我们用是两种覆盖准则,我们用包含,被包含,相同包含,被包含,相同和互不包含和互不包含来形容他们之间的关系:来形容他们之间的关系:v 语句覆盖语句覆盖判定覆盖判定覆盖 语句覆盖语句覆盖条件覆盖条件覆盖 判定覆盖判定覆盖条件覆盖条件覆盖 判定覆盖判定覆盖判定判定/条件覆盖条件覆盖 判定判定/条件覆盖条件覆盖条件组合覆盖条件组合覆盖练习练习一一v 1.如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。 练习练习二二v 在白盒测试用例设计中,有语句覆盖、分支在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,

18、其中(覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。段进行覆盖测试,必须适当地选取测试用例组。若若x, y是两个变量,可供选择的测试用例组共是两个变量,可供选择的测试用例组共有有、四组,如表中给出,则实现四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是(判定覆盖至少应采取的测试用例组是( B )或(或( C );实现条件覆盖至少应采取的测试);实现条件覆盖至少应采取的测试用例组是(用例组是( D );实现路径覆盖至少应采取);实现路径覆盖至少应采取的测试用例组是(的测试用例组是( E )或()或( F )。)。v供选择的答案供选择的答案vA: 语句覆盖语句覆盖 条件覆盖条件覆盖 v 判定覆盖判定覆盖 路径覆盖路径覆盖BF: 和和组组 和和组组 v 和和组组 和和组组v 、组组 、组组v 、组组 、组组v解答:解答:A. vB. C. D. E. F. 总总 结结v逻辑覆

温馨提示

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

评论

0/150

提交评论