黑盒白盒,这是软件领域非常重要的两个概念,一般与软件测试密不可分。简单来说,黑盒测试又称为功能测试,只关注软件功能是否按照要求正常工作,而不考虑底层实现。白盒测试又叫结构测试,一方面关注软件的外部行为,与黑盒测试类似,另一方面聚焦于软件的内部实现,检查代码是否按照标准规范编写、是否具有优越性、可维护性和可扩展性,是否完全符合用户需求。
相比较而言,黑盒测试更注重从用户角度验证软件的功能和易用性,盲目地检查是否在各种测试场景下都有良好的响应。相对来讲,白盒测试更强调软件内部的过程和细节,通过检查软件源代码和其它内部文档来了解软件的实现方式和还存在哪些缺陷。
在实际测试的工作中,黑盒测试常常通过手工和自动化测试完成,如黑盒测试用例的设计、执行、结果验证等往往都需要人工参与;而白盒测试因涉及到代码分析,主要依赖程序员与工具,如添加日志、调试工具等手段来查看内部执行的过程。
此外,黑盒测试常常被应用于对外提供的接口测试,如WEB界面、API接口等;而白盒测试多数情况下需要与编译工具结合,纠正代码的一些细节问题,保证代码质量的同时进一步提高系统的性能、安全等其他方面的指标。
黑盒白盒的使用应根据不同的实际情况来进行选择,平衡测试过程中各方面的需要,才能全面有效地确认软件的质量。