软件测试技术基础CH_第1页
软件测试技术基础CH_第2页
软件测试技术基础CH_第3页
软件测试技术基础CH_第4页
软件测试技术基础CH_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、 n4.1 4.1 白盒测试基本概念白盒测试基本概念n4.2 4.2 逻辑覆盖逻辑覆盖n4.3 4.3 独立路径测试独立路径测试n4.4 4.4 循环测试循环测试n4.5 4.5 面向对象的白盒测试面向对象的白盒测试n4.6 4.6 其他白盒测试方法简介其他白盒测试方法简介n本章小结本章小结n练习题练习题n思考题思考题4.1 白盒测试基本概念白盒测试基本概念n白盒测试(白盒测试(White-box Testing)u原理原理l把程序看成装在一个透明的白盒子里,程序的结构和处把程序看成装在一个透明的白盒子里,程序的结构和处理过程完全可见。理过程完全可见。l检查程序结构和处理过程是否存在问题。检查

2、程序结构和处理过程是否存在问题。l检查程序中的每条通路是否存在问题。检查程序中的每条通路是否存在问题。 l测试依据测试依据被测程序的源代码,而不是软件的规格说明。被测程序的源代码,而不是软件的规格说明。l因此,白盒测试也称作因此,白盒测试也称作结构测试、逻辑驱动测试结构测试、逻辑驱动测试基于源代码的测试、基于覆盖的测试。基于源代码的测试、基于覆盖的测试。4.1 白盒测试基本概念白盒测试基本概念n白盒测试方法白盒测试方法u静态测试静态测试l代码检查法、静态结构分析法、静态质量度量代码检查法、静态结构分析法、静态质量度量u动态测试动态测试l逻辑覆盖逻辑覆盖语句覆盖、判定覆盖、条件覆盖、判定语句覆盖

3、、判定覆盖、条件覆盖、判定-条件覆盖条件覆盖条件组合、路径测试条件组合、路径测试l循环覆盖循环覆盖l基本路径测试基本路径测试u其它方法其它方法l域测试、域测试、Z路径测试路径测试、数据流测试、数据流测试l4.1 白盒测试基本概念白盒测试基本概念n测试人员测试人员u白盒测试要求测试人员对程序的结构和处理过程有完全的了白盒测试要求测试人员对程序的结构和处理过程有完全的了解,一般由开发工程师负责实施。解,一般由开发工程师负责实施。n检查内容检查内容u路径路径l对程序模块的所有独立执行路径至少要测试一次。对程序模块的所有独立执行路径至少要测试一次。u逻辑判定逻辑判定l对所有的逻辑判定,取真或假的两种情

4、况至少要测试一次。对所有的逻辑判定,取真或假的两种情况至少要测试一次。u边界边界l对程序进行边界检查。常见的如数据越界检验等。对程序进行边界检查。常见的如数据越界检验等。u内部数据结构内部数据结构l检验内部数据结构的有效性。检验内部数据结构的有效性。4.1 白盒测试基本概念白盒测试基本概念n基本概念基本概念流图流图u流程图的一种简化表示。流程图的一种简化表示。可描述可描述l一个软件程序的结构一个软件程序的结构l程序的运行过程。程序的运行过程。u组成组成l结点或节点结点或节点带有标带有标号的圆圈号的圆圈l控制流线或边线控制流线或边线带带有箭头的弧线或线有箭头的弧线或线4.1 白盒测试基本概念白盒

5、测试基本概念n基本概念基本概念流图的图示流图的图示4.1 白盒测试基本概念白盒测试基本概念n基本概念基本概念流图的图示流图的图示节点节点边边区域区域复合条件分解为多个单个条件!复合条件分解为多个单个条件!4.1 白盒测试基本概念白盒测试基本概念n基本概念基本概念环形复杂度环形复杂度u也称圈复杂度也称圈复杂度(Cyclomatic Complexity)l是程序结构复杂性的度量方法,。是程序结构复杂性的度量方法,。u圈复杂度圈复杂度l由由Thomas J. McCabe, Sr 于于1976提出提出,用来指示程序用来指示程序的复杂程度的复杂程度,它是一个软件复杂度的度量标准它是一个软件复杂度的度

6、量标准l主要用来衡量代码中所以线性独立的路径条数主要用来衡量代码中所以线性独立的路径条数.l圈复杂度大圈复杂度大说明程序代码可能质量低且难于测试和维护。说明程序代码可能质量低且难于测试和维护。l根据经验根据经验程序的可能错误和高的圈复杂度有着很大关系。程序的可能错误和高的圈复杂度有着很大关系。4.1 白盒测试基本概念白盒测试基本概念n圈复杂度的几种计算圈复杂度的几种计算u(1) 对于结构化程序的圈复对于结构化程序的圈复杂度杂度V(G)定义:定义:lV(G)EN2P其中:其中:E 表示控制流图的边表示控制流图的边的数量。的数量。N 表示控制流图的表示控制流图的节点数。节点数。P 表示控制流图中表

7、示控制流图中相连接的部分,因为控制流相连接的部分,因为控制流图都是连通的,所以图都是连通的,所以P 为为1。l例(右图)例(右图)V(G) =107254.1 白盒测试基本概念白盒测试基本概念n圈复杂度的几种计算圈复杂度的几种计算u(2)控制流图构成强连通图控制流图构成强连通图时应用:时应用:lV(G)ENP其中:其中:E 表示控制流图的边表示控制流图的边的数量。的数量。N 表示控制流图的表示控制流图的节点数。节点数。P 表示控制流图中表示控制流图中相连接的部分,相连接的部分,P通常通常 为为1。l例(右图)例(右图)V(G) =117154.1 白盒测试基本概念白盒测试基本概念n圈复杂度的几

8、种计算圈复杂度的几种计算u(3)圈复杂度等于控制流图圈复杂度等于控制流图将平面划分成区域的数量将平面划分成区域的数量应用:应用:lV(G)R其中其中R 表示区域数。表示区域数。l例(右图)例(右图)各区域以及控制流图之外区各区域以及控制流图之外区域数量之和为域数量之和为5,所以此控,所以此控制流图的圈复杂度制流图的圈复杂度V(G) =5R1R2R3R4R54.1 白盒测试基本概念白盒测试基本概念n圈复杂度的几种计算圈复杂度的几种计算u(4)圈复杂度等于控制流图圈复杂度等于控制流图中判定节点的数量加中判定节点的数量加1:lV(G)P+1其中其中P 表示判定节点数表示判定节点数;判定节点判定节点指

9、包含条件的节点,指包含条件的节点,也称谓词节点。也称谓词节点。l例(右图)例(右图)V(G) =4+1=5P1P2P3P44.1 白盒测试基本概念白盒测试基本概念n圈复杂度的计算圈复杂度的计算uV(G) =?4.1 白盒测试基本概念白盒测试基本概念n圈复杂度的计算圈复杂度的计算uV(G)EN2PlE=?(19);lN=?(13) P=?(1)uV(G)ENPlE=? (20)l N=? (13) P=? (1) uV(G)RlR=?(8)uV(G)P+1lP=? (7)R1P14.1 白盒测试基本概念白盒测试基本概念n基本概念基本概念图矩阵图矩阵u即流图的邻接矩阵表示形式。即流图的邻接矩阵表示

10、形式。12345671e1e22e4e53e3e94e6 e75e86e?7e104.2 逻辑覆盖逻辑覆盖n4.2.1 4.2.1 逻辑覆盖标准逻辑覆盖标准n4.2.2 4.2.2 最少测试用例数计算最少测试用例数计算4.2.1 4.2.1 逻辑覆盖标准逻辑覆盖标准n语句覆盖语句覆盖n判定覆盖判定覆盖n条件覆盖条件覆盖n判定判定/ /条件覆盖条件覆盖n条件组合覆盖条件组合覆盖n路径覆盖路径覆盖语句覆盖语句覆盖n设计足够的测试用例,设计足够的测试用例,使得程序中的每个语句使得程序中的每个语句至少执行一次。至少执行一次。n但没有考虑但没有考虑u条件取值不同的情况。条件取值不同的情况。 入口入口A

11、1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFABXiXo用例用例12043判定覆盖判定覆盖又称分支覆盖又称分支覆盖n设计足够的测试用例,设计足够的测试用例,使得在语句覆盖的基础使得在语句覆盖的基础上上,n程序中每个判定的取程序中每个判定的取“真真”分支和取分支和取“假假”分分支至少都执行一次。支至少都执行一次。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFABXiXo用例用例13031用例用例22 1 11+1条件条件覆盖覆盖n设计足够的测试用例,设计足够的测试用例,在语句覆盖的基础上在语句覆盖的基础

12、上,n使得程序判定中的每个使得程序判定中的每个条件能获得条件能获得u各种可能的结果。各种可能的结果。ABXiXo用例用例1用例用例2用例用例1A用例用例2A入口入口AND B=0TOR TX = X / AX = X + 1返回返回FF条件: 判定判定/条件覆盖条件覆盖n设计足够的测试用例,使得同设计足够的测试用例,使得同时满足时满足判定判定和和条件覆盖条件覆盖。n判定判定uA 1 AND B=0; A =2 OR X1n条件条件uA 1, A =1;B=0,B0;uA =2 , A 2;X1,X= 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFABXi

13、Xo用例用例12043用例用例21 1 12条件组合条件组合覆盖覆盖n设计足够的测试用例,设计足够的测试用例,使得程序使得程序所有所有判定中的判定中的每个条件能获得每个条件能获得u各种可能各种可能组合至少一次组合至少一次。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFABXiXo用例用例1用例用例2用例用例3用例用例4路径覆盖路径覆盖n结点覆盖结点覆盖u运行所测程序,要覆盖程序中所有结点。运行所测程序,要覆盖程序中所有结点。n边覆盖边覆盖u运行所测程序,要覆盖程序中所有边。运行所测程序,要覆盖程序中所有边。n路径测试路径测试u运行所测程序,要

14、覆盖程序中所有可能的路径。运行所测程序,要覆盖程序中所有可能的路径。路径覆盖路径覆盖n设计足够的测试用例,设计足够的测试用例,使得程序中使得程序中u每一条可能路径都至少执每一条可能路径都至少执行一次。行一次。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFABXiXo用例用例1用例用例2用例用例3用例用例4各种结构测试方法发现错误能力各种结构测试方法发现错误能力n各种结构测试方法发现错误能力从小到大:各种结构测试方法发现错误能力从小到大:u语句覆盖:每条语句至少执行一次。语句覆盖:每条语句至少执行一次。u判定覆盖:每个判定的每个分支至少执行一次

15、。判定覆盖:每个判定的每个分支至少执行一次。u条件覆盖:每个判定中的每个条件应取到各种可能条件覆盖:每个判定中的每个条件应取到各种可能的值。的值。u判定判定-条件覆盖:同时满足判定覆盖和条件覆盖。条件覆盖:同时满足判定覆盖和条件覆盖。u条件组合覆盖:条件组合覆盖:l每个判定中各条件的每一种组合至少出现一次。每个判定中各条件的每一种组合至少出现一次。u路径覆盖:路径覆盖:l使程序中每一条可能的路径至少执行一次。使程序中每一条可能的路径至少执行一次。n各种结构测试方法各种结构测试方法u都不能保证证明程序的正确性都不能保证证明程序的正确性各种结构测试方法之间关系各种结构测试方法之间关系条件组合覆盖准

16、则条件组合覆盖准则判定判定-条件覆盖准则条件覆盖准则判定覆盖准则判定覆盖准则条件覆盖准则条件覆盖准则语句覆盖准则语句覆盖准则路径覆盖准则路径覆盖准则不考虑语句不考虑语句或分支是否或分支是否被执行,因被执行,因此它与语句此它与语句覆盖之间没覆盖之间没有包含关系,有包含关系,和判定覆盖和判定覆盖之间也没有之间也没有包含关系。包含关系。对一般程序测试,要达到对一般程序测试,要达到100%的路径覆的路径覆盖几乎是不可能的。所以可以使用基本路盖几乎是不可能的。所以可以使用基本路径测试。径测试。4.2 逻辑覆盖逻辑覆盖测试举例测试举例n程序段:程序段:uvoid Do (int X,int A,int B

17、)u 1. if ( (A0) & (B2) )2. X=X+A;3. else4. 5. if ( (A=0) | (X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X0 and B2A=0 or X 0)u5 u6 if(0= =iType)u7 x=y+2;u8 elseu9 if(1= =iType)u10 x=y+10;u11 elseu12 x=y+20;u13 u14 独立路径测试独立路径测试举例举

18、例n第一步:画出控制流图第一步:画出控制流图 独立路径测试独立路径测试举例举例n第二步:计算圈复杂度第二步:计算圈复杂度uV(G)EN2Pl=10-8+2=4uV(G)R=4uV(G)P+1=3+1=4n第三步:得出独立的路第三步:得出独立的路径:径:u路径路径1:4-14u路径路径2:4-6-7-14u路径路径3:4-6-8-10-13-4-14u路径路径4:4-6-8-11-13-4-14 独立路径测试独立路径测试举例举例n第四步:准备测试用例第四步:准备测试用例u路径路径1:4-14u输入数据:输入数据:iRecordNum0,u或者取或者取iRecordNum0的某一个值的某一个值u预

19、期结果:预期结果:x0n路径路径2:4-6-7-14u输入数据:输入数据:iRecordNum1,iType0u预期结果:预期结果:x2n路径路径3:4-6-8-10-13-4-14u输入数据:输入数据:iRecordNum1,iType1u预期结果:预期结果:x10n路径路径4:4-6-8-11-13-4-14u输入数据:输入数据:iRecordNum1,iType2u预期结果:预期结果:x20 独立路径测试独立路径测试举例举例n利用图矩阵,可快速找出判定利用图矩阵,可快速找出判定结点,由此可求出复杂度。结点,由此可求出复杂度。n由此复杂度,可求出独立路径由此复杂度,可求出独立路径数。数。

20、4 6 7 8 10 11 13 14 4678101113141111111111图形矩阵独立路径测试独立路径测试举例举例n测试用例的获取(设计)测试用例的获取(设计)u凭经验凭经验l获取一些对应独立路径的测试用例。获取一些对应独立路径的测试用例。u对未测试的路径对未测试的路径l设计相应的测试用例。设计相应的测试用例。u对特殊路径对特殊路径l设计指定的测试用例。设计指定的测试用例。u至少所有独立路径被测试。至少所有独立路径被测试。4.4 循环测试循环测试n三种循环三种循环4.4 循环测试循环测试n简单循环测试方案简单循环测试方案u假设假设n是允许通过循环的最大次数是允许通过循环的最大次数l跳

21、过循环跳过循环l只通过循环一次只通过循环一次l通过循环两次通过循环两次l通过循环通过循环m次,其中次,其中m 2 & b4 | d0) if (0 = i_flag) i_temp = i_count + 100; break; else i_temp = i_temp + 20; i_count-; return i_temp; 练习题练习题n6对如图对如图4.15所示所示的的N-S图,计算所图,计算所需的最少测试用例需的最少测试用例数。数。思考题思考题n1、 简述白盒测试(简述白盒测试(White-box Testing)u基本原理、测试依据、对测试人员的要求。基本原理、测试依据、对测试人员的要求。n2、 白盒测试有哪些方法?白盒测试有哪些方法?u静态测试时有:静态测试时有:u动态测试时有:动态测试时有:u其它方法有:其它方法有:思考题思考题n3、 根据给定根据给定的程序流程图的程序流程图,画出相应的,画出相应的控制流图。控制流图。思考题思考题n4、 根据给定的控

温馨提示

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

评论

0/150

提交评论