黑盒测试与白盒测试的区别
黑盒测试:顾名思义就是把测试对象看作一个不能打开的黑盒子。测试时,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,检验输出结果对不对。
白盒测试:与黑盒恰恰相反,这种方法是把测试对象看作一个打开的透明盒子。测试时,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。
测试对象不同
黑盒测试:主要针对的是程序所展现给用户的功能。
白盒测试:主要针对的是程序代码逻辑,简单的说,就是前者测试最终展示功能,后者测试后台程序。
测试方式不同
黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。
白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
测试目的不同
黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
测试原则不同
黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试 true 和 false 两种情况。