探讨|测试数据在软件测试中的作用

软件测试通常涉及各种技术和方法,以及测试软件的方方面面,包括功能、性能、安全等。由于消费者需求的日益增多,弹性测试正在变得越来越重要。2016年,思科75% 的应用程序都经过了弹性测试。

什么是弹性测试

弹性测试是一种特殊的测试类别,是确保应用程序在现实条件下表现良好的关键步骤。它是软件测试的非功能部分的一部分,还包括合规性测试、耐久性测试、负载测试、恢复测试等。

顾名思义,弹性软件中的弹性描述了其承受压力和其他具有挑战性的因素以继续执行其核心功能并避免数据丢失的能力。

按照IBM 的定义:“软件解决方案弹性测试是指解决方案在系统的一个或多个部分吸收问题影响的能力,同时继续为业务提供可接受的服务水平。”

探讨|测试数据在软件测试中的作用

由于谁都永远无法确保 100% 的避免软件故障率,因此公司应该提供从软件中断中恢复的功能。通过实施故障安全功能,可以在很大程度上避免崩溃时的数据丢失,并将应用程序恢复到崩溃前的最后一个工作状态,同时对用户的影响最小。

提高软件和解决方案弹性的一种方法是将它们托管在云服务器上,从而最大限度地减少内部系统出现故障的机会,并选择更具弹性的云架构。虽然中断也确实发生在云级别,但云运营商通常拥有复杂的弹性和恢复系统。

如何测试弹性?

弹性测试基于特定条件下的可观察性。

首先,需要对业务进行分析。平台的核心功能是什么?需要什么样的数据?

明确此信息后,就可以开始计划弹性测试。嗯,在这种情况下,“计划”是一个特别奇怪的词,因为我们想要“计划混乱”或至少是最大数量的随机事件。

探讨|测试数据在软件测试中的作用

下一步是混沌模拟,其目标是破坏系统。因此,运行于与生产环境非常相似的专用环境中,开始关闭一些服务器,或者将恶意代码注入系统以模拟黑客攻击,或者使某些核心数据不可用,或者做任何一直想做的事情(删库跑路)并导致问题。

在这些测试之后,收集并分析所有模拟结果数据,以计划应对这些结果的活动。

何时使用弹性测试

任何系统或应用程序都不会永远无故障地运行,无论其构建/设计得如何。

事实上,关键是要了解解决方案在故障条件下的运行效果如何,甚至是否能正常运行。这意味着服务管理团队在了解在没有任何给定组件可用的情况下服务可以运行多长时间。测试还确保团队了解需要做什么才能从故障中恢复,并已证明有能力这样做。

如今,弹性测试在任何 IT 解决方案中都是必不可少的,但各个组织将根据其应对风险的方法来确定其对 IT 战略的重要性。一家在线销售其 2% 产品的零售店可能不想投入大量资金来构建完全有弹性的基础设施并对其进行测试。

探讨|测试数据在软件测试中的作用

相反,金融机构的系统一旦失败,声誉可能会受到巨大影响,那么金融机构很可能会优先考虑弹性测试。在公共部门领域,例如福利或医疗保健,解决方案中缺乏(或失败)弹性可能会导致人类生命损失,从测试的角度来看,这将再次使其成为高度优先领域。

IBM 的弹性测试

为了了解公司如何对不同类型的故障做出反应,我们可以看看IBM 是如何进行弹性测试的。IBM 的团队已经确定了弹性的两个重要组成部分,即问题影响和出现问题后可接受的服务级别。

理想情况下,任何故障都不会对消费者产生任何影响。由于这是不可能实现的,IBM 专注于尽可能减少这种影响。例如,如果托管系统或其一个组件的机器崩溃,那么发送到该机器的请求会立即重定向到另一台机器,并且对用户尽可能透明。

探讨|测试数据在软件测试中的作用

一个更戏剧性的事件是整个数据中心的故障,在这种情况下,“该数据中心正在处理的所有工作都由另一个数据中心继续进行——同样对用户尽可能透明,尽管在发生故障的情况下一场灾难性的停电,你应该做好应对重大影响的准备。”

IBM 的目标是最大限度地减少故障的影响和持续时间。对于机器故障,此持续时间通常以分钟为单位,而数据中心的故障可能会导致数小时的中断。

为了提出有意义的弹性测试用例,IBM 使用解决方案操作模型,其中识别了问题解决方案的所有组件及其交互。然后,他们查看解决方案的非功能性需求,以创建解决方案的需求列表,例如响应时间、吞吐量和可用性。

弹性测试的未来

消费者的期望将不断提高,提供系统或服务的组织经常会出现中断或功能降低的风险,从而可能会失去客户。组织了解其解决方案中的风险领域以及他们如何处理这些“假设”场景至关重要。

来源:龙测科技

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月3日
下一篇 2021年10月3日

相关推荐