什么是灰盒测试?技术、示例

灰盒测试

灰盒测试(Grey box testing)是一种软件测试技术,用于在部分了解应用程序内部结构的情况下测试软件产品或应用程序。灰盒测试的目的是查找和识别由于代码结构不当或应用程序使用不当而导致的缺陷。

在此过程中,通常会识别与 Web 系统相关的特定于上下文的错误。通过关注任何复杂系统的所有层,它增加了测试覆盖率。

灰盒测试是一种软件测试方法,它是白盒测试和黑盒测试方法的组合。

  • 白盒测试已知内部结构(代码)
  • 黑盒测试未知内部结构(代码)
  • 灰盒测试部分已知内部结构(代码)

Grey Box Testing

在软件工程中,灰盒测试能够同时测试应用程序的两端,即表示层和代码部分。它主要用于集成测试渗透测试

灰盒测试示例:在测试网站功能(例如链接或孤立链接)时,如果测试人员遇到这些链接的任何问题,他们可以直接在 HTML 代码中进行更改并实时检查。

为什么选择灰盒测试

进行灰盒测试的原因如下:

  • 它提供了黑盒测试和白盒测试的综合优势
  • 它结合了开发人员和测试人员的输入,提高了整体产品质量
  • 它减少了功能和非功能类型测试的漫长过程的开销
  • 它为开发人员提供了足够的空闲时间来修复缺陷
  • 测试是从用户而非设计者的角度进行的

灰盒测试策略

要进行灰盒测试,测试人员不必访问源代码。测试是基于对算法、架构、内部状态或程序行为的其他高级描述的了解而设计的。

执行灰盒测试 -

  • 它应用了黑盒测试的直接技术
  • 它基于需求测试用例生成,因此,它在程序通过断言方法测试之前预设了所有条件。

灰盒测试使用的技术有:

  • 矩阵测试:此测试技术涉及定义程序中存在的所有变量。
  • 回归测试:检查以前版本中的更改是否在新版本中使程序的其他方面退化。这将通过重新测试所有、重新测试有风险的用例、在防火墙内重新测试等测试策略完成。
  • 正交数组测试或 OAT:它以最少的测试用例提供最大的代码覆盖率。
  • 模式测试:此测试是根据以前系统缺陷的历史数据执行的。与黑盒测试不同,灰盒测试深入代码并确定故障发生的原因

通常,灰盒方法学使用自动化软件测试工具进行测试。创建存根和模块驱动程序,以减轻测试人员手动生成代码的负担。

执行灰盒测试的步骤有:

  • 步骤 1:识别输入
  • 步骤 2:识别输出
  • 步骤 3:识别主要路径
  • 步骤 4:识别子功能
  • 步骤 5:为子功能开发输入
  • 步骤 6:为子功能开发输出
  • 步骤 7:执行子功能的测试用例
  • 步骤 8:验证子功能的正确结果
  • 步骤 9:对其他子功能重复步骤 4 和 8
  • 步骤 10:对其他子功能重复步骤 7 和 8

灰盒测试的测试用例可能包括 GUI 相关、安全相关、数据库相关、浏览器相关、操作系统相关等。

灰盒测试挑战

  • 当被测组件遇到某种故障时,可能会导致正在进行的操作中止
  • 当测试完全执行但结果内容不正确时。

摘要

  • 通过灰盒测试,可以减少系统缺陷的总体成本,并防止其进一步传播
  • 灰盒测试更适合 GUI、功能测试、安全评估、Web 应用程序、Web 服务等。
  • 灰盒测试使用的技术
    • 矩阵测试
    • 回归测试
    • OAT 或正交数组测试
    • 模式测试