1、白盒测试概念
白盒测试又称为结构测试,主要是根据程序的内部结构和逻辑来设计测试用例,然后对程序的路径和过程进行测试,检查是否满足设计的需要。
2、白盒测试常用的技术介绍
白盒测试常用的技术有逻辑覆盖、循环覆盖、基本路径测试。
2.1 逻辑覆盖
逻辑覆盖考察用测试数据运行被检测程序时,对程序逻辑的覆盖程度。常用的逻辑覆盖标准语句:判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
语句覆盖:主要是指选择足够的测试数据,使得被测试程序中每条语句至少执行一次。一般情况下语句覆盖对程序执行逻辑覆盖率很低,属于弱逻辑覆盖。
判定覆盖:主要是指设计足够的测试用例,,使得程序中每个判定表达式至少获得一次true或false。判断覆盖也成为分支覆盖。
条件覆盖:条件覆盖是指构造一组测试用例,使得每一个判定语句中每个逻辑条件的各种可能的值,至少满足一次。
判定/条件覆盖:主要是指设定足够的测试用例,使得判定语句中每个条件的所有可能取值,至少出现一次,,并且每个判定本身的判断结果至少也出现一次。
条件组合覆盖:主要是指设计足够的用例,使得每个判定条件的各种可能的组合都至少出现一次。满足条件组合覆盖的一定满足判定覆盖、条件覆盖、判定/条件覆盖。
路径覆盖:主要是指覆盖被测试程序中所有可能的路径。
2.2 循环覆盖
循环覆盖就是指执行足够的测试用例,使得循环中的每个条件都得到验证。
2.3 基本路径测试
基本路径测试是在程序控制流图的基础上,通过分析控制流图的环路复杂性,导出基本可执行路径集合,从而设计相应的测试用例。设计出的测试用例要保证在测试中程序的每一条独立路径都执行过。
3、白盒测试的原则
程序模块中所有独立路径至少执行一次
在所有逻辑判断中,取trueh和false的两种情况至少都执行一次。
每个循环都应在边界条件和一般条件下各执行一次。
测试程序内部数据结构的有效性
4、白盒测试和黑盒测试优缺点
测试类型 | 优点 | 缺点 |
白盒测试 | 可以帮助软件测试人员增大代码的覆盖率。 提升代码的质量,发现代码中隐藏的问题 | 1、程序运行会有很多不同的路径,不可能测试所有的运行路径 2、测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求 3、系统庞大时,测试开销会非常大。 |
黑盒测试 | 1、比较简单,不需要了解程序的内部的代码及实现 2、与软件的内部实现无关 3、从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题 4、基于软件开发文档,所以也能知道软件实现了文档中的哪些功能 5、在做软件自动化测试时较为方便
| 1、不可能覆盖所有的代码, 覆盖率较低,一般只能达到总代码量的30% 2、自动化测试的复用性较低。
|
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识