一、什么是白盒测试
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
二、白盒测试的目的
- 保证一个模块中的所有独立路径至少被执行一次;
- 对所有的逻辑值均需要测试真、假两个分支;
- 在上下边界及可操作范围内运行所有循环;
- 检查内部数据结构以确保其有效性。
三、关于白盒测试覆盖
首先,白盒测试使用穷举测试是不可行的。白盒测试考虑的是测试用例对于程序内部逻辑的覆盖程度。当然,最彻底的测试用例是覆盖程序中国年的每一条路径。但一旦程序中含有循环,路径将会变的无限大,所以穷举测试是不可行的。我们职能将覆盖的程度尽量高些。
四、关于白盒测试的覆盖标准
覆盖标准从低到高分别为:
- 语句覆盖:选择足够多的测试数据,使得被测程序中的每个语句至少执行一次。
- 判定覆盖:不仪每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次。
- 条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
- 判定/条件覆盖:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。
- 条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
- 路径覆盖:彻底的测试,穷举测试
五、白盒测试需要注意的地方
1.白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,要求测试者必须检查程序的内部结构.从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范.即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
2.白盒测试是工作量巨大并且枯燥的工作.可视化的设计对于测试来说是十分重要的。在选购白盒测试工具时,应当考虑该款测试工具的可视化是否良好。例如:测试过程中是否可以显示覆盖率的函数分布图和上升趋势图,是否使用不同的颜色区分已执行和未执行的代码段显示分配内存情况实时图表等,这些对于测试效率和测试质量的提高是具有很大的作用的。白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。
新开发的软件通过了黑盒测试和白盒测试以后.可以说基本满足了设计要求,但并不能保证该软件没有问题存在.只有经过实际试运行的检验,才能更进一步完善和优化,达到软件最优态。
总之,软件测试的目的不仅是为了发现软件缺陷与错误,而且是对软件质量进行度量和评估,以提高软件的质量。