众所周知,软件测试可以分为白盒测试、黑盒测试和灰盒测试三种。而白盒测试,顾名思义就是以一种了解内部原理的方式来测试程序的可靠性。它不仅关注输入、输出等表层结果,而是深入研究其内部代码逻辑,针对特定目的,制订测试计划,从而使程序异常难以逃脱检测。
白盒测试所关注的集中在技术细节上,例如:路径覆盖、条件覆盖、判断覆盖等。测试人员必须深入理解代码逻辑,可以阅读源代码,加以改进和优化,以期测试结果覆盖率更加完善。
除了单元测试和集成测试外,白盒测试还可以从更高的层面来检验程序漏洞。例如,安全测试中的“穷举”攻击方式,黑客正是通过模拟全部可能情况来绕开程序的防御。而白盒测试只有结合内部逻辑和算法特点才能更精准地找到对应的漏洞。
白盒测试虽然较黑盒测试和灰盒测试技术要求更高,但是在复杂程序和大规模项目中,白盒测试可以更加准确地发现问题,规避后续的风险。