本文主要是介绍15.白盒测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
白盒测试也是下午题的重点;几乎每年必考;
主要议题:
1.白盒测试概念
把软件看成透明的盒子,了解盒子中的对象,和数据的流动过程;
3.代码检查法
人工测试;
代码审查:
1、给代码、文档给评审小组,供其阅读;
2、程序员讲解代码设计,评审小组根据讲解情况看有无设计问题;
走查:评审小组拿到测试用例后人工运行代码;即以人的思想充当计算机运行程序,看有无问题;
这3中方法效率低;
静态结构分析、静态质量度量,看下课本即可,考试很少涉及;
3.逻辑覆盖法
重点,下图所有方法都需要掌握;
3.1.语句覆盖
设计足够多的测试用例,使得程序中的每个语句至少被覆盖一次;
要以最少的工作量达到目的;
虽然测试了整条路径,但是无法判断出逻辑表达式中&&写成||的情况;
以下面x=4,y=2,z=0这个测试用例,对逻辑表达式的判定,只有一半,即真的那半;覆盖程度弱;
3.2.判定覆盖
设计足够多的测试用例,使得程序中每个判定的真分支、假分支都被执行过;
虽然测试了整条路径,但是无法判断出逻辑表达式中&&写成||的情况;
3.3.条件覆盖
设计足够多的测试用例,使得每个判定中的条件的真假值都要出现过一次;
也就是说,第一个判定中,y>1和z0,这两个条件都要出现一次;
y>1 z0 结果
T T T (1)
F F F
或
T F F (2)
F T F
只关注条件的真假值,不关注判定结果的真假值;
所以也有弊端,如上面的(1)无法判断出逻辑表达式中&&写成||的情况;而(2)的判定结果只覆盖了假的情况;
3.4.条件判定组合覆盖
既满足条件覆盖的要求,同时对结果也要满足判定覆盖的要求;
既关注条件的真假值,也关注判定结果的真假值;
如上述(1)就满足;
同样无法判断出逻辑表达式中&&写成||的情况;
3.5.多条件覆盖(条件组合覆盖)
设计足够多的测试用例,使得判定真的各个条件的各种可能组合(TT、TF、FT、FF)都出现过一次;
如果有n个条件,则需要2的n次方的组合,覆盖性强,工作量大;
3.6.修正判定条件覆盖
为避免MCC工作量大的问题;
要求程序的入口和出口被覆盖过一次(符合条件覆盖、判定覆盖),条件对判定结果是独立的(即满足二次计算);
对于条件a,可以选择测试用例1、5;因为1、5中,a变,b、c不变,结果变,符合二次计算的要求;
不可选择测试用例4、8;因为4、8中,a变,b、c不变,结果不变,不符合二次计算的要求;
同理可选择出关于条件b、c,符合二次计算要求的测试用例;
我们有以下三种选择:
1、5 2、4 3、4, 删除重复测试用例:1、2、3、4、5;
2、6 2、4 3、4, 删除重复测试用例:2、3、4、6;
3、7 2、4 3、4, 删除重复测试用例:2、3、4、7;
4.基本路径测试法
这篇关于15.白盒测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!