白盒测试

软件测试的重要方法
白盒测试(White Box Testing)[1],又称结构测试、逻辑驱动测试或基于程序的测试,是软件测试的重要方法。[2]它根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。[3]其目的是发现程序编码过程中的错误。[4]
白盒测试从测试重点来看,可以分为控制流分析技术和数据流分析技术。从是否执行程序的角度来看,可分为静态测试方法和动态测试方法。[5]静态测试方法主要为程序结构分析法,可分为代码走查、代码审查、控制流分析、数据流分析、信息流分析等;动态测试方法主要分为逻辑覆盖法和路径测试法等,运用最广泛的是路径测试法。[6]
白盒测试的静态测试工具主要有Logiscope、PRQA软件等,动态测试工具主要有DevPartner软件、Pure系列等,[7]可以帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。[6]

基本概念

白盒测试是在了解产品内部工作的基础上,通过测试来检验产品内部动作是否按照规格说明书的规定进行的。它不管系统的功能,而是按照程序内部的结构测试程序,检验每条程序是否都能按照预定要求正常工作。它一般用来分析程序的内部结构,程序的结构和处理过程像白盒子一样透明,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。[2]白盒测试主要应用于单元测试和集成测试阶段,通常不适用于系统测试,但在系统描述中涉及动态描述的部分,仍然可以借鉴一些白盒测试的方法进行测试,因此,白盒测试并不仅限于单元测试和集成测试。[8]