白盒测试的常用技术主要有7种,下面我们将分别介绍。

一、逻辑覆盖法

逻辑覆盖法主要讨论以下四点:

测试覆盖率。

逻辑覆盖。

面向对象的覆盖。

测试覆盖准则。

下面分别进行讨论。

1.测试覆盖率

测试覆盖率是用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。

测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高,效果越好。但覆盖率不是目标,而是一种手段。

测试覆盖率包括功能点覆盖率和结构覆盖率。

1)功能点覆盖率主要用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。

2)结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。

2.逻辑覆盖

根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修改条件判定覆盖、组合覆盖和路径覆盖。

(1)语句覆盖

语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。语句覆盖的缺点是对程序执行逻辑的覆盖率很低。

(2)判定覆盖

判定覆盖是通过设计足够多的测试用例,使得程序中的每一个判定至少获得一次真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少经历一次,也称为分支覆盖。判定覆盖的缺点是主要对整个表达式的最终取值进行度量,忽略了表达式的内部取值。

(3)条件覆盖

条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。条件覆盖的缺点是不能够满足判定覆盖。

(4)条件判定组合覆盖

条件判定组合覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。条件判定组合覆盖的测试用例一定同时满足判定覆盖和条件覆盖。条件判定组合覆盖的缺点是没有考虑单个判定对整体结果的影响,无法发现逻辑错误。

(5)多条件覆盖

多条件覆盖也称条件组合覆盖,是通过设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。

多条件覆盖的缺点是判定语句较多时,条件组合值比较多。

51/512345>