软件测试当中的白盒测试
发布时间:2024-04-24

在讲白盒测试之前,我们先来举一个例子,让大家理解黑盒测试和白盒测试之前的区别和联系。

 

以生活中的自动售货机为例,在对一个自动售货机进行测试时,我们可以准备大量的硬币,如1元的、5角的,甚至游戏币来对自动售货机进行黑盒测试和白盒测试。


如果进行黑盒测试,测试人员并不清楚自动售货机内部的机械结构,但是测试人员很清楚售货机要实现的功能。下面给出几个示例。


如果投人 1元钱,购买价值5角钱的货物,售货机会送出货物并且找零。

如果投人 5角钱,购买价值5角钱的货物,售货机只送出货物。

如果投人游戏币,售货机会识别并退还游戏币。

……


对于测试人员而言,只要了解了售货机的功能,就完全可以站在用户即消费者的角度进行测试。


给售货机投人不同组合的硬币,分别选择不同的货物,然后观察自动售货机将送出什么。将售货机的输人和输出一一对应起来,检测售货机的功能是否正确。


这就是对自动售货机的黑盒测试。


按下来,测试人员换一个角度,对自动售货机进行白盒测试。这时需要把自动售货机外围的一层铁皮全部拿走,看清楚售货机内部的机械结构,确定有多少个机械结构,每个机械结构由哪些零配件组成,零配件和零配件之间的触发是否正常,并针对每个机械结构开展测试。通过这种测试方法可以测试每种机械结构,一般不会存在漏测的可能。


这就是对自动售货机的白盒测试。

 

白盒测试有多种叫法,如玻璃盒测试 (glass box testing)、透明盒测试(clear box testing)、开放盒测试 (open box testing)、结构化测试(structured testing)、基于代码的测试(code-based testing)、逻辑驱动测试(logic-driven testing)等。


白盒测试是一种测试用例设计方法,在这里盒子指的是被测试的软件。顾名思义,白盒是可视的,你可以看到盒子内部的东西及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。

 

白盒测试的目的有4个:

 

1) 保证一个模块中的所有独立路径至少使用一次。

2) 对所有逻辑值均测试 true和false。

3) 在上下边界及可操作范围内运行所有循环。

4) 检杳内部数据结构以确保其有效性。

 

白盒测试技术一般可分为静态分析和动态分析两类。

 

● 静态分析技术:主要有控制流分析技术、数据流分析技术、信息流分析技术。

● 动态分析技术:主要有逻辑覆盖率测试(分支测试、路径测试等)、程序插装等。


1. 覆盖率


在白盒测试中另外一个经常用到的技术是覆盖率技术。一方面,覆盖率技术可以指导测试用例的设计;另一方面,可以通过覆盖率来衡量白盒测试的力度。


白盒测试中经常用到的覆盖率是逻辑覆盖率,主要有语句覆盖率、判定覆盖率、条件覆盖率、判定条件覆盖率、路径覆盖率。


1)语句覆盖:所有的“语句”都要覆盖一遍。就是设计若干个测试用例,运行被测程序,使得每一个执行语句至少执行一次。

 

2)判定覆盖:包含语句覆盖,每个判断T、F各一次。使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。

 

3)条件覆盖:包含语句覆盖,每个条件T、F各一次是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。

 

4)判定条件覆盖:包含判定覆盖、条件覆盖。说白了就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断本身所有的结果,也要至少执行一次(判定覆盖)。不难发现判定条件覆盖同时满足判定覆盖和条件覆盖,弥补了两者各自的不足,但是判定条件覆盖并未考虑条件的组合情况。

 

5)路径覆盖:所有路径至少执行一次。

 


更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/