白盒测试技术_第1页
白盒测试技术_第2页
白盒测试技术_第3页
白盒测试技术_第4页
白盒测试技术_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验六 白盒测试技术1实验要求与目的 T解白盒测试技术的原理; 熟悉常用的白盒测试技术; 掌握逻辑覆盖的不同标准及原理,能够设计测试用例;2实验原理与背景知识2.1 白盒测试输入实现细节图1白盒测试示意图白盒测试也称结构测试或逻辑驱动测试,它按照程 序内部的结构测试程序,通过测试来检测产品内部动作 是否按照设计规格说明书的规定正常进行,检验程序中 的每条通路是否都能按预定要求正确工作。它关注软件 产品的内部细节和逻辑结构,即把被测的程序看成是一 个透明的盒子,如图1所示白盒测试通常可分为 静态测试和动态测试两类方 法,其中静态测试不要求实际执行所测程序,主要以一 些人工的模拟技术对软件进行分析

2、和测试;而动态测试 是通过输入一组预先按照一定的测试准则构造的实例 数据来动态运行程序,从而达到发现程序错误的过程。白盒测试的测试方法 有代码检查法、静态结构分析法、逻辑覆盖法、基本路径测试法、域测试法、符号测试法、数据流测试法、Z路径覆盖法、程序变异法寺等°2.2 代码检查法代码检查是静态测试的主要方法,包括代码走查、桌面检查、流程图审查等。 代码检查主要检查代码和设计意图的一致性、代码结构的合理性、代码编写的标 准性和可读性、代码逻辑表达的正确性等方面,包括变量检查、命名和类型审查、 程序逻辑审查、程序语法检查和程序结构检查等内容。代码检查应该在编译和动态测试之前进行,在检查前,

3、应该准备好需求文档、程序设计文档、程序的源代码清单、代码编写标准和代码缺陷(错误)检查表。在实际使用中,代码检查法能够快速找到缺陷,发现30%到 70%的逻辑设计和编码缺陷, 而且代码检查法看到的是问题本身而非征兆。 但是代码检查法非常耗费时间,并且需要经验和知识的积累。代码检查法可以使用人工测试,也可以使用测试软件进行自动化测试。2.3 静态结构分析法静态结构分析是指测试者通过使用测试工具分析程序源代码的系统结构、 数据结构、数据结构、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、 内部文件调用关系图等各种图形和图表, 清晰得标识整个软件的组成结构,通过分析这些图表,检查软件是否

4、存在缺陷或错误。以函数调用的静态分析为例,主要分析一下内容:检查函数的调用关系是否正确;是否存在孤立的函数没有被调用;明确函数被调用的频繁度,对调用频繁的函数可以重点检查。2.4 程序插桩技术在调试程序时, 常常需要插入一些打印语句, 从而在执行程序时能够打印有关信息, 并进一步通过这些信息来了解程序执行时的一些动态特性, 例如, 程序的执行路径或特定变量在特定时刻的取值。 这一思想发展出来的程序插桩技术在软件 动态测试 中,作为一种基本的测试手段,有着广泛的应用。2.5 逻辑覆盖法逻辑覆盖是白盒测试的主要动态测试方法之一, 是以程序内部的逻辑结构为基础的测试技术,通过对程序逻辑结构的遍历实现

5、程序的覆盖。从覆盖源代码的不同程度可以分为以下6 个标准:语句覆盖(Statement Coverage, SC)判定覆盖(Decision Coverage, DC)条件覆盖(Condition Coverage, CC)判定/条件覆盖(Decision/Condition Coverage, D/CC)条件组合覆盖( Condition Combination Coverage, CCC)路径覆盖( Path Coverage, PC)正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语旬执行情况选用合适的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是

6、片面的测试出正确的结果或是测试错误的结果,而是尽可 能全面地覆盖每一个逻辑路径。3实验内容及步骤3.1 以下是一个被测模块的流程图,它的源程序如下。要求大家完成该被测模块 的各种逻辑覆盖,具体要求看实验步骤。AR X:REAL);PRCEDURE EXAMPLE(A,B:REAL; VREADBEGINIF (A>1) AND THENIF (A=2) OR THEN(B=0) X:=X/A;(X>1) X:=X+1;a2T4X=X/A5A>1ND B=0bF3T 6.A=2OR X>1X=X+1END;(1)语句覆盖语句覆盖的含义:选择足够多的测试数据,使被测程序中每

7、个语句至少执行一次。表1-1语句覆盖的测试用例测试用例序号(项目编号-项目版本号-模块号-测试用例编号)测试数据说明覆盖路径XX-V1-101-001A=2,B=0,X=4两个判定表达式都取真sacbed该测试用例虽然覆盖了可执行语句, 但是不能检查判断逻辑是否有问题(如写程序时将第一个判定表达式中的“ AND”错写为“ OR”,该测试用例无法检查出这个错误)。总结:语句覆盖是很不充分的一种测试,是最弱的逻辑覆盖标准。(2)判定覆盖含义:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都 应该至少执行一次,也就是每个判定的每个分支都至少执行一次表1-2判定覆盖的测试用例测试用例序号测

8、试数据说明覆盖路径XX-V1-101-001A=3,B=0,X=3»个判定表达式为 真第二个为假sacbdXX-V1-101-002A=2,B=1,X=1A个判定表达式为假第二个为真sabed总结:判定覆盖比语句覆盖强,但是对程序逻辑的覆盖程序仍然不高。(3)条件覆盖含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到 各种可能的结果表1-3条件覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001A=2,B=0,X=4满足 A>1,B=0, A=2和X>1的条件sacbedXX-V1-101-002A=1,B=1,X=1满足 A<=

9、1,B w 0, A 丰 2和X>1的条件sabd总结:条件覆盖通常比判定覆盖强,因为它使判定表达式中两个条件都取到 了两个不同的结果。(4)判定/条件覆盖含义:选取足够多的测试数据,是的判定表达式中的每个条件都取到各种可 能的值,而且每个判定表达式也都取到各种可能的结果。表1-4判定/条件覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001A=2,B=0,X=4两个判定表达式都为真(满足 A>1,B=0,A=2和X>1的条件)sacbedXX-V1-101-002A=1,B=1,X=1两个判定表达式都为假(满足 A<=1,B w0,A才2和X<

10、;=1的条件)sabd总结:判定/条件覆盖并不一定比条件覆盖强(5)条件组合覆盖含义:是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判 定表达式中的条件的各种可能组合都至少出现一次表1-5条件组合覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001A=2,B=0,X=4(针对 A>1,B=0 和 A=2,X>1组合)两个判定表达式都为假sacbedXX-V1-101-002A=2,B=1,X=1(针对 A>1,B w 0 和A=2,X<=1 组合)A个假第二个为真sabedXX-V1-101-003A=1,B=0,X=2(针对 A<

11、=1,B=0 和 Aw2,X>1组合)A个为假第二个为真sabedXX-V1-101-004A=1,B=1,X=1(针对 A<=1,B W0 和 A w2,X<=1 组合)两个判定表达式都为假sabd总结:满足条件组合覆盖标准的测试数据, 也一定满足判定覆盖、条件覆盖 和判定/条件覆盖标准,条件组合覆盖是几种覆盖标准中最强的,但是满足条件 组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到。(6)路径覆盖路径覆盖是指设计足够多的测试用例,使得被测程序中的每条路径至少被覆 盖一次。这种测试方法可以对程序进行彻底的测试,比前面的 5种的覆盖面都广。3.2 题目:下图(a)

12、是被测模块的程序流程图,为了方便测试,图(b)是对等 语句块的简化版流程图。要求大家使用逻辑覆盖法设计出被测程序的测试用例。表2-1语句覆盖的测试用例测试用例序号(项目编号-项目版本号-模块号-测试用例编号)测试数据说明覆盖路径XX-V1-101-001a=2,b=1,c=2,d=1两个判定表达式都为真ABCDE表2-2判定覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001a=2,b=2,c=0,d=0第一个为真第二个 为假ABCEXX-V1-101-002a=0,b=0,c=2,d=1第一个为假第二个 为真ACDE表2-3条件覆盖的测试用例测试用例序号测试数据说明覆盖路

13、径XX-V1-101-001a=1,b=2,c=3,d=4满足 a>0,b>0,c>0和 d>0的条件ABCDEXX-V1-101-002a=0,b=0,c=0,d=0满足a<=0,b<=0,c<=0 和 d<=0的条件ACE& c>o or d>o >st s【a12=2sum=stat1+stat2图(b)语句块简化流程图图(a)程序流程图表2-4判定/条件覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001a=1,b=2,c=3,d=4两个判定表达式都 为真(满足 a>0,b>0,c>0 和 d>0 的条件)ABCDEXX-V1-101-002a=0,b=0,c=0,d=0两个判定表达式都 为假(满足a<=0,b<=0,c<=0 和 d<=0的条件)ACE表2-5条件组合覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001a=1,b=2,c=3,d=4(针对a>0,b>0和 c>0,d>0的组合) 两个判定表达式都为假ABCDEXX-V1-101-002a=0,b=1,c=2

温馨提示

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

评论

0/150

提交评论