如何判断是否需要对一个软件进行性能测试?(08-04-25)(获奖名单已公布) - [软件测试每周一问] - [51Testing软件测试沙龙] - 51Testing软件测试论坛 软件测试 | 软件缺陷跟踪 | 软件配置工具 | 测试用例设计 | Web测试 | 自动化测试工具 - Powered by Discuz!
google搜索 站内搜索                                           软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客
打印

如何判断是否需要对一个软件进行性能测试?(08-04-25)(获奖名单已公布)

如何判断是否需要对一个软件进行性能测试?(08-04-25)(获奖名单已公布)


有的软件没做性能测试,客户反馈了很多性能问题;有的软件没做性能测试,客户从没抱怨性能有问题;有的软件做了性能测试,客户依然反馈了很多性能问题;有的软件做了性能测试,客户从没抱怨性能有问题。到底要不要做性能测试,这是一个大问题。如何判断你的软件是否需要做性能测试?欢迎大家讨论交流!


如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!

非常感谢各位会员积极参与,截止至5月9日17:30分,从该贴所有评论中选出部分作出精彩评论的会员予以奖励。礼品和积分将在下周内送出。

获奖名单

奖项

获奖名单

奖励

答案链接

一等奖

godn_1981

当当购物卡50元

11#

二等奖

huior

300论坛积分

37#

cityyard

40#

三等奖

duola1119

100论坛积分

21#

清风随雨

24#

vivian2008

41#

TOP

这个还是要从用户的角度上考虑吧.看看用户对性能是不是关注的.性能在整个软件中的地位.

TOP

这要根据软件的实际用途和在现实中的应用来做要求,比如说163邮箱的登陆,无论从现实中的应用和实际用途,做性能测试都是很必要的,一些简单环境下用的软件windows自带计算器,画图程序等之类的单用途,非网络环境下应用,可以不做性能测试,象基于B/S,C/S之类的,性能测试就显得非常重要
    其他的就还有一些用户需求,成本等因素在内,毕竟,测试也是个经济学概念

[ 本帖最后由 firlove 于 2008-4-25 23:02 编辑 ]

TOP

不成熟的意见


在一些软件中如果软件的性能占据着很重要的作用的话或者说软件在一些大的数据基础下进行的话,我们就很有必要做软件的性能测试。同意楼上的观点在一些现在的C/S和B/S的软件系统中进行性能的测试。以前在这些方面我们的软件做不是很好。记得我们在学校进行选课的时候大家都想早点选吗结果最后一般都是弄得大家都选不了,这是一个明显没有做性能测试的用例。
还有一些软件虽然没有一般的C/S, B/S结构但是是对数据的大量数据的操作或者同样有必要进行测试。
性能测试有的时候也要联系软件的功能因为有的功能本身就需要一个长时间的运行或者多个用户的同时操作,这些就是要求软件在工作的时候我们要考虑它的时间和用户的数量。
假如有的时候做软件测试需要很高的成本考虑靠市场和成本的因素,可以取消对软件的进行性能测试。
总之来说不要要进行软件测试是根据软件用户和软件自己本身的结构有关的。这是自己一点想法希望个大家交流。

TOP

根据实际情况来,具体情况具体分析了
做别人做不到的,走自己的路!
个人网站-小不点
测试QQ群:9552212
msnshow@126.com

TOP

很早以前就跟朋友讨论过这个问题

其实并不是是否要做性能测试,而是用户对性能的需求到底是什么

我的看法是:事实上相当一部分情况下,用户对实际性能的要求可能并不高。很多时候系统性能是否过关并不完全由系统的实际性能决定,很大程度上其实是取决于最终用户对系统的体验。
呃,这话说的有点抽象。 打个比方吧: 学计算机的人都知道,在进行一个占资源比较多时间比较长的操作时,理论上说设计一个进度条(或者其他表示进度的东西)总比没有进度条的速度要慢,因为占的资源更多。 但是通常总会有这方面的设计,原因在于有了一个反应进度的标识以后给用户的感觉会比没有进度标识的感觉好得多,虽然实际性能是下降了。
为什么会这样呢?  因为用户把原先唯一的一个最终期待目标分解成了一系列短期的期待目标。 比如说原先10秒的响应时间,由于有了进度条,用户期待的目标成了10%,20%,。。。每个目标只需要一秒时间。 这样一来总共10秒的等待时间可能他觉得可以接受。 但是如果没有进度指示让他傻等10秒可能他就会不耐烦了。
所以首要问题是: 良好的设计-----从最终用户体验的角度出发进行整个系统设计。

当然,我并不是说传统的性能测试或者性能调优之类的工作不重要,我只是觉得有些工作的开展方式可能不是很合适。比如有不少主管或者pm希望用户告诉他们量化的性能指标。 我承认有些情况下这是可行的并且是必要的(比如说银行或者证券的数据库之类的,这个性能需求肯定要做严格的论证的),但是更多情况下,用户需要做的只是给你一个定性的要求。 如果你非要让他决定响应时间要多少秒的话,他肯定认为越快越好:比如说原先的设计可以做到0.5s内响应,但是他现在要你做到0.4s内响应。 也许对于最终用户来说根本感觉不到0.5s和0.4s的区别,但是对你来说,20%的性能提高有可能是一个庞大的工程。

个人看法,仅供参考。
卡车司机说:“每个皮球后面肯定跟着一个小孩。”

TOP

个人认为。
其实任何一款软件完成后都做一个性能测试的话,可以提高软件质量。但是有时候却因为时间和成本的问题,导致有些软件不做性能测试,还有可能就是在需求分析的时候没很好的和客户沟通,忽略了对性能这方面的测试。
判断性能测试的依据如下:
(1)该软件是在B/S或C/S架构中运行的情况下,需要进行性能测试。
(2)该软件是多任务。多进程和多用户的情况下,需要进行性能测试。
(3)该软件具有对实时性要求较高的情况下,需要进行性能测试。
(4)该软件需要对大量的数据进行处理的情况下。也需要进行性能测试。
暂时只考虑到这么几点。

TOP





个人认为,  先看用户的需求, 如果涉及到大量数据的操作, 就一定要做性能测试, 如果涉及到数据库(现在仿佛都涉及到了) 也一定要做性能测试.   
    1. 一般, 都是软件或者B/S架构的服务器  处理海量数据的时候, 才会提现出性能方面的问题.  所以, 可以把处理海量数据来进行一个参考.
    2. 就是有时候性能测试过了, 但是用户还是抱怨有性能问题, 就要考虑到 实际环境下的问题了, 可能不是性能测试没有到位, 而是 用户使用环境出了问题, 这个也需要考虑进去的.
小小的菜鸟,想飞的更高~~~

TOP

公司开发的产品到底需不需要做性能测试,这确实是一个大问题。

当然要做性能测试,起码要根据自己的产品性能考虑过进行性能测试,因为IT公司是靠做软件吃饭的,软件的质量直接决定了公司的经济效益,所以说软件质量的好与坏直接决定了该IT公司的存在意义。
博客:http://blog.51testing.com/?77492
我的博客我怕谁
欢迎大家进来做客。

TOP

任何一个软件都需要进行性能测试


任何一个软件都需要进行性能测试。
无论是B/S,或者是C/S的,甚至是单机版的软件都有进行性能测试的必要。尤其是对大数据量的性能测试。
一个人的城市

TOP

关于性能测试的看法






关于楼主的问题:有的软件没做性能测试,客户反馈了很多性能问题;有的软件没做性能测试,客户从没抱怨性能有问题;有的软件做了性能测试,客户依然反馈了很多性能问题;有的软件做了性能测试,客户从没抱怨性能有问题……
这确实是个问题。
其实我倒觉得问题不是要不要做的问题,而是怎么做,做多少的问题!
请注意,没有任何一个软件不需要做性能测试,而是说需要程度到底有多高,这个需求程度决定了花多少精力去做,并且怎么做的问题。
就算一个只有1000行代码的小程序,你怎么能保证它不需性能测试?你怎么知道它里面就没有内存溢出?你怎么知道它有没有耗费了不必要的资源?
所以问题不是做不做的问题,而是花多少代价,怎么做的问题。

一般性能测试有几个层次,或者说两个需求。
a.为了找出性能问题
b.为了给出性能指标
c.为了给出需要的配置
而我们国内现在常做的软件无非有几种:1.单机版应用程序 2.C/S或者B/S的项目(一般是外包项目或者政府软件,银行,医疗证券类软件)
对于单机版应用程序来说,一般作性能测试是比较简单的,一般需求是两个,
第一,你要测试一下有没有内存泻漏,或者深情况下内存溢出,或者有没有申请一些没必要的资源。这个一般要用一些分析工具
第二,一般一个单机版应用程序,你总要给出,最低配置或者建议配置什么的,那么你给客户这个东西 就需要性能测试,测试一下在各种配置下面的运行情况,给出理想的建议值
对于C/S或者B/S结构的软件就比较复杂了,一般是必须要做性能测试的。这个性能测试一般从以下方面考虑:
第一,优化
这个还是去考虑性能有没有问题,这个是起码的要求。特别是B/S系统,有没有多余请求,资源有没有释放之类的问题,要先考虑的。这类的问题,一般用网络分析工具就可以搞定。
第二,时间
这个是一般性能测试的重点。一般是用性能测试工具LR或WAS之类的做,这个叫负载测试。一般你测试一个软件,总要给老大一个结论,500人并发时,响应时间大概是几秒,300人并发时,是几秒。这个是每个客户都会要的。
第三,配置
这个也是性能测试的重点。这个一般叫压力测试。譬如一般客户会向你要一个数据:我想500人同时并发,响应时间在3秒之内,那么我的服务器要求最低配置是多少?这个嘛,你就只管压吧!压垮了,升级服务器,再压,又垮了,继续升级,到客户要求的性能指标达到为止,呵呵~~~~~~~~~~~~
总结一下,不是要不要做的问题,而是怎么做,按照客户要求哪些需求,哪些指标做的问题!

TOP

再补充一点哦


当然在具体执行的时候,还是要根据具体情况。
这个一般是在项目开始阶段都和客户约定好的,如果是自己的产品,需要自己制定哪些需要进行性能测试。
那么B/S,C/S一般都是要进行性能测试的。除非用户量特别小。
一般被测系统也不是每一个模块都要进行性能测试的。选择其中交互频繁,数据检索量比较大,用户即时响应要求高等模块。

TOP