白盒测试(white-box testing)又称透明盒测试(glass box testing)、结构测试(structural testing)等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者的角度对程序进行的测试。
白盒测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。
白盒测试设计技术包括以下代码覆盖标准:
白盒测试的基本步骤包括测试者对被测试的源代码有一个深层次的理解。程序员必须对应用有一个深度理解,以清楚的知道应创建哪种测试用例,从而使得测试中的所有可见路径都可以被执行。源代码被理解之后才可以被分析,以创造测试用例。以下是白盒测试创建测试用例的三个基本步骤:
白盒测试是当今使用的两个最大的测试方法之一。 它有几大优势:
尽管白盒测试具有很大的优势,它并不完美,并包含一些缺点:
在渗透测试中,白盒测试是指其中一个方法,即白帽黑客已经充分了解了被攻击的系统。 白盒渗透测试的目的是模拟出对系统有基本了解或和拥有基本身份恶意的内部人员。