白盒测试主要使用逻辑覆盖测试方法,包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等。
假设逻辑判断流程图如下图所示,我们简单来说说每种白盒测试方法是如何来进行的。
一、语句覆盖
语句覆盖的定义是:程序中的每个可执行语句至少执行1次。能发现语句错误,但不能发现逻辑错误。
那就是相当于把ABCD四条路径都要走一遍,则至少需要3条测试用例:AB、AC、AD。具体测试用例根据实际情况来定。
二、判定覆盖
判定覆盖也称分支覆盖,程序中的每个判定的取真分支和取假至少执行一次。能发现逻辑错误,但不能发现组合判断中的条件错误。
如上图所示,即要保证圈起来的N和Y路径都要执行一次。
三、条件覆盖
条件覆盖的定义是:程序每个判定中每个条件的可能取值至少满足一次,能发现条件错误,但不能发现逻辑错误。
即表示每个判定里面的每个小条件真或假各取一次。如:
判定一:
条件1(真)条件2(假)条件3(假)
条件1(假)条件2(真)条件3(真)
判定二:
条件1(真)条件2(假)
条件1(假)条件2(真)
四、判定条件覆盖
判定条件覆盖的定义:每个条件中的所有可能取值至少执行一次,同时,每个判定的可能结果至少执行一次。(即判定结果中真假至少执行一次,且每个条件的真假也至少执行一次)
判定结果:真、假
条件1(真)条件2(假)条件3(假)
条件1(假)条件2(真)条件3(真)
五、条件组合覆盖
条件组合覆盖的定义:每个判定中的所有的条件取值组合至少执行一次。
比如有3个条件,那每个条件组合都要执行一次,那就是8条用例:
真真真,真真假,真假真,真假假,假真真,假真假,假假真,假假假
如果有2个条件,那就是4条用例:
真真、真假,假真,假假
五、路径覆盖
路径覆盖的定义:用例覆盖程序中的所有可能的执行路径,如果路径数很多,会变得不切实际。
本例中的路径就只有:AB、AC、AD。
以上为本人对于白盒测试方法的理解,如有错误欢迎指正。