什么是破坏性检测和无损检测?(技术、方法、示例)

虽然大多数软件测试方法侧重于软件的功能方面,但破坏性测试强调检查软件的不可预测性。因此,它允许测试人员检测一般用户通常无法识别的罕见缺陷。

虽然 DST 涵盖了测试过程的关键部分,但它绝不是传统软件测试的替代品。因此,它通常与常规测试过程一起进行。

什么是破坏性软件测试?

破坏性软件测试 (DST) 是一种测试过程,在该过程中,测试人员自愿导致软件部分无法测试其强度和故障。无损测试 (NDT),又名正面或快乐路径测试,涉及正确测试和与软件交互。

破坏性软件测试的好处

尽管破坏性测试不能替代传统软件测试 (CST),但您一定想知道为什么首先要在其中投入时间和金钱。以下是破坏性软件测试的一些基本好处 -

  • 当软件使用不当时,它会发现故障点。

  • 它允许检测普通用户无法检测但稍后会出现的罕见软件缺陷。

  • 它使测试人员能够检查应用程序的耐用性、可恢复性和使用寿命。

  • 它允许您发现缺陷并使软件适合新手用户。

执行破坏性测试的步骤

  • 步骤 1 - 在开始此测试周期之前,客户端需要发送应用程序副本或访问凭据和用户要求。

  • 步骤 2 - 在向 QA 分析师提出要求后,客户然后演示应用程序。

  • 第 3 步- 现在,轮到 QA 分析师确定软件内边界的功能,然后确定这些设置边界内应用程序的可用性限制。

  • 第 4 步- QA 测试人员将使用随机技术随机测试应用程序,同时保持在边界内。所有工作流程都经过测试,并记录错误。

  • 步骤 5 - 然后,测试人员与有关当局共享缺陷目录。

  • 第 6 步- 如果客户有不同看法,则将重复破坏性测试周期。

在破坏性测试中验证的元素 -

检测应用程序中的适当和不当行为

如果应用返回有效或无效的输入数据

应用程序因使用不当而产生的反应

破坏性软件测试方法

有多种方法可以执行破坏性软件测试过程 -

  • 同行评审- 测试人员可以让不熟悉软件的同行评审产品。这将帮助他们检测软件中隐藏的缺陷。

  • 利益相关者的审查- 测试人员可以允许利益相关者在有限的时间内使用软件。有时,这有助于发现测试人员经常遗漏的有效测试场景。

  • 故障点分析方法- 软件的每个角落都将在此方法中进行审查和检查。它有助于检测软件将在什么时候失败。

  • 探索性测试- 通过运行表使用此方法。测试人员将对测试内容有一个大致的了解,以便在需要时重复测试并控制测试覆盖率。

  • 用不正确的数据淹没系统- 使用损坏的数据,在用户界面中输入错误的序列等,以确定应用程序在哪一点失败。

破坏性测试技术

以下是破坏性测试中使用的技术 -

  • 自上而下的测试

  • 系统测试

  • 回归测试

  • 回路测试

  • 接口测试

  • 等价划分

  • 边界值测试

  • 黑盒测试

  • Alpha/Beta 测试

  • 验收测试

要遵循的重要破坏性测试提示:

  • 在对应用程序进行测试之前,将自己视为客户。

  • 从用户故事中删除所有类型的偏见信息,例如故事描述、验收标准等。

  • 尽最大努力破坏一切。

  • 遵循异常路径而不是快乐路径。

  • 在真实网络条件下进行测试,而不是使用高端机器或超高速网络。

什么是无损检测?

在无损检测 (NDT) 中,测试人员与软件正确交互。例如,在 DST 中,测试人员输入不正确或不可接受的变量,而在 NDT 中,可接受的数据用于查看软件是否接受它。

假设输入框只接受 1-99 之间的数字,因此这里的任务是输入范围内可接受的数字并验证软件的功能。

在无损检测中,测试工程师使用定义良好的测试用例。如果软件返回所需的输出而没有显示任何错误或异常,则认为测试成功。这意味着软件按预期工作。

无损软件测试的好处

以下是无损软件测试过程的好处:

  • 它确保软件是高质量的,并且所有问题都已得到修复。

  • 成功的 NDT 意味着软件按照要求的规格工作。

  • 它确认利益相关者的所有期望都得到满足。

  • 它表示该软件涵盖了所有性能要求。

  • 它节省了用于产品评估和错误修复的大量金钱和时间。

何时进行无损检测?

无损检测是在 SDLC 的早期阶段进行的。这很重要,因为快乐路径是应用程序的命脉。如果它没有按预期工作,它将是测试过程的其余部分。此外,执行此测试所需的成本和时间相当低。预算有限的组织可以选择它来满足软件要求和验收标准。

无损软件测试技巧

测试人员必须使用积极的测试方法进行无损测试。

此测试的主要目的是验证应用程序在积极方面的行为。这意味着,测试人员必须在输入有效输入数据时看到软件运行良好。

破坏性和非破坏性测试之间的区别

破坏性测试无损检测
The primary focus in on the weakness of the software design, not functionality.
主要关注点是软件功能的弱点。
Business requirements is not necessary to run this test.
进行测试以根据业务需求和接受的标准验证软件的功能。
It is conducted to break the software by entering unusual inputs for detecting points of failures.它被执行以正确地与软件交互并验证积极的结果。

结论

破坏性和非破坏性测试在软件测试周期中都扮演着重要的角色。虽然两者都至关重要,但无损与同类产品相比具有优势,因为它覆盖更多领域并允许企业节省材料成本。同时,破坏性测试可帮助企业发现软件中的罕见缺陷,这些缺陷通常不可见,但会妨碍用户体验。但是,进行此测试可能既昂贵又耗时。