南京索引科技有限...吧 关注:23贴子:133
  • 0回复贴,共1

如何确定系统的性能需求(一)

只看楼主收藏回复

当某个在线订单系统发布之后,用户感觉系统不能及时响应自己的操作请求,抱怨系统的性能低下。公司研发老板就责问测试经理,性能测试有没有执行?是如何测试的?测试经理无奈地辩解道,当时没有拿到性能测试的需求,因为在产品需求文档中没有具体的说明性能指标,测试人员也不清楚系统应该具有什么样的性能,所以只简单地做了压力测试。
虽然这样的辩解是不对的。如果当初项目经理没有提出性能测试需求或者产品需求文档中没有具体的说明性能指标,测试组还是有责任及时提出问题的。但不管怎么说,一个系统仅仅通过了功能测试就发布出去是很危险的,还必须考虑非功能性测试。其次,仅仅知道要实施性能测试还远远不够,首要任务就是明确系统性能的需求。
明确性能测试的基本目标
首先明确为什么要做性能测试。做性能测试,不仅仅是为了发现性能瓶颈的问题,而且还有其他的目的。例如,通过性能测试是获取系统的性能指标,特别是系统的第一个版本,研发团队也不清楚系统的性能能达到怎样的水平,这时进行的性能测试,其目标是获得系统标准配置下有关的性能指标数据,作为将来性能改进的基准,所以这种测试称为“性能基准测试”。下一个版本研发时,我们针对性能要求,就可以提出相关性能指标要改善30%以上。到了下一个版本,性能指标就明确了,这时通过性能测试来验证系统是否达到系统所要求的性能指标。多数的性能测试是基于这个目标去做的(即性能验证测试)。如果系统的性能达不到更高的性能指标要求,系统的性能就需要优化。这时就可能去识别、分析哪个服务或哪个组件运行时占用了更多的系统资源、哪个环节花费了更多的时间、哪个算法太耗费计算资源、哪个地方出现了内存泄漏......要更快地找出性能瓶颈,一般会加大负载、甚至将负载一直增加上去,达到极限负载,这类性能测试也可以称为“压力测试”。有时,在不断加载的过程中,一旦系统出现拐点(从量变到质变),系统可能就会出现崩溃。通过压力测试,一方面可以了解多大负载情况下系统会崩溃;另一方面,在这个过程中也能确定系统在正常工作情况下,系统能承受的最大负载,这就是通常所说的“容量测试”。
系统的性能好坏,不仅取决于软件自身的设计与实现,也取决于软件运行所依赖的硬件、网络环境。为了达到系统的性能指标要求,就需要调整系统的硬件配置,如增加服务器或服务器集群来达到更高的性能。这时,会在不同配置的情况下,来测定系统的性能指标,从而决定在系统部署时采用什么样的软、硬件配置,这就是系统的“性能规划测试”,系统运维部署规划及其配置则依赖于性能的规划测试数据。通过这种测试,也可以验证系统是否具有可伸缩性。如果系统具有良好的可伸缩性,就可以通过增加系统的硬件配置来扩展系统的容量、服务能力。性能规划测试过程中,也可以验证系统的可伸缩性。概括起来,性能测试是出于以下几个目标之一或其中多个目标而进行的。
获取系统性能指标,作为性能指标的基准。
验证系统性能是否达到要求。
发现系统的性能瓶颈、内存泄漏等问题,如渗入测试、峰谷测试等。
系统正常工作情况下的最大容量。
帮助系统运维部门更好地规划硬件配置。
验证系统是否具有良好的可伸缩性。
借助大负载、极限负载,完成系统稳定性测试,即压力测试。


IP属地:江苏1楼2022-08-11 14:07回复