白盒测试
白盒测试是指基于一个应用代码的内部逻辑知识,即覆盖全部代码、分支、路径、条件,使用程序设计的控制结构导出测试用例。
白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒测试方法必须遵循以下4条原则:
(1)保证一个模块中的所有独立路径至少被测试一次;
(2)所有逻辑值均需要测试真和假两种情况;
(3)检查程序的内部数据结构,保证其结构的有效性;
(4)在上、下边界及可操作范围内运行所有循环。
白盒测试的具体内容:
(1)软件各层公用问题的测试;
(2)Java语言的测试;
(3)数据类型的测试;
(4)SQL语句的测试;
(5)界面(UI)的测试;
(6)数值对象(VO)的测试;
(7)业务对象(BO)的测试;
(8)数据管理对象(DMO)的测试。
白盒测试在不同测试阶段的侧重点:
(1)单元测试:代码检查、逻辑覆盖
(2)集成测试:增加静态结构分析、静态质量度量
(3)系统测试:根据黑盒测试结果,采用白盒测试。
白盒测试的方法:
白盒测试的优点是帮助软件测试人员增大代码的覆盖率、提高代码的质量、发现代码中隐藏的问题。白盒测试主要用于检查程序的内部结构、逻辑、循环和路径。常用的测试用例设计方法如下:
代码检查法:它主要通过桌面检查、走查和代码审查的方式进行。
静态结构分析法:测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形图表,清晰地标识整个软件的组成结构的方法。
静态质量度量法:测试者通过软件质量、质量度量和度量规则进行分析的。
逻辑覆盖法:通过对程序逻辑结构的遍历实现对程序的覆盖。
基本路径测试法:在控制流图的基础上,通过分析控制结构的环路复杂度,导出执行路径的基本集,再从该基本集设计测试用例。
域测试方法:它是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择测试点进行测试。
符号测试法:允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式。
Z路径覆盖法:它是对循环机制进行了简化,减少了路径的数量,使得覆盖所有路径称为可能。
程序变异测试法:它是一种错误驱动测试。专门测试某类错误是否存在。