虽然大多数软件测试方法侧重于软件的功能方面,但破坏性测试强调检查软件的不可预测性。因此,它允许测试人员检测一般用户通常无法识别的罕见缺陷。
虽然 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. | 它被执行以正确地与软件交互并验证积极的结果。 |
破坏性和非破坏性测试在软件测试周期中都扮演着重要的角色。虽然两者都至关重要,但无损与同类产品相比具有优势,因为它覆盖更多领域并允许企业节省材料成本。同时,破坏性测试可帮助企业发现软件中的罕见缺陷,这些缺陷通常不可见,但会妨碍用户体验。但是,进行此测试可能既昂贵又耗时。