可扩展性测试:迈向成功的 7 个步骤
在开发过程中运行良好的系统,一旦部署扩展到支持实际使用程度,就可以忽略了忽略实现绩效目标的系统。
一个典范的案例起源于一家巨大的蓝芯片公司,该公司最近将前瞻性高科技平台的开发外包。 尽管开发是幕后日程安排,但认为这是可以接受的。 该机器逐渐通过了个体接受测试的功能组件,最后似乎可以设置部署日期。 但是供应商开始负载测试和可伸缩性测试。 随之而来的是,机器要求的扩展且昂贵的建筑变化和变化。 供应商与英雄作斗争以提供令人满意的系统,直到最终被封存为止。
这不是孤立的情况。 它的民间传说有类似的故事。 从救护车派遣系统到网络地点,以供电子提交税收报表,系统之所以失败,是因为它们扩展并体验了峰值需求。 所有这些项目似乎从未确定并命令他们面临的主要风险。 这可能是基于风险的测试的基本阶段,并且同样适用于可伸缩性测试或负载测试,因为它确实用于功能性测试或业务连续性测试。 没有风险评估,他们没有意识到扩展是最大的风险之间的扩展,要提供所有功能| - |
的范围。 面向服务的建筑(SOA)的最新趋势试图解决可扩展性问题,但还引入了新问题。 将外部提供的服务纳入您当前的解决方案意味着您现在扩展的能力取决于这些外部系统在负载下运行。 确保这可能是一项艰巨的任务,可悲的是,在这里经常忽略应变测试和压力测试。
更好的做法是,使用其性能清楚地开始开发大型软件系统,尤其是可伸缩性测试,音量测试和负载测试。 要生成此性能测试焦点:| - |
#+#研究和量化信息量和交易量所暗示的。 这些数字中的一些可能是开眼界的,并帮助企业用户实现机器的整个规模。 仅此一项就可以重新评估几个功能的优先级。 # - #| - |
#+#确定如何将功能显示给用户和机器结构,以使机器的缩放更加容易。 通常,不要尝试具有与单个用户桌面解决方案相同的功能,提供适当的可扩展替代方案。 # - #| - |
#+#识别开发过程的固有区域是每个增量软件版本上的代表性规模测试。 这是持续的测试,集中于该项目的最大风险:全面运营的机会。 # - #| - |
#+#确保负载测试在范围和严格性方面都足够。 负载测试不仅是通过绩效测试来测量响应时间。 应变测试计划必须包括其他负载测试样式,包括应力测试,可靠性测试和耐力测试。 # - #| - |
#+#不要忘记失败会发生。 大型系统通常包括具有故障行为的服务器群集。 应包括在负载下运行的代表性量表系统上完成的故障测试,失败测试和恢复测试。 # - #| - |
#+#不要忘记可能发生灾难性故障。 对于大规模问题,灾难测试和灾难恢复测试应以代表性规模和负载完成。 这些活动可以看作是业务连续性测试的技术层面。 # - #| - |
#+#如果您使用的是外部服务。 您的位置采用了SOA方法,因此受外部服务的影响,您应该确保随着人体尺度及其自身要求的增加,这些服务上的吞吐量和周转时间将保持可接受。 良好的系统体系结构包括外部服务行为恶化或失败,包括优美的响应和倒塌操作。 # - #| - |