五星上将麦克阿瑟曾经说过“如果你知道黑盒和白盒测试,那么你一定知道灰盒测试”
让我们来讲一个故事
今天和女朋友吵架了,(假设你有女朋友)。
今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐
因为你需要买礼物给你女朋友,但是你不知道她想要啥
决定。痛定思痛
决定分享一下今天的主题——灰盒测试
什么是灰盒测试?
灰盒测试
灰盒测试
什么是灰盒测试?
灰盒测试是一种软件测试技术,是黑盒测试技术和白盒测试技术的结合。
- 在黑盒测试技术中,测试人员不知道被测试项目的内部结构,而在白盒测试中,测试人员知道内部结构。
- 灰盒测试中部分了解内部结构。
- 这包括访问内部数据结构和算法来设计测试用例。
- 灰盒测试之所以如此命名,是因为软件程序就像一个半透明或灰色的盒子,测试人员可以看到其中的部分内容。
- 它通常关注与 Web 系统相关的上下文特定错误。
- 它基于需求测试用例生成,因为它具有在测试程序之前呈现的所有条件。
在黑盒测试中,测试人员对代码没有任何了解。它们具有给定输入的输出信息。在白盒测试中,测试人员对代码有完整的了解。
灰盒测试人员了解代码,但不完全了解。
灰盒测试的目标
- 提供黑盒测试和白盒测试的综合优势。
- 结合开发人员和测试人员的输入。
- 以提高产品的整体质量。
- 减少功能和非功能测试的漫长过程的开销。
- 为开发人员提供足够的空闲时间来修复缺陷。
例子
- 在测试网站时,如果测试人员点击任何链接并出现错误,灰盒测试人员可以更改 HTML 代码来检查是否存在错误。在这种特定场景中,白盒测试是通过更改代码来完成的,并且当测试人员在前端测试更改时,黑盒测试也在进行。白盒和黑盒的组合导致灰盒测试。
- 如果灰盒测试人员了解并访问错误代码表(其中针对错误代码提供了原因),则他们可以分析错误代码并详细探究原因。假设网页收到错误代码“内部服务器错误 500”,并且该错误的原因在表中显示为服务器错误。使用此信息,测试人员可以进一步分析问题并向开发人员提供详细信息,而不仅仅是向他们提出问题。
- 灰盒测试人员可以自己分析日志文件以找到问题的根本原因。灰盒测试仪可以轻松分析低性能、应用程序崩溃或其他问题。
灰盒测试的技术
1. 矩阵测试
软件开发人员提供程序中的所有变量以及与之相关的技术和业务风险。矩阵测试技术测试开发人员定义的风险。
矩阵技术列出了程序中所有使用的变量。该技术有助于识别和删除程序中未使用的变量,从而有助于提高软件的速度。
2. 回归测试
当软件发生任何更改或修复任何缺陷时,就会执行回归测试。这样做是为了确保新的更改或修复不会影响软件的任何现有功能。
3. 正交阵列测试或 OAT
这种测试技术更多地用于复杂的功能或应用程序,因为当需要用最少的测试用例最大程度地覆盖代码并且具有具有 n 种组合的大量测试数据时,就会使用这种技术。
4. 模式测试
模式测试是根据软件中先前发现的缺陷进行的。分析缺陷记录以找出缺陷原因,并创建测试用例,将缺陷及其原因保留在知识中,以便在软件投入生产之前发现缺陷。
灰盒测试的优点
具体如下:
- 软件的质量得到提高。
- 该技术更注重用户感知。
- 在灰盒测试中,开发人员会受益,因为他们有足够的时间来修复错误。
- 由于灰盒测试是黑盒和白盒的结合,因此可以获得两者的好处。
- 灰盒测试人员不需要具备很高的编程知识来测试产品。
- 这种测试技术在集成测试中非常有效。
- 这种测试技术有助于避免开发人员和测试人员之间发生冲突。
- 使用此技术可以有效地测试复杂的应用程序和场景。
- 这种测试技术是非侵入式的。
灰盒测试的缺点
具体如下:
- 灰盒测试无法执行完整的白盒测试,因为无法访问源。
- 对于分布式系统,很难将这种测试技术中的缺陷关联起来。
- 灰盒测试的测试用例创建很复杂。
- 由于访问受限,代码路径遍历访问也受到限制。
灰盒测试的例子
测试网站表单,其中提供电子邮件 ID 并提交表单会向用户发送电子邮件以进行确认和信息。
作为黑盒测试人员 – 测试人员将提供有效/无效电子邮件 ID 的输入来检查系统行为。
作为灰盒测试人员 - 测试人员将了解验证方面的知识,例如将在客户端使用 JavaScript 完成电子邮件验证。
拥有上述知识的测试人员将在他的列表中添加另一个测试用例,即通过禁用浏览器的 JavaScript 来测试场景。
在这里,我们可以清楚地看到使用灰盒测试的优势。附加信息帮助测试人员创建和执行附加测试用例。
灰盒测试的面试QA
什么是软件测试中的灰盒测试?
答:执行灰盒测试是为了消除由于应用程序内部结构问题而导致的任何缺陷。该测试技术是黑盒测试和白盒测试的组合。
获取灰盒测试示例。
答:灰盒测试包括黑盒测试和白盒测试。测试人员可以访问所有详细的文档和要求。 示例:如果某个网站的链接失效了,可以直接在HTML中查看和更改,并且可以实时验证。
灰盒测试的优点是什么?
答:灰盒测试有几个优点。下面提到其中一些:
- 提高产品的质量。
- 可以轻松测试复杂的应用程序。
- 不要求测试人员具备完整的编码知识。
- 获得黑盒和白盒测试的好处。
灰盒测试是什么意思?
答:灰盒测试是针对不完全了解应用程序内部工作原理的应用程序定义的。它最适合基于 Web 的应用程序。对于功能和领域测试,它被认为是最好的方法。该测试更多地关注用户视角而不是设计。
谁进行灰盒测试?
答:这是由测试人员自己完成的。当测试人员没有关于应用程序的内部结构和工作的完整信息时,就会发生这种情况。在此测试中,在前端提供输入,并在后端验证输出。
结论
灰盒测试非常有益,因为它结合了测试技术,即黑盒测试和白盒测试。这种测试技术对于基于 Web 的应用程序、功能和领域测试更为有效。灰盒测试的测试用例创建包括安全、数据库、浏览器、GUI等各个方面。
这种测试技术比其他技术更能敏锐地处理复杂的场景。它基于功能规范,而不是源代码或二进制文件。
扫码关注微信公众号,会有持续的AI最新消息分享与学习资料,一起来学习吧
如果你还有什么疑问,请从下方留言吧~
以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️ 支持。 咱们下篇文章见,Bye~
标签:灰盒,黑盒,白盒,技术,测试人员,测试,究竟 From: https://blog.51cto.com/u_15717981/9277801