白盒测试技术

上传人:ni****g 文档编号:509847664 上传时间:2023-12-25 格式:DOCX 页数:8 大小:61.80KB
返回 下载 相关 举报
白盒测试技术_第1页
第1页 / 共8页
白盒测试技术_第2页
第2页 / 共8页
白盒测试技术_第3页
第3页 / 共8页
白盒测试技术_第4页
第4页 / 共8页
白盒测试技术_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《白盒测试技术》由会员分享,可在线阅读,更多相关《白盒测试技术(8页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

5、句覆盖(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以下是一个被测模块的流程图,它的源程序如下。要求大家完成该被测模块 的各种逻辑覆盖,具体要求看实验步骤。PRCEDURE EXAMPLE(A,B:REAL; VAR X:REAL);READBEGINIF (A1) AND (B=0)THEN X:=X/A;IF (A=2) OR (X1)THEN X:=X+1;END;1 TAND B=0 -1 一返回X=X/AX=X+1(1)语句覆盖语句覆盖的含义:选择足够多的测试数据,使被测程序中每个语句至少执行 一次。表1-1语句覆盖的测试用例测试用例序号(项目编号一项目版本号一模块号一测试用例编号)XX-V1

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

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

9、是的判定表达式中的每个条件都取到各种可 能的值,而且每个判定表达式也都取到各种可能的结果。表1-4判定/条件覆盖的测试用例测试用例序号测试数据说明覆盖路径XX-V1-101-001A=2,B=0,X=4两个判定表达式都为真(满足 A1,B=0,A=2和X1的条件)sacbedXX-V1-101-002A=1,B=1,X=1两个判定表达式都为 假(满足 A=1,BN0,A N2和X1,B=0 和 A=2,X1覆盖路径XX-V1-101-001A=2,B=0,X=4组合)两个判定表达式都为假(针对 A1,B丰0和sacbedXX-V1-101-002A=2,B=1,X=1A=2,X=1 组合)第一

10、个假第二个为真(针对 A1组合)第一个为假第二个为真(针对 A=1,B/0 和 A/sabedXX-V1-101-004A=1,B=1,X=12,X0,b0,c0 和 d0的条件ABCDEXX-V1-101-002a=0,b=0,c=0,d=0满足 a=0,b=0,c=0 和 d0,b0,c0 和 d0的条件)ABCDEXX-V1-101-002a=0,b=0,c=0,d=0两个判定表达式都为假(满足 a=0,b=0,c=0 和 d0,b0,和 c0,d0的组合) 两个判定表达式都为假ABCDEXX-V1-101-002a=0,b=1,c=2,d=0(针对a0和 c0,d0,b=0和 c0的组合) 第一个为假第二个为真ACDEXX-V1-101-004a=0,b=0,c=0,d=0(针对 a=0,b=0,和 c=0,d=0 的组合)两个判定表达式都为假ACE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号