有的软件没做性能测试,客户反馈了很多性能问题;有的软件没做性能测试,客户从没抱怨性能有问题;有的软件做了性能测试,客户依然反馈了很多性能问题;有的软件做了性能测试,客户从没抱怨性能有问题。如何判断软件是否需要做性能测试?
     
没有任何一个软件不需要做性能测试,而是说需要程度到底有多高,这个需求程度决定了花多少精力去做,并且怎么做的问题。

算一个只有1000行代码的小程序,你怎么能保证它不需性能测试?你怎么知道它里面没有内存溢出?你怎么知道它有没有耗费了不必要的资源?
所以问题不是做不做的问题,而是花多少代价,怎么做的问题。

一般性能测试有几个层次,或者说两个需求。

a.为了找出性能问题

b.为了给出性能指标

c.为了给出需要的配置

而我们国内现在常做的软件无非有几种:1.单机版应用程序 2.C/S或者B/S的项目(一般是外包项目或者政府软件,银行,医疗证券类软件)

对于单机版应用程序来说,一般作性能测试是比较简单的,一般需求是两个,

第一,你要测试一下有没有内存泻漏,或者深情况下内存溢出,或者有没有申请一些没必要的资源。这个一般要用一些分析工具

第二,一般一个单机版应用程序,你总要给出,低配置或者建议配置什么的,那么你给客户这个东西 需要性能测试,测试一下在各种配置下面的运行情况,给出理想的建议值

对于C/S或者B/S结构的软件比较复杂了,一般是必须要做性能测试的。这个性能测试一般从以下方面考虑:

第一,优化

这个还是去考虑性能有没有问题,这个是起码的要求。特别是B/S系统,有没有多余请求,资源有没有释放之类的问题,要先考虑的。这类的问题,一般用网络分析工具可以搞定。

第二,时间

这个是一般性能测试的重点。一般是用性能测试工具LR或WAS之类的做,这个叫负载测试。一般你测试一个软件,总要给老大一个结论,500人并发时,响应时间大概是几秒,300人并发时,是几秒。这个是每个客户都会要的。

第三,配置

这个也是性能测试的重点。这个一般叫压力测试。譬如一般客户会向你要一个数据:我想500人同时并发,响应时间在3秒之内,那么我的服务器要求低配置是多少?这个嘛,你只管压吧!压垮了,升级服务器,再压,又垮了,继续升级,到客户要求的性能指标达到为止。

总结一下,不是要不要做的问题,而是怎么做,按照客户要求哪些需求,哪些指标做的问题!