软件工程白盒测试之逻辑覆盖

时间:2024-03-14 16:05:51

    逻辑覆盖是以程序内部的逻辑结构为基础的设计测试 用例的技术。它属白盒测试,一般来说,逻辑覆盖分为4个分支,语句覆盖 • 条件覆盖 • 分支覆盖 • 条件组合覆盖。下面一一来说。

先给出一个流程图:

软件工程白盒测试之逻辑覆盖

一、语句覆盖:

设计测试用例,使得每个可执行的语句都要被执行一次,如上图的路线a->c->e就将4个可执行语句覆盖了。我们将该路线的判断语句进行合并,记住要考虑对应的情况,如果为F要取反。

软件工程白盒测试之逻辑覆盖

取得满足条件的测试用例【(2,0,4),(2,0,3)】

二、分支覆盖

分支覆盖就是设计若干个测试用例, 运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。如上图,我们选择a->b->d,a->c->e就将所有的判断分支都走过了一遍。我们也像上面一样推导条件:

软件工程白盒测试之逻辑覆盖

于是满足条件的测试用例【(1,0,1),(1,2,1)】

a->c->e满足条件的为【(2,0,4),(2,0,3)】(具体过程在一中已经推导)

三、条件覆盖

就是设计若干个测试用例, 运行被测程序,使得程序中每个判断的每个条件(按一个条件为单位)的可能取值至少执行一次。 例如上图中:

对于第一个判断:

    条件A>1,取真为T1,取假为F1

    条件 B=0 取真为T2 ,取假为F2

对于第二个判断: 

   条件 A=2,取真为T3,取假为F3

   条件 X>1,取真为T4,取假为F4

由此,我们可以根据路径a->b->e的不同取值来满足条件覆盖,如下:

软件工程白盒测试之逻辑覆盖

四、条件组合覆盖

条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断(按一个条件框为单位)的所有可能的条件取值组合至少执行一次。 

软件工程白盒测试之逻辑覆盖

由此:

软件工程白盒测试之逻辑覆盖