【你问我答】黑盒测试,白盒测试和灰盒测试的区别?

问题描述:

黑盒测试,白盒测试和灰盒测试的区别?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入

------------
#我也有问题想询问牛友,怎么办?

欢迎私信@筱茜 说明你的问题,将根据问题具体情况排期进入【你问我答】专场~
私信请注明参与【你问我答】专场哦~

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#测试##悬赏#
全部评论
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 黑盒测试 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。 黑盒测试主要是为了发现以下几类错误: 1、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否能够满足要求? 5、是否有初始化或终止性错误? 白盒测试 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。 白盒测试主要是想对程序模块进行如下检查: 1、对程序模块的所有独立的执行路径至少测试一遍。 2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。 以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。 灰盒测试 灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。 灰盒测试与黑盒测试的区别 如果某软件包含多个模块,当你使用黑盒测试时,你只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试,你就需要关心模块与模块之间的交互。这是灰盒测试与黑盒测试的区别。 灰盒测试与白盒测试的区别 但是,在灰盒测试中,你还是无需关心模块内部的实现细节。对于软件系统的内部 模块,灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同,还需要再深入地了解内部模块的实现细节。所以,这是灰盒测试与黑盒测试的区别。 白盒测试的优点  1、能仔细考虑软件的实现。  2、可检测代码中的每条分支和路径。  3、揭示隐藏在代码中的错误。  4、对代码的测试比较彻底。 白盒测试的缺点  1、昂贵。  2、无法检测代码中遗漏的路径和数据敏感性错误 3、不验证规格的正确性。 黑盒测试的优点  1、对于子系统甚至系统,效率要比白盒测试高。  2、测试人员不需要了解实现的细节,包括特定的编程语言。  3、测试人员和编程人员彼此独立。  4、从用户的角度进行测试,很容易理解和接受。  5、有助于暴露规格的不一致或有歧义的问题。  6、测试用例可以在规格完成后马上进行。 黑盒测试的缺点  1、只有一小部分输入被测试到,要测试每个可能的输入几乎不可能。  2、没有清晰、简明的规格,测试用例很难设计。  3、如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。  4、有很多程序路径没有被测试到。  5、不能直接针对特定程序段测试,而这些程序段可能很复杂,有可能隐藏更多的问题。  6、大部分和研究相关的测试都是直接针对白盒测试的。 总结: 总而言之,言而总之,采用什么样的方法去测试,需要公司和项目组成员根据实际情况去制定。 灰盒测试是一个很不错的选择,其优点明显而缺点容易克服。朋友们在测试时,可以尝试用一用,看看效果如何。 1、能仔细考虑软件的实现。  2、可检测代码中的每条分支和路径。  3、揭示隐藏在代码中的错误。  4、对代码的测试比较彻底。 白盒测试的缺点  1、昂贵。  2、无法检测代码中遗漏的路径和数据敏感性错误 3、不验证规格的正确性。
点赞 回复
分享
发布于 2019-09-03 23:04
黑盒测试:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。 三者之间的区别: 黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。面向实际用户,测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法是穷举输入测试,确认软件是否有不正确或遗漏的功能?在接口上,输入是否能正确的接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求?是否有初始化或终止性错误? 白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试。面向编程人员,“白盒”法是穷举路径测试,对程序模块的所有独立的执行路径至少测试一遍,对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍,在循环的边界和运行的界限内执行循环体,测试内部数据结构的有效性,等等。 灰盒测试结合了白盒测试盒黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。
点赞 回复
分享
发布于 2019-09-07 06:29
淘天集团
校招火热招聘中
官网直投
第一、 从测试目标和依据来说:黑盒面对的是产品设计,白盒针对的是程序功能的实现,灰盒针对兼而有之,既要考虑产品设计要求,又考虑到功能实现的效果。 第二、 从实现者而言:黑盒在意的是客户的角度,白盒测试针对的研发人员。 第三、 从测试模块颗粒度而言:白盒在意的是代码实现层面,而灰盒更加侧重模块之间,颗粒度大于白盒。 第四、 在版本层面上,白盒测试一般发生在debug版本,灰盒大多一般在release版本进行。 第五、 从测试效果而言,大量的bug在黑盒测试阶段测试出来,而白盒和灰盒测试的bug数目相对较少。 第六、 从耗时上来讲,在同等时间内,一般白盒和灰盒的耗时长,bug数量少,一般表现为时间产出比较低,很难大范围普及白盒。黑盒相对bug时间投入产出比较高。 黑盒入门较为容易,其次是灰盒,白盒入门门槛教黑盒高很多。
点赞 回复
分享
发布于 2019-09-05 14:41

相关推荐

2 14 评论
分享
牛客网
牛客企业服务