51testing 发表于 2008-4-25 17:22:57

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

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


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

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

获奖名单奖项获奖名单奖励答案链接一等奖godn_1981当当购物卡50元11#二等奖huior300论坛积分37#cityyard40#三等奖duola1119100论坛积分
21#清风随雨24#vivian200841#

maplezaibj 发表于 2008-4-25 19:54:48

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

firlove 发表于 2008-4-25 23:00:32

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

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

leaveall 发表于 2008-4-26 03:21:57

不成熟的意见

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

msnshow 发表于 2008-4-26 18:50:29

根据实际情况来,具体情况具体分析了

puchonghui 发表于 2008-4-27 00:25:06

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

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

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

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

个人看法,仅供参考。

chenrong 发表于 2008-4-27 13:56:09

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

风吹我走 发表于 2008-4-27 21:21:43

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

wangyong3552128 发表于 2008-4-28 10:22:32

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

当然要做性能测试,起码要根据自己的产品性能考虑过进行性能测试,因为IT公司是靠做软件吃饭的,软件的质量直接决定了公司的经济效益,所以说软件质量的好与坏直接决定了该IT公司的存在意义。

ami冰河 发表于 2008-4-28 10:50:52

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

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

godn_1981 发表于 2008-4-28 11:09:02

关于性能测试的看法

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

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

godn_1981 发表于 2008-4-28 14:16:54

再补充一点哦

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

wangjcltj 发表于 2008-4-30 08:59:52

乍一看,为什么这一期回答的人这么少呀.

再一看,为什么这一期的题目出成这样呀.

仔细了再一看.得,偶可以说的全让前面的人儿给说完了.

顶一下吧.其实这个问题本身还是有问题的,就像10.11楼说的,每个软件都要进行性能测试,不过力度不同而已.

tengmy 发表于 2008-4-30 10:58:02

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

这个问题在实践中我们也有遇到过。
其实我对提出这个问题的人感到很奇怪。
或许,在n年前,也有人提出过,什么样的软件需要进行测试?

任何软件都需要性能测试。功能测试只是保证了这个软件的可用,易用,但是不能保证这个软件真的可以长期的使用。
一个软件研发出来,测试的周期再长,也不会有用户在手里长年累月的用来的长久。一旦出现了问题,损失很多,受伤的不仅仅是使用端的用户,还有测试,研发这个软件的人以及最终是生产这个软件产品的商家。质量不高带来的信誉问题是很难消除的。
很多问题如果不用性能测试是很难排查的。特别是多用户多条件的复杂使用情况下。
所以我的观点是任何软件都是需要性能测试。

但是客户坚持肯定没有问题,为了节省成本,别说不做性能测试,不需要测试团队参与都无所谓。只要后果他自己承担起就好。

godn_1981 发表于 2008-4-30 14:50:01

美女真多啊~

14#是个美女~~
斑竹,不要删我的帖子哦,对于这个问题前面我已经回答过了,~~~~本回帖和技术无关,吼吼………………

唐人 发表于 2008-4-30 16:56:40

凡是对性能有要求的地方,都要对性能进行测试。只是程度不同而已。
这就跟衣服啦,鞋子啦,碗啦等等是一个道理。1000块钱的鞋子跟10块钱的鞋子的质量不一样,出厂前做的测试肯定不一样。
软件在今后使用过程中对对性能的要求高,就需要严格、认真的测试,对性能没有要求,就不需要严格的测试。

BTW,现在好像都很注重质量问题了。听说黑手机的质量比行货都牛了。估计他们的测试也做的不错。呵呵~~~

newlijia 发表于 2008-5-1 17:04:58

试着回答

我是个正在学习软件测试的新人。
我认为何时采取性能测试取决于以下几种情况:
         1、当遇到多用户,多进程的情况要进行性能测试。
         2、对于金融行业和通信行业开发的软件要进行性能测试。
         3、当要处理大量数据时,要进行性能测试。

wjb-test 发表于 2008-5-2 19:28:40

回复 7# 的帖子

很同意你的观点

microtester 发表于 2008-5-3 23:43:13

很多人都站在珠峰的高度来讨论这个问题,说一些假大空的套话。说任何一个软件都需要做性能测试的答复,我认为是无效答案。
真的是任何一个软件都需要进行性能测试吗?你果真对你所负责的每个软件都做了性能测试吗?
臭名昭著的奥运订票系统做过性能测试吗?
我接触过的项目80%都没考虑过性能问题,更别提进行性能测试了。我在外包公司做,这种情况相当具有普遍性。

我的经验是如果我的客户明确提出性能要求了就做,如果没有明确提出就不做。

godn_1981 发表于 2008-5-4 09:11:34

楼上的也太无知了

任何一个软件都需要做性能测试的,只是你做没做的问题,不能因为你没做,就是不需要做啊。
你没做,只能说明你们不规范,没做好而已。
页: [1] 2 3
查看完整版本: 如何判断是否需要对一个软件进行性能测试?(08-04-25)(获奖名单已公布)