什么是黑盒测试?技术、类型和示例

黑盒测试

黑盒测试是一种软件测试方法,在不了解内部代码结构、实现细节和内部路径的情况下,测试软件应用程序的功能。黑盒测试主要关注软件应用程序的输入和输出,它完全基于软件需求和规范。它也被称为行为测试。

Black Box Testing

上述黑盒可以是任何你想测试的软件系统。例如,像 Windows 这样的操作系统,像 Google 这样的网站,像 Oracle 这样的数据库,甚至是您自己的自定义应用程序。在黑盒测试中,您可以通过只关注输入和输出而无需了解其内部代码实现来测试这些应用程序。请观看以下视频教程:

如果视频无法访问,请点击此处

黑盒测试技术

以下是黑盒测试中使用的众多测试策略中最重要的策略

  • 等价类测试:它用于将可能的测试用例数量最小化到最佳水平,同时保持合理的测试覆盖率。
  • 边界值测试:边界值测试侧重于边界处的值。该技术确定系统是否接受某个范围的值。它在减少测试用例数量方面非常有用。它最适合输入在特定范围内的系统。
  • 决策表测试:决策表将原因及其影响放入矩阵中。每列都有一个独特的组合。

黑盒测试的类型

黑盒测试有多种类型,但以下是最主要的几种:

  • 功能测试 – 这种黑盒测试类型与系统的功能需求相关;由软件测试人员完成。
  • 非功能测试 – 这种黑盒测试类型与特定功能的测试无关,而是与性能、可伸缩性、可用性等非功能需求相关。
  • 回归测试 回归测试在代码修复、升级或任何其他系统维护后进行,以检查新代码是否影响了现有代码。

如何在软件工程中进行黑盒测试

以下是执行任何类型黑盒测试的通用步骤。

  • 首先,检查系统的需求和规范。
  • 测试人员选择有效输入(正向测试场景)来检查 SUT 是否正确处理它们。此外,还选择一些无效输入(负向测试场景)来验证 SUT 是否能够检测到它们。
  • 测试人员确定所有这些输入的预期输出。
  • 软件测试人员使用选定的输入构建测试用例。
  • 执行测试用例。
  • 软件测试人员将实际输出与预期输出进行比较。
  • 如有任何缺陷,则进行修复并重新测试。

用于黑盒测试的工具

用于黑盒测试的工具在很大程度上取决于您正在进行的黑盒测试类型。

黑盒测试与白盒测试的比较

Comparison of Black Box and White Box Testing image

黑盒测试 白盒测试
黑盒测试的主要重点是验证您的功能需求。 白盒测试(单元测试)验证您的软件代码的内部结构和工作原理
黑盒测试抽象了代码,并将测试工作重点放在软件系统行为上。 进行白盒测试,必须了解底层编程语言。当今的软件系统使用各种编程语言和技术,不可能全部了解。
黑盒测试促进模块间的测试通信 白盒测试不促进模块间的测试通信

黑盒测试与软件开发生命周期 (SDLC)

黑盒测试有其自己的生命周期,称为软件测试生命周期 (STLC),它与软件工程的软件开发生命周期的每个阶段相关。

  • 需求 – 这是 SDLC 的初始阶段,在此阶段收集需求。软件测试人员也参与此阶段。
  • 测试计划与分析 – 确定适用于项目的测试类型。创建测试计划,其中确定可能的项目风险及其缓解措施。
  • 设计 – 在此阶段,根据软件需求文档创建测试用例/脚本
  • 测试执行 – 在此阶段,执行准备好的测试用例。如有任何错误,则进行修复并重新测试。