1.2 性能测试的价值
当今,软件产品已经应用到社会的各个行业和各个领域,加上网络的发展、信息的共享等,人们对计算机及网络的依赖性越来越大。软件产品的使用者(或者说软件用户)对高质量、高效率的工作方式的需求也越来越大,因此对于与自己工作和生活息息相关的IT系统服务,他们也要求更快、更高效的服务品质。
根据2008年Aberdeen Group的一份研究报告,对于Web网站来说,1秒的页面加载延迟会导致减少11%的PV(Page View,页面浏览量),并降低16%的顾客满意度。Compuware公司分析了超过150个网站及150万个浏览页面,发现页面响应时间如果从2秒增长到10秒,会导致页面浏览放弃率达到38%。从经济的角度计算,如果一个网站每天的营收是10万元,那么只要页面加载速度比竞争对手慢1秒,一年中可能导致的营收损失将达到25万元。
由此可见,系统的性能效率是软件产品为用户提供良好体验的一个关键部分,系统的性能与业务目标有着直接的关系。在建立最终用户可接受的质量水平的过程中,性能测试具有非常关键的作用。
性能测试通常采用实验的形式来开展,这样可以对特定的系统参数进行测量和分析。并且性能测试可以迭代,以支持系统分析、设计和实施,从而有助于做出架构上的决策,并帮助利益相关方确定期望。
在实施性能测试期间,测试人员通常使用自动化的测试工具模拟真实用户,在系统中加入各种负载,包括正常、峰值以及异常负载等,并结合其他方法(如易用性工程和性能工程)去评估软件产品功能的适合性、易用性和其他质量特性,这样可能会发现系统在特定负载下的问题,还可能发现其他需要处理的风险区域。
通过性能测试,可以验证软件系统的性能指标是否能够满足用户的需求,评估软件系统的运行能力,如系统在特定负载下对用户操作的响应时间、支撑并发用户数量、稳定性和可靠性等。通过性能测试,也可以发现软件系统在运行中可能存在的性能瓶颈,识别系统的弱点,如系统中极端或烦琐的代码逻辑,从而可以有针对性地对软件系统进行性能调优。
性能测试并不局限于终端的Web领域,也关注其他多种系统架构下的不同应用领域,比如传统的客户端-服务器端架构应用、分布式应用和嵌入式应用。