性能测试与故障诊断 软件测试
1.认识软件性能测试
一般说来,软件性能是衡量软件对于用户及时性要求的符合程度,它是软件产品的一种特征,可以用响应时间或效率来度量,如果从广义上来说,软件的性能还包括软件的可扩展性,可靠性等。
大多数情况下,软件性能往往是通过软件和其它组件一起工作时表现出来,如所涉及的各种硬件设备,网络设备,各种应用中间件,数据库服务器等,特别是在一些大型分布式应用中更是如此,所以我们通常所说的软件性能测试就是考察软件在特定软硬件环境中的整体性能状况。
通常对软件性能的关注有多个方面,不同的人员关注点不同,从用户角度说,软件性能是软件对用户操作的响应时间,更简单地说,用户更关注于在打开一个链接或按一个按钮时,页面返回所需要多长时间,如果太长,用户无法忍受,他对于此软件所得出的结论就是:性能太差!从系统管理员角度来说,他更关注的可能是整个系统所处的状态,如各个服务器 CPU 、内存、磁盘流量如何?应用服务器 JVM 目前占用为多少?另外管理员还会关注系统具有多大的可扩展性,也就是说系统可能的最大容量是什么,处理并发的能力等等。但对于开发商来讲,如何通过调整系统设置等提高软件的性能表现?如何发现并解决软件设计和开发过程中产生的由于多用户访问引发的软件故障,也就是说,最关注的是使性能表现不佳的因素和由于大量用户访问引发的软件故障。
2.性能测试与故障诊断的关系
有人把测试比作给病人看病的过程,这个比喻很恰当。如果说性能测试是给人做普通健康体检的话,那么故障诊断就是进一步给人做病理分析、进而确诊的过程。我们知道,人在做体检的话,体检项目不外乎是身高、体重、眼耳口鼻、肝功、血液等一般常规检查,但却很少做 CT 、胃镜等非常规检验。在做软件性能测试时,我们往往关注的是系统所表现出来的整体状况,如系统响应时间、服务器资源占用、系统在可接受时间内所达到的最大并发数等。而故障诊断则是针对系统所表现出的整体性能不佳所进行的进一步的检查。当系统响应时间超长时,我们就查看是什么因素导致了问题的产生,是数据库服务器响应慢,还是应用服务器起主要原因,如果是数据库服务器响应慢,是因为 SQL 语句直接引起,还是数据库参数配置不当等原因,另外诸如内存泄露,短期对象,性能瓶颈,数据库配置, Web Server 配置, J2EE 资源配置等问题,这些深层次的东西才属于故障诊断所要解决的问题。在性能测试的基础上,我们为用户提供性能诊断建议报告。
3. 帮助用户解决的问题
作为软件性能测试的工作者,必须立足于为所有与系统有关的群体服务,解决他们所关心的性能问题,我们通过性能测试和故障诊断,一方面能够告知终端用户在大量用户并发访问系统时响应时间表现如何,同时也可以告知系统管理者在大量用户并发访问系统时,服务器或是网络所处的状态如何,同时通过进一步地进行故障诊断,帮助开发人员找到问题原因,使他们尽快地进行修改。
性能调优
在经过性能测试、故障诊断过程之后,接下来要进行的工作就是系统性能调优。
如果仍以给病人看病比喻软件测试过程,那么性能调优将类似于给病人开药方。开药方的目的是让病人尽快恢复健康,而性能调优的过程是使整个系统性能处于最佳状况。
由于目前大多数应用系统都是基于分布式架构进行布署,系统性能会与所涉及的各个组件有关:操作系统、应用中间件,数据库服务器、硬件设备等,因此性能调优的过程也应围绕这几部分来进行。
(1)操作系统的调优
文章来源于领测软件测试网 https://www.ltesting.net/