Smoke Testing 与 Sanity Testing 的区别

17 Mar 2025 | 5 分钟阅读

在本节中,我们将讨论 **软件测试** 中的 **smoke testing 和 sanity testing** 是什么,并了解它们之间的主要区别。

软件测试 中,我们将了解到在 SDLC(软件开发生命周期) 的初始阶段进行的任何测试都可以节省成本和时间。

Smoke TestingSanity Testing 是两种重要的 **测试** 类型,它们确保在开发周期的早期阶段就能发现 bug 和缺陷。

通常,我们都会混淆 **Sanity Testing 和 Smoke Testing** 的定义。首先,这两种测试是 **不同** 的,并且在测试周期的不同阶段执行。

在理解 smoke 和 sanity testing 之前,建议先了解 **Build** 和 **Release**,以及它们与 Smoke 和 Sanity Testing 的关系。

什么是 Build?

在手动测试中,build 是一个包含某些功能/bug 的软件,它被安装在 **测试服务器** 上,需要对产品的稳定性进行测试。

换句话说,我们可以说 build 用于将代码转化为应用程序格式。每个新 build 都是新 build 的改进版本。

有关软件 build 和 build 过程的更多信息,请参阅以下链接:manual-testing

什么是 Release?

在 **软件测试** 中,这是日常使用非常普遍的术语。Release 是交付给客户的最终产品或项目。

它包括从 **需求、设计、开发和测试阶段** 直到交付给客户的完整活动。

换句话说,我们可以说 release 是一个完全开发的应用程序,而 build 是应用程序或软件的一部分。

注意:每当一个 build 被测试团队测试和审查后,它就被交付给客户作为 Release。

现在,让我们简要介绍一下 **Smoke Testing 和 Sanity Testing** 的过程。

什么是 Smoke Testing?

这是一种测试,在进行详尽或严格的测试之前,确保应用程序的基本和关键功能正常工作。

Smoke testing 也被称为 验收测试 或 **Build 验证测试** 的子类。

换句话说,我们可以说 smoke testing 用于测试软件产品的 **所有功能** 或 **检查 build 是否损坏**。

在 smoke testing 中,我们只执行积极的测试,这意味着我们只能输入有效数据,不能输入无效数据。

每当出现新的 build 时,我们总是从 smoke testing 开始,因为一些更改可能会破坏新 build 的主要功能。

Smoke Testing vs Sanity Testing

有关 smoke testing 的深入信息,请参阅以下链接:smoke-testing

什么是 Sanity Testing?

它是在 build 后检查 bug 是否已修复。通常,Sanity testing 在稳定的 build 上执行。它也被称为回归测试的一个变体。

执行 sanity testing 的初始目标是确定计划的功能大致按预期工作。如果 sanity test 失败,则会拒绝该 build,以节省在更严格测试中花费的时间和成本。

Smoke Testing vs Sanity Testing

有关 sanity testing 的更多详细信息,请参阅以下链接:sanity-testing

注意:Dry Run 是一种测试过程,其中有意识地减轻了潜在故障的后果。

当我们谈论 **smoke 和 sanity testing** 时,我们知道这两种测试是相似的,但 smoke testing 和 sanity testing 都有其目的和意义。

因此,在本文中,我们将通过了解它们之间的关键区别来克服 Smoke 和 Sanity testing 的混淆。

Smoke Testing 和 Sanity Testing 的关键区别

以下事实解释了 **smoke 和 sanity testing** 之间的区别:

Smoke Testing vs Sanity Testing
  • Smoke Testing 是 **脚本化的**,这意味着它可以被记录,而 sanity testing 是 **非脚本化的**,这意味着它不能被记录。
  • Smoke testing 被认为是 **广而浅** 的测试,而 sanity testing 被认为是 **窄而深** 的测试。
  • Smoke testing **涵盖所有重要功能并执行高级别测试**,而 sanity testing **涵盖一些非常重要的功能并执行深入测试**。
  • Smoke testing **在 build 安装后立即执行**,而 sanity testing **在 bug 修复完成后执行**。

冒烟测试 vs 健全性测试

下面的比较表快速阐明了 smoke testing 和 sanity testing 之间的重要区别:

序号比较基础冒烟测试健全性测试
1测试覆盖率这是一种广泛的测试方法,测试应用程序的所有部分。这是一种狭窄的测试方法,测试应用程序的特定部分。
2衡量标准它通过严格的测试来衡量系统的稳定性。它通过严格的测试来衡量系统的合理性。
3技术Smoke testing 可以是手动或自动的。Sanity testing 可以在没有测试用例或脚本的情况下进行。
4执行者由测试人员和开发人员执行。仅由测试人员执行。
5目的测试是在不深入的情况下进行的,但测试人员在需要时会深入。Sanity testing 不需要深入了解应用程序。
6.执行时间Smoke testing 是在初始 build 上执行的第一个测试。Sanity testing 在 build 相对稳定时执行。
7文档Smoke testing 是已记录的。Sanity testing 未记录。
8用途它用于测试应用程序的端到端功能。它仅用于测试已修改或已修复缺陷的功能。
9子集它被认为是验收测试的子集。它被认为是回归测试的子集。

结论

在本教程中,我们对 **smoke testing 和 sanity testing** 进行了比较。在这里,我们得出结论,需要执行 smoke 和 sanity testing 来测试软件或应用程序。

这些是大多数 **质量保证和项目团队** 在各种软件开发项目中遵循的基本测试概念。

测试新手需要了解 Smoke 和 Sanity testing 的基本原理,以获得有效且良好的质量保证成果。

Smoke testing 和 Sanity testing 都可以手动实现,也可以使用一些自动化工具实现。当使用自动化工具时,测试会开始反复创建 build。

根据软件的需求,我们可以在同一个软件 build 中执行 smoke 或 sanity testing。在这种情况下,我们将首先执行 **Smoke tests**,然后继续执行 **Sanity Tests**。

在软件行业,Sanity Testing 的测试用例通常与 smoke tests 共享,以加快测试执行过程。

Sanity 和 Smoke testing 都是避免延迟和浪费精力的方法,通过快速确定应用程序是否太损坏以至于无法进行任何严格测试。