黑盒测试和白盒测试都是测试设计的方法。
黑盒测试
黑盒测试把被测程序当做一个黑盒子,不考虑它的内部结构,在知道程序的输入和输出之间的关系或者程序功能的情况下,依靠软件规格说明书、需求文档和其他相关设计文档来推测测试的结果是否正确。黑盒测试一般用来确认软件的正确性和可操作,可以测试软件的各种功能是否能得以实现。比较常用的黑盒测试方法有等价类划分法、边界值分析法、因果图法、判断表法、场景法、正交法等等。
白盒测试
白盒测试把被测程序当作一个白盒子,需要考虑盒子的内部结构和逻辑。白盒测试要根据软件内部的逻辑结构分析来进行测试,是基于代码的测试。白盒测试既可以使用静态测试的方式,比如代码审查、代码扫描工具等;也可以使用动态测试的方式,比如编写测试代码,进行语句覆盖、判断覆盖、条件覆盖、路径覆盖等等的措施。
两种测试方法适用于不同的测试场景,黑盒测试更多的使用在系统测试和验收测试当中。白盒测试则是针对代码本身的测试,所以更多的用在单元测试或者集成测试当中