白盒测试
白盒测试
定义
知道内部工作过程,可通过测试内部动作来测试
目标
通过测试来检测软件产品内部动作是否按照规格说明书的规定正常执行
重点
看软件内部各条通路是否按照规定工作
特点
黑盒可能存在负负得正的情况,而白盒不会
白盒能发现一些隐患:如内存泄漏,误差累积等
作用
主要想对程序模块进行如下的检查
对所有独立测试路径至少测试一次
对所有的逻辑判定,取真/假的两种至少测试一次
在循环的边界和运行界限内执行循环体
测试内部数据结构的有效性
局限
一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。
比较
如何安排白盒测试
单元测试
集成测试
集成阶段,依据概要设计说明书
静态结构分析
代码质量度量
功能确认与接口分析
覆盖率分析
性能分析
内存分析
系统测试
到这步已经很少做白盒测试了
验收测试
白盒测试综合策略
在测试中,应尽量先用工具进行静态结构分析。
测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查和静态质量度量,再进行覆盖率测试。
利用静态分析的结果作为引导,通过代码检查和动态测试的方式对静态结构分析结果进行进一步的确认,使测试工作更为有效
覆盖率测试是白盒测试的重点,一般可使用基本路径测试 法达到语句覆盖标准;对于软件的重点模块,应使用多种覆盖标准衡量代码的覆盖率。
在不同的测试阶段,测试的侧重点不同:在单元测试阶段 ,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态结构分析、静态质量度量;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试
白盒测试用例设计技术
静态
代码检查(人工+工具)
静态结构分析(主要由软件工具自动进行)
软件质量度量(主要由软件工具自动进行