白盒测试基本概念(学习笔记)
1.1白盒测试基本概念
测试工作中我们经常遇到的两种测试,就是白盒测试和黑盒测试。基本概念区分如下:
软件的白盒测试是对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
因此,白盒测试也称为结构测试或逻辑驱动测试。
1.2白盒测试测试基本内容
白盒测试方法,主要对程序模块进行如下的检查:
1、对程序模块的所有独立的执行路径至少测试一次;
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次;
3、在循环的边界和允许界限内执行循环体;
4、测试内部数据结构的有效性,等。
1、关于独立执行路径的概念,解释如下:
if(条件判断1)
语句1;
else
语句2;
语句3;
这一段代码就,执行了以下两条独立执行路径
*:if(1)->语句1->语句3
*:if(0)->else->语句2->语句3
2、逻辑判定,还是上面的结构,if(0)与if(1)都要测试一次
3、循环边界测试和允许界限测试执行循环体
如for(i=0;i<100;i++) i<100就是测试边界 【0,100)就是允许界限内执行循环体
4、这个不知道是啥意思
1.3、白盒测试-特征
已知产品内部工作过程,通过测试来检测产品内部动作是否按照编码规格说明书的规定正常进行,而不管它的功能。这里对应的黑盒测试,黑盒测试就是只关注测试结果,最然黑盒测试也是需要判定覆盖率的问题。但是只能关注到最后地结果。软件覆盖率虽然也可以使用,但是需要使用专门的软件来检测。
白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据 。也就是说白盒测试,需要去研究代码的。
2、白盒测试的方法
白盒测试
语句覆盖
判定覆盖
条件覆盖
判定/条件覆盖
组合覆盖
基本路径覆盖
主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。这样的缺点就是测试代码量非常巨大。可能源代码只有几千行,测试代码可能就有上万行。
缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。