什么是破坏性测试和非破坏性测试?(技术、方法、示例)
虽然大多数软件测试方法侧重于软件的功能方面,但破坏性测试强调检查软件的不可预测性。因此,它允许测试人员检测一般用户通常无法识别的罕见缺陷。
虽然破坏性软件测试 (DST) 涵盖了测试过程中的一个重要部分,但这绝不能替代传统的软件测试。因此,它通常与常规测试过程一起进行。
什么是破坏性软件测试?
破坏性软件测试 (DST) 是一种测试过程,测试人员故意导致软件部分发生故障以测试其强度和故障。非破坏性测试 (NDT),又称正向测试或快乐路径测试,涉及正确地测试和交互软件。
破坏性软件测试的优势
虽然破坏性测试不能替代传统的软件测试 (CST),但您可能想知道为什么要首先投入时间和金钱。以下是破坏性软件测试的一些重要优势:
它揭示了软件被不当使用时的故障点。
它允许检测平均用户无法检测到的罕见软件缺陷,但这些缺陷会在以后出现。
它使测试人员能够检查应用程序的耐用性、可恢复性和寿命。
它允许您发现缺陷并使软件适合新手用户。
执行破坏性测试的步骤
步骤 1 - 客户需要在开始此测试周期之前发送应用程序副本或访问凭据和用户需求。
步骤 2 - 在向 QA 分析师提交需求后,客户随后演示应用程序。
步骤 3 - 现在轮到 QA 分析师确定软件内的边界功能,然后确定在这些设定边界内的应用程序可用性限制。
步骤 4 - QA 测试人员将使用随机技术随机测试应用程序,同时保持在边界内。所有工作流程都经过测试,并记录错误。
步骤 5 - 然后,测试人员与相关人员共享缺陷目录。
步骤 6 - 如果客户有不同的意见,则将重复破坏性测试周期。
在破坏性测试中需要验证的要素:
检测应用程序中的正确和不正确行为
应用程序是否返回有效或无效的输入数据
应用程序如何对不当使用做出反应
破坏性软件测试方法
执行破坏性软件测试过程有多种方法:
同行评审 - 测试人员可以获得不熟悉该软件的同行的产品评审。这将帮助他们检测软件中隐藏的缺陷。
利益相关者评审 - 测试人员可以允许利益相关者在有限的时间内使用该软件。有时,这有助于发现测试人员经常错过的有效测试场景。
故障点分析法 - 此方法将审查和检查软件的每个角落。它有助于检测软件将在哪个点发生故障。
探索性测试 - 通过运行表使用此方法。测试人员将大致了解要测试的内容,以便在需要时重复测试并控制测试覆盖率。
用不正确的數據淹沒系統 - 使用损坏的数据,在用户界面中输入错误的序列等,以确定应用程序在哪个点失败。
破坏性测试技术
以下是破坏性测试中使用的技术:
- 自顶向下测试
- 系统测试
- 回归测试
- 循环测试
- 接口测试
- 等价划分
- 边界值测试
- 黑盒测试
- Alpha/Beta 测试
- 验收测试
重要的破坏性测试技巧
在对应用程序进行测试之前,请将自己想象成客户。
从用户故事中删除所有类型的偏见信息,例如故事描述、验收标准等。
尽最大努力破坏所有你能破坏的东西。
遵循异常路径而不是快乐路径。
在真实的网络环境中进行测试,而不是使用高端机器或超高速网络。
什么是非破坏性测试?
在非破坏性测试 (NDT) 中,测试人员会正确地与软件交互。例如,在 DST 中,测试人员输入不正确或不可接受的变量,而在 NDT 中,使用可接受的数据来查看软件是否接受它。
假设一个输入框只接受 1-99 之间的数字,那么这里的任务是在范围内输入可接受的数字并验证软件的功能。
在 NDT 中,测试工程师使用明确定义的测试用例。如果软件返回所需的输出而没有显示任何错误或异常,则测试被认为成功。这意味着软件按预期工作。
非破坏性软件测试的优势
以下是非破坏性软件测试过程的优势
它确保软件高质量且所有问题都已解决。
成功的 NDT 意味着软件按要求规格工作。
它确认满足了所有利益相关者的期望。
它表示软件涵盖所有性能要求。
它节省了用于产品评估和错误修复的大量资金和时间。
何时执行非破坏性测试?
非破坏性测试在 SDLC 的早期阶段进行。这很重要,因为快乐路径是应用程序的生命线。如果它没有按预期工作,它将是其余测试过程。此外,执行此测试所产生的成本和时间相当低。预算有限的组织可以选择它来满足软件要求和验收标准。
非破坏性软件测试技巧
测试人员必须使用积极的测试方法进行非破坏性测试。
此测试的主要目的是验证应用程序在积极方面的行为。这意味着测试人员必须查看在输入有效输入数据时软件是否完美运行。
破坏性测试和非破坏性测试的区别
破坏性测试 | 非破坏性测试 |
---|---|
主要关注的是软件设计的弱点,而不是功能。 | 主要关注的是软件功能的弱点。 |
运行此测试不需要业务需求。 | 测试是为了根据业务需求和接受的标准验证软件的功能。 |
通过输入异常输入来检测故障点,从而破坏软件。 | 正确地与软件交互并验证积极的结果。 |
结论
破坏性测试和非破坏性测试都在软件测试周期中发挥着重要作用。虽然两者都很关键,但非破坏性测试优于其对应测试,因为它涵盖的范围更广,并允许企业节省材料成本。同时,破坏性测试帮助企业发现软件中通常隐藏但会影响用户体验的罕见缺陷。但是,进行此测试可能既昂贵又费时。