破坏性测试是一种测试类型,用于使软件应用程序崩溃或失败,以便在应用不同的负载量时确定应用程序的行为。这最适合大量生产的产品,因为销毁少量产品的损失要比销毁较大数量产品的成本低。例如,移动测试。当开发新版本的移动软件时,它将被用于大量的手机中,而不执行负载或压力测试的风险可能会对业务产生广泛的影响。
破坏性测试相对来说更容易执行,产生的信息比其他类型的非功能测试要多。它决定了软件的健壮性。
让我们从破坏性测试的类型开始详细了解这种类型的测试。
破坏性测试有以下几种类型
破坏性测试
这是测试软件应用程序健壮性的传统方法。如前所述,进行此测试是为了确定应用不同数量的负载时应用程序的行为。破坏性测试还用于验证即使接受无效或意外输入,软件也能正常运行,这有助于建立输入验证和错误管理例程的健壮性。
异常处理测试
异常处理是破坏性测试的一部分,当系统失败时,应该有一个特定的过程来响应异常的发生。这种特殊的处理由编程语言构造或计算机硬件机制提供。
恢复测试
恢复测试是测试软件应用程序从硬件或软件崩溃(或故障)中恢复的行为的一种测试。恢复测试通过以多种方式强制软件故障,以验证恢复是否正确执行。它不同于可靠性测试,我们只专注于测试故障点。恢复测试是一项基本测试,用于检查软件应用程序能在各种崩溃、硬件故障或其他灾难性问题等方面恢复的速度。
执行破坏性测试的优势
它有助于确定软件在使用不当时的软件应用程序行为。
它有助于检查软件产品的健壮性。
执行破坏性测试的缺点
该组织的额外成本。
破坏性测试策略
与任何传统测试一样,破坏性测试包括测试用例设计、测试脚本开发、测试脚本执行、发现bug、bug关闭,以及在测试完成后向利益相关者提供测试报告。以下是进行破坏性测试的一些方法。
分析失败点的方法:在此策略中,业务分析师可以在系统演练中发挥关键作用,以评估各个点可能出现的问题。
同行评审:测试案例应该由不熟悉系统操作的同行测试人员或同行进行评审。
测试用例评审:由最终用户或熟悉各种应用场景的专家完成。在设计测试用例时,测试人员可能会错过这样的场景,但专家可能会帮助将那些缺少的测试场景包含进来。
进行探索性测试:通常,探索性测试可以通过直接在应用程序薄弱区域进行测试来帮助确定快速(开发时间紧张)应用程序的稳健性。
Monkey测试: 它旨在不惜任何代价破坏应用程序。专家可以直接捕捉软件的颈静脉,然后点击那里中断应用程序。
如何执行破坏性测试?
在破坏性测试中,我们验证了以下几点:
正确的软件应用程序行为:它是在从低请求量到峰值请求量的各种请求来检查软件行为。其目的是使应用程序崩溃并研究被测应用程序的行为。
不正确的软件应用程序行为:可靠性测试是为了标记应用程序在它崩溃之前能够提供正确的行为。但同时,当我们在断点之外进行破坏性测试时,了解不正确的应用行为是至关重要的。这些规范可能对应用程序支持团队有用,以便在生产模式下顺利操作应用程序。
使用不当:可能会出现软件应用程序使用不当的情况,如频繁的峰值容量或意外的容量。在这种情况下,应该事先知道软件应用程序的确切行为,这只能通过破坏性测试来实现。
不正确的输入数据:并不总是将有效的输入数据输入到应用程序中。可能会出现无效数据馈送给应用程序的情况,这可能会导致应用程序崩溃。同样,这种行为和应用程序的健壮性可以通过破坏性测试来测试。
正确的输出数据: 所有计算机应用程序遵循GIGO(垃圾进出)的默认规则。破坏性测试可用于研究垃圾输入对垃圾输出的应用行为,它解释了应用程序中的验证级别,以克服软件崩溃或故障的情况。
结论
在破坏性测试技术中,软件应用程序有目的地使程序崩溃或失败,以检查其健壮性。此外,进行破坏性测试并不需要具备原始要求的应用知识。