您现在的位置是:首页 >学无止境 ><Java测试面试整理>白盒测试与黑盒测试区别网站首页学无止境
<Java测试面试整理>白盒测试与黑盒测试区别
1.定义不同
黑盒测试:顾名思义就是把测试对象看作一个不能打开的黑盒子。测试时,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,检验输出结果对不对。
白盒测试:与黑盒恰恰相反,这种方法是把测试对象看作一个打开的透明盒子。测试时,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。
2.测试对象不同
黑盒测试:主要针对的是程序所展现给用户的功能。
白盒测试:主要针对的是程序代码逻辑,简单的说,就是前者测试最终展示功能,后者测试后台程序。
3.测试方式不同
黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。
白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
4.测试目的不同
黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
5.测试原则不同
黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试 true 和 false 两种情况。
1、简述黑盒测试和白盒测试的优缺点?
黑盒测试优点:
(1)比较简单,不需要了解程序内部的代码及实现;
(2)与软件的内部实现无关;
(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
(4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
(5)在做软件自动化测试时较为方便。
黑盒测试缺点:
(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
(2)自动化测试的复用性较低。
白盒测试优点:
帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试缺点:
程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
2、黑盒测试和白盒测试常用的测试方法有哪些,举个例子?
黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。
例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则,首先利用等价类划分法,可以一个或多个结果是OK的测试用例,然后确认多个NG的测试用例,然后利用边界值分析法,可以对结果分别是OK和NG的测试用例进行扩展和补充。
3、在没有产品说明书和需求文档的情况下能够进行黑盒测试的设计吗?
能,可以通过其他工作内容去替代产品说明书和需求文档,根据客户的功能点整理测试需求追溯表。根据开发人员的SoftwareSpecificationList整理功能测试点开展项目跨部门讨论会,主要整理对功能点的理解和认识,测试人员整理用例需求疑问提交项目组或者产品项目内部的用例评审。邮件客户代表确认部分争议问题,项目的Demo和部分已经开发的系统,参考同行业和竞争对手的类似产品交叉模块之间的测试咨询客户或相关者。
4、白盒测试逻辑覆盖有哪几种覆盖标准,覆盖率最高的是什么?
语句覆盖,分支覆盖,条件覆盖,路径覆盖,分支条件覆盖,覆盖率最高的是路径覆盖。