什么是白盒测试和黑盒测试?有什么区别?

什么是白盒测试和黑盒测试?有什么区别?,第1张

白盒测试

是指实际运行被测程序,通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法、溢出、路径和条件等方面的缺点或者错误,进而加以修正。

黑盒测试:

又称功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试,,而并没有通过检查程序的源代码,或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据看输出的结果,从而了解软件怎样工作。应该更适合测试网页游戏。

区别一:从定义上

白盒测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。而黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性。黑盒测试并不能取代白盒测试,它与白盒是互补的测试方法,它很可能发现白盒测试不易发现的其他类型错误。

区别二:从测试目的上

黑盒测试的目的是检测是否有不正确或遗漏的功能;数据或者参数上,输入能否正确接收;是否有数据结构错误或外部信息访问错误;性能上是否能够满足要求;是否有初始化或终止性错误。而白盒测试的目的是通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致,而不顾它的功能。

区别三:检测方式上

白盒测试是穷举路径测试,黑盒测试是穷举输入测试,这两种方法是基于完全不同的观点,反应了事物的两个极端,它们各有侧重和优势,但不能彼此替代。在现代的测试理念中,这两种测试方法不是截然分开的,而是交叉使用。

扩展资料

白盒测试的优点:

1.能仔细考虑软件的实现

2.可检测代码中的每条分支和路径

3.揭示隐藏在代码中的错误

4.对代码的测试比较彻底

白盒测试的缺点:

1.昂贵

2.无法检测代码中遗漏的路径和数据敏感性错误

3.不验证规格的正确性

黑盒测试的优点:

1.对于子系统甚至系统效率要比白盒测试高

2.测试人员不需要了解实现的细节(特定编程语言)

3.测试人员和编程人员彼此独立

4.从用户的角度进行测试很容易理解和接受

5.有助于暴露规格的不一致或有歧义的问题

6.测试用例可以在规格完成后马上进行

黑盒测试的缺点: 

1.只有一小部分输入被测试到,要测试每个可能的输入几乎不可能。

2.没有清晰、简明的规格,测试用例很难设计。

3.如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。

4.有很多程序路径没有被测试到。

5.不能直接针对特定程序段测试,而这些程序段可能很复杂,有可能隐藏更多的问题。

6.大部分和研究相关的测试都是直接针对白盒测试的。

参考资料:百度百科-黑盒测试白盒测试

黑盒测试方法,等价类划分法、边界值分析法、正交实验法、流程图分析法、输入域覆盖法等。

1、等价类划分法

等价类划分法是指将程序的输入值的集合划分为若干等价类,等价类又分为有效等价类和无效等价类,从每一类中选取少量数据进行测试。

2、边界值分析法

边界值分析法是针对输入数据的边界值的测试,一般情况下与等价类划分法结合使用,根据各个等价类的边界值设计测试用例。

3、正交实验法

正交实验法是利用正交表来对程序进行测试,用较少的测试用例进行较全面的测试。根据正交表的正交性,从全面试验中挑选出适量的、有代表性的点进行试验。

4、流程图分析法

当一个事件触发时,就形成了一个场景,而同一事件的不同触发顺序和处理结果就形成了事件流。在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确的流程,即基本流,而凡是出现故障或缺陷的过程,就称为备选流,备选流是可以从基本流来的,或是由备选流引出的。

5、输入域覆盖法

输入域覆盖是指根据SRS结合等价类划分法和边界值分析法的一种测试方法,主要是对输入的特殊值和类型边界补充测试用例。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7751634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存