一般说到程序猿大家能想到的就是一线的开发人员,觉得他们的日程就是“敲敲敲”,殊不知在产品一线还有另外一群人,他们做着和开发人员一样的事情,他们就是测试人员。测试人员的工作跟开发人员差不多,人称“点点点”。至于二者孰轻孰重,有人形象的比喻开发和测试就好比人的两条腿,时而交替时而并行地推动者项目前进。这里,给大家介绍一些关于软件测试的概念性知识。
说到软件测试,大家耳熟能详的就是传说中的“黑盒测试”和“白盒测试”。如果深入地问“什么是黑盒测试”?“什么是白盒测试”?“两者之间有什么区别”?真能说出个一二的,人并不多!
首先我们来看一下黑盒测试。
黑盒测试
所谓的黑盒测试,指的是测试人员把软件产品(或阶段性产品)看成是一个黑盒(这里可以理解为黑色的,看不见里面装的什么东西的黑色盒子),测试人员只关注对该软件进行操作( 输入数据)会产生怎样的结果,而不去关注软件内部的实现机制所做的测试活动。这里对软件输入的数据可以是字符串、图片、视频流或者事件。一般黑盒测试的目的是为了验证软件的功能是否满足需求文档,以及证实软件产品符合用户的需求。
那么白盒测试又是什么呢?
白盒测试
白盒测试也叫结构测试或者逻辑驱动测试,是通过分析被测对象模块的内部工作原理,检测对象模块的内部运行是否符合产品设计的要求。白盒测试更加关注产品的代码实现细节,一般这些细节主要包括数据流和控制流。白盒测试一般用于单元测试阶段,处于产品开发的较早阶段,这样可以极大的降低开发成本。一般,一个缺陷的产品上市之后发现问题,要比在单元测试阶段发现问题并更正的成本相差100倍!可见,测试对于开发产品来说至关重要!
介绍完了黑盒测试和白盒测试,再来说说这两者之间的区别
黑盒测试与白盒测试的区别
黑盒测试和白盒测试的主要区别在于:
- 黑盒测试完全不关注产品的内部结构和特性,白盒测试需要全面了解程序的内部逻辑结构,并对其进行测试;
- 黑盒测试关注程序能否接收输入的数据,并产生预期的输出信息,白盒测试需要对程序的数据流 和所有分支、路径(控制流)进行覆盖;
- 黑盒测试多用于对软件界面、功能、性能、安全性方面的测试,白盒测试多用于对软件内部实现的正确性、有效性进行检查;
- 黑盒测试是穷举输入测试。白盒测试是穷举路劲测试;
- 黑盒测试适用于软件测试的各个阶段,白盒测试多用于软件单元测试阶段