什么是灰盒测试?

灰盒测试(GBT)是一种软件测试方法,包括基于对其核心功能的有限理解来判断软件程序。它是两者的结合,因为它提供了对内部编码的访问以构建测试用例,因为白盒测试和测试技术在功能级别执行为黑盒测试。

灰盒测试 (GBT) 是一种用于识别在线应用程序中特定于上下文的问题的流行方法。例如,如果测试人员在测试过程中发现错误,他会实时修复代码并重新测试。为了提高测试覆盖率,它专注于任何困难软件系统的所有层。它允许测试显示层和核心代码结构。它通常用于渗透和集成测试。

灰盒测试(GBT)是一种结合了白盒测试(WBT)和黑盒测试(BBT)(BBT)的软件测试方法。

  • 白盒测试用于检查产品的内部结构。

  • 黑盒测试 (BBT) 的内部运作是个谜。

  • 仅部分了解灰盒测试 (GBT) 的基本结构。

软件工程中的灰盒测试 (GBT) 允许您测试应用程序的显示层和核心组件。它主要用于集成和渗透测试。

灰盒测试示例:在测试网站的链接或孤儿链接等功能时,如果测试人员发现这些链接有任何问题,他可以立即修改HTML代码并进行实时测试。

例子

#1) 如果测试人员在测试网站时单击链接并遇到错误,灰盒测试人员可以更改 HTML 代码以验证问题。

在这种情况下,白盒测试是通过修改代码来进行的,而黑盒测试是在测试人员测试前端的变化时同时进行的。灰盒测试是通过将白盒与黑盒相结合而产生的。

#2) 了解并访问错误代码数据库(包括每个错误代码的原因)的灰盒测试人员可以分析错误代码并更深入地探索原因。假设网页收到错误代码“内部服务器错误 500”,并且此问题的原因在表中列为服务器错误。

使用此信息,测试人员可以进一步调查问题并向开发人员提供详细信息,而不是简单地向他们报告。

#3) 灰盒测试人员可以检查日志文件以确定问题的根本原因。灰盒测试器可以简单地检查低性能、程序崩溃和其他问题。

GreyBox 测试的目的是什么?

以下是 GreyBox 测试的原因 -

  • 它结合了 Blackbox 和 WhiteBox 测试的优点。

  • 它同时包含开发人员和测试人员的输入值,以提高产品的整体质量。

  • 它缩短了漫长的功能和非功能测试过程所需的时间。

  • 它为开发人员提供了足够的时间来修复任何产品缺陷。

  • 它结合了用户的观点,而不是设计者或测试者的观点。

  • 它需要从用户的角度对需求和规格确定进行彻底的评估。

灰盒测试策略

测试人员无需访问源代码即可进行灰盒测试。测试是使用有关算法、体系结构、内部状态和程序行为的其他高级描述的信息创建的。

  • 灰盒测试可以通过多种方式进行。

  • 它采用基本的黑盒测试方法。

  • 它基于所需测试用例的开发,因此,它在使用断言技术测试程序之前建立了所有标准。

灰盒测试技术

矩阵测试

灰盒测试是此类测试的术语。它列出了程序中使用的所有变量。变量是每个程序中允许值在其中移动的组件。它应该根据要求量身定制;否则,程序的可读性和速度就会受到影响。矩阵方法是一种通过检测已使用的变量从程序中删除不需要和未初始化的变量的方法。

回归测试

回归测试用于确保对软件的一个区域的更改不会对产品的另一部分产生意外或不良影响。在确认测试期间发现的任何缺陷都得到纠正,该部分程序开始按计划运行;尽管如此,修复的缺陷有可能在软件的其他地方引起了新的问题。回归测试通过使用测试技术来解决这些类型的问题,例如重新测试危险用例、在防火墙后面重新测试、重新测试一切等等。

正交阵列测试或 OAT

此测试的目标是使用尽可能少的测试用例覆盖尽可能多的代码。测试用例的编写方式使得它们以最少的测试用例覆盖最多的代码以及最多的 GUI 功能。

模式测试

模式测试适用于遵循与先前软件相同的模式创建的软件。这种形式的软件也可能存在同样的缺陷。模式测试识别失败的原因,以便在未来的软件中解决它们。

Greybox 方法通常使用自动化软件测试工具来执行测试程序。存根和模块驱动程序提供给测试人员,以减少手动代码开发的需要。

以下是进行灰盒测试的步骤 -

步骤 1 - 列出所有输入。

第 2 步 - 确定结果

步骤 3 - 列出关键路线。

第 4 步 - 确定子功能

步骤 5 - 创建子功能输入。

第 6 步 - 开发子功能输出

步骤 7 - 运行子功能测试用例。

步骤 8 - 检查子功能结果是否有效。

步骤 9 - 对每个附加的子功能重复步骤 4-8。

第 10 步 - 对其余子功能继续执行第 7 步和第 8 步。

GUI 相关、安全相关、数据库相关、浏览器相关、操作系统相关等等都是灰盒测试的测试用例示例。

灰盒测试的好处

以下是其中一些 -

  • 该软件的质量正在提高。

  • 这种方法侧重于用户的感知。

  • 开发人员从灰盒测试中获益,因为他们有更多的时间来解决错误。

  • 灰盒测试结合了黑盒测试和白盒测试,为您提供两全其美的体验。

  • 灰盒测试人员无需具备丰富的编程专业知识即可评估产品。

  • 集成测试受益于这种测试方法。

  • 这种测试方法可确保开发人员和测试人员在同一页面上。

  • 这种方法可用于测试复杂的应用程序和情况。

  • 这种测试是非侵入性的。

灰盒测试的缺点

  • 灰盒测试不允许进行完整的白盒测试,因为无法访问源。

  • 这种测试方法使得在分布式系统中链接问题变得更加困难。

  • 很难为灰盒测试创建测试用例。

  • 由于访问受限,对代码路径遍历的访问同样受到限制。

灰盒测试难点

  • 当被测组件以某种方式失败时,可以终止继续操作。

  • 当测试完全运行但结果的实质是错误的。

概括

灰盒测试可以最大限度地降低系统故障的总体成本,并防止它们进一步蔓延。

灰盒测试最适合 GUI、功能测试、安全评估、在线应用程序、Web 服务和其他类似应用程序。

  • 灰盒测试方法

  • 矩阵测试

  • 回归测试

  • OAT 或正交阵列测试

  • 模式测试

经常问的问题

Q #1) 在软件测试中,什么是灰盒测试?

答案 - 灰盒测试用于消除由应用程序内部结构困难引起的任何故障。这种测试方法结合了黑盒和白盒测试技术。

Q #2) 提供一个灰盒测试的例子。

答案 - 黑盒测试和白盒测试都包含在灰盒测试中。所有特定的文档和要求都可供测试人员使用。例如,如果一个网站的链接无效,它可能会立即以 HTML 格式进行检查和更新,并实时确认。