白盒测试是什么,第1张

白盒测试也称为结构测试透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法。盒子是指被测试的软件,白盒是指盒子是可见的,也就是知道盒子里面是什么,它是如何工作的。

白盒测试也称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法。盒子是指被测试的软件,白盒是指盒子是可见的,也就是知道盒子里面是什么,它是如何工作的。”白盒& # 8221;方法来充分理解程序的内部逻辑结构并测试所有逻辑路径。”白盒& # 8221;方法是一个穷举路径测试。在使用这种方案时,测试人员必须检查程序的内部结构,并通过检查程序的逻辑来获得测试数据。通过程序的独立路径数量是天文数字。

白盒测试是什么,白盒测试是什么,第2张

简介

白盒测试方法包括代码检查、静态结构分析、静态质量度量、逻辑覆盖、基本路径测试、域测试、符号测试、路径覆盖和程序变异。

白盒测试方法的覆盖标准包括逻辑覆盖、循环覆盖和基本路径测试。逻辑覆盖包括语句覆盖、决策覆盖、条件覆盖、决策/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力由弱变强:

1.语句覆盖每个语句至少执行一次。

2.覆盖每个决策的每个分支至少执行一次。

3.条件覆盖率每个判断的每个条件都应该取不同的可能值。

4.决策/条件覆盖同时满足决策覆盖条件覆盖。

5.条件组合包括每个判断中的每个条件组合至少出现一次。

6.路径覆盖使得程序中每一条可能的路径至少执行一次。

目的

通过检查软件的内部逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序的不同位置设置检查点,检查程序的状态,以确定实际运行状态是否与预期状态一致。

原则

(1)模块中的所有独立路径至少测试一次。

(2)所有逻辑值都需要测试真假。

(3)检查程序的内部数据结构,保证其结构的有效性。

(4)在值的上下边界和可操作范围内运行所有循环。

实施阶段

1.测试计划阶段:根据需求规范,制定测试进度。

2.测试设计阶段:根据程序设计说明和一定的标准化方法,划分软件结构,设计测试用例。

3.测试执行阶段:输入测试用例,获取测试结果。

4.测试总结阶段:将测试结果与代码的预期结果进行比较,分析错误原因,发现并解决错误。

分类

白盒测试方法一般分为两类:静态分析方法和动态分析方法。

静态分析是一种不执行程序的测试技术。静态分析的关键功能是检查软件的表示和描述是否一致,是否存在冲突或歧义。

动态分析是软件系统在模拟或真实环境中执行之前、期间和之后的行为分析。动态分析涉及在受控环境下,使用特定的预期结果对程序进行正式操作。检查时,它显示系统是否正确。在动态分析技术中,最重要的技术是路径和分支测试。

三步法

1.根据代码的功能,手工设计测试用例来测试基本功能;

2.计算白盒覆盖率,为未覆盖的白盒单元设计测试用例,实现完整的白盒覆盖。理想的覆盖率是实现100%的语句、条件、分支、路径覆盖;

3.自动生成大量测试用例,捕获& # 8221;有些特殊输入不是程序员处理的& # 8221;错误形成了。

第一步的测试用例通常是现成的,因为详细的设计文档会规定程序的基本功能。如果没有文档,程序员在编程的时候也要想清楚程序的功能。这些基本功能是基本的测试用例;

第二步是在第一步的基础上检查未覆盖的白盒单元。因为未覆盖的逻辑单元通常对应未测试的等价类,所以第二步可以找出第一步缺失的测试用例;

在步骤3中,自动动态测试用于弥补步骤2中的固有缺陷。

“三步法& # 8221;尽量避免重复劳动,白盒法和黑盒法结合,自动法补充手工法。如果第二步覆盖率理想,基本可以保证找出所有等价类。在开发过程允许的范围内,& # 8221;三步法& # 8221;已接近极限,当& # 8221;全面测试& # 8221;四个字。

工具选择

白盒测试主要用于可靠性要求高的软件领域,如军用软件、航天空软件、工控软件等。白盒测试工具应该主要支持开发语言、代码覆盖深度、嵌入式软件测试和测试可视化。

语言支持

白盒测试工具用于测试源代码,主要包括词法分析和语法分析、静态错误分析、动态检测等。但是,对于不同的开发语言,测试工具的方式和内容有很大的不同。测试工具支持的主要开发语言有:标准C、C++、Visual C++、Java、Visual J++。

覆盖层深度

从覆盖源程序语句的详细分析来看,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判断覆盖、条件覆盖、条件判断组合覆盖、多条件覆盖、修改判断条件覆盖。

1.语句覆盖为了暴露程序中的错误,程序中的每个语句至少应该执行一次。因此,语句覆盖(Statement Coverage)的含义是选择足够的测试数据,使得被测程序中的每条语句至少可以执行一次。语句覆盖是弱逻辑覆盖。

2.决策覆盖比语句覆盖稍强的覆盖标准是决策覆盖。决策覆盖的意义是设计足够多的测试用例,让程序中的每一个决策至少可以得到一个“真值”或一个“假值”,或者让程序中的每一个决策都走一个“真”分支,至少走一个“假”分支,所以决策覆盖也叫分支覆盖。

3.条件覆盖在设计程序中,判断语句是由多个条件组成的复合判断。为了更彻底地实现逻辑覆盖,可以采用条件覆盖的标准。条件覆盖的意义是构造一组测试用例,使得每个判断语句中每个逻辑条件的可能值至少可以满足一次。

4.多条件覆盖。多条件覆盖,也称为条件组合覆盖,是指设计足够多的测试用例,使得每个判断中所有可能的条件组合至少出现一次。显然,满足多条件覆盖的测试用例必须满足决策覆盖、条件覆盖和条件决策组合覆盖。

5.修改条件判断覆盖范围。修订后的条件确定覆盖范围是由欧美航空空/航天制造商和用户共同制定的“航空空运输与装备系统软件认证标准”,广泛应用于国外国防、航空空航天领域。这个覆盖度量需要足够的测试用例来确定每个条件是否会影响包含决策的结果。它需要两个条件:一是每个程序模块的入口点和出口点至少要调用一次,每个程序确定的所有可能的结果值至少要转换一次;其次,将程序的判断分解为逻辑运算符(and,or)连接的布尔条件,每个条件独立于判断的结果值。

不同的测试工具对代码有不同的覆盖能力,能够支持修改条件来确定覆盖的测试工具极其昂贵。

检测方法

白盒测试最广泛使用的测试方法是基本路径测试方法。

基本路径测试方法是基于程序控制流程图,通过分析控制构造的循环复杂度,推导出基本可执行路径集来设计测试用例的方法。设计的测试用例应该确保程序的每个可执行语句在测试期间至少被执行一次。

在程序控制流程图的基础上,通过分析控制构造的循环复杂度,推导出基本的可执行路径集,并设计测试用例。包括以下四个步骤和一种工具方法:

这四个步骤是:

1.程序控制流程图:描述程序控制流程的图解方法。

2.程序圈复杂度:McCabe复杂度测度。从程序的循环复杂度可以推导出程序基本路径集中的独立路径数,这是确定程序中每个可执行语句至少执行一次所需的测试用例数的上限。

3.导出测试用例:根据周期和程序结构的复杂程度,设计数据输入和测试用例的预期结果。

4.准备测试用例:确保基本路径集中每个路径的执行。

基本路径测试方法的步骤:

第一步:绘制控制流程图

流程图用于描述程序控制结构。您可以将流程图映射到相应的流程图(假设流程图的菱形决策框不包含复合条件)。在流程图中,称为流程图节点的每个圆圈代表一个或多个语句。一系列处理块和菱形块可以映射到一个节点。流程图中的箭头,称为边或连接,代表控制流程,类似于流程图中的箭头。一条边必须在一个节点处结束,即使该节点不代表任何语句(例如,if-else-then结构)。由边和节点围成的范围称为面积。计算面积时,应包括图外的范围。

第二步:计算圆的复杂度

周期复杂性是一种软件度量,它为程序的逻辑复杂性提供了一种定量的度量。用于计算程序的基本独立路径数,是保证所有语句至少执行一次的测试次数的上限。独立路径必须包含定义前未使用的边。

计算周期复杂度有三种方法:

流程图中区域的数量对应于环型的复杂度;

给定流图G的循环复杂度V(G),定义为V(G)=E-N+2,其中E为流图中的边数,N为流图中的节点数;

给定流图G的循环复杂度V(G),定义为V(G)=P+1,其中P是流图G中的决策节点数..

第三步:导出测试用例按照上面的计算方法,可以得到四条独立的路径。(独立路径是指与其他独立路径相比,引入至少一个新的处理语句或一个新的判断的程序路径。V(G)的值正好等于程序的独立路径数。)

路径1: 4-14

路径2: 4-6-7-14

路径3: 4-6-8-10-13-4-14

路径4: 4-6-8-11-13-4-14

根据上述独立路径,设计输入数据,并使程序分别执行上述四条路径。

优点和缺点

优势

(1)迫使测试人员仔细考虑软件的实现。

(2)可以检测代码中的每个分支和路径

(3)揭示代码中隐藏的错误。

(4)代码经过全面测试。

(5)优化软件。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 白盒测试是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情