vivian2008 发表于 2008-5-7 11:26:33

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

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

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

charles 发表于 2008-5-7 13:18:24

回答这个问题前需要明确什么是性能测试,性能测试的范畴?
性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。
软件性能的范畴较广,通常包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等。
性能测试所关注的角度主要包括:
1。用户视角的软件性能;
2。产品开发人员视角的软件性能;
3。系统管理员视角的软件性能;
明确了这些概念,我想在回答这个问题就比较容易了,我们通常认为的性能测试一般是较多用户并发或数据量比较大的压力测试,但是针对单用户使用且没有数据量大的压力时,如手机软件难道就不用性能测试了么?当然不是吧,这样的软件你仍然是需要考虑他的稳定性吧,以及长时间运行的情况下系统资源也不能消耗过多吧,还有要考虑其安全性、兼容性等等。
由此我认为所有软件都应该考虑其性能,性能测试是软件测试非常重要的一部分,只不过性能对于每个软件的重要性不同罢了。当然现实中需要考虑用户对性能的需求,以及需要考虑付出性能测试的成本是否能够带来预期的价值等等因素。
这个问题如果改为如何判断什么样的软件必须做性能测试?欢迎大家继续讨论吧

peach8977 发表于 2008-5-7 14:19:11

同意19#的观点,我做软件测试一年多了,也经历了不少项目,但是做过性能测试的几乎没有,老板认为做性能测试是在浪费时间,只要不出毁灭性的问题就OK了!

aniu_86 发表于 2008-5-7 17:19:14

性能测试必不可少!可以决定的是性能测试的程度及性能测试的成本投入多少。

做不做性能测试的依据不是用户反不反应问题,任何的软件都有其性能,因此从软件的开发来讲,性能测试是不可缺少的!

但作为公司的测试manager,可能会从软件的成本或是之前的软件评估来决定是否进行性能测试,这样导致了做不做这个问题!

性能测试必不可少!可以决定的是性能测试的程度及性能测试的成本投入多少。

既然软件做来是卖的就要考虑能不能用,因此要做功能测试。

软件的质量不仅是能用,还要要求好用,就设涉及到性能测试,因此没有性能测试的公司,软件的质量就永远得不到提高,也就失去了质量保证的意义!

性能测试不要理解那么狭义:

其实单元测试就是功能测试,集成测试就是性能测试。单元测试是测试每个模块的功能,而这些模块集成在一起,就要测试他们集成后的性能,而不是集成后的功能,所以在做集成测试的时候就是性能测试,难道可以不做集成测试吗,回答:不可以,那么性能测试就必不可少!

[ 本帖最后由 aniu_86 于 2008-5-8 11:13 编辑 ]

zhangjinyan 发表于 2008-5-7 17:57:52

我认为这跟项目和使用对象有关,而且要看进度,其实有的系统可以不用考虑性能.

roven1213 发表于 2008-5-7 18:04:22

性能测试是针对会有压力瓶颈问题的软件系统而制定的,如果一个软件不存在对服务器造成压力就不需要做性能测试,如果某个软件因为流量过大会崩溃或者因为访问人数过多而造成臃塞就需要做性能测试 。
B/S构架系统基本上都需要做性能测试,而C/S则需要视其功能需要来权衡。

sundyhui0322 发表于 2008-5-7 21:41:01

:loveliness: 个人观点认为,每个软件都应该做性能测试,但这不说明,这个软件的每个实现都需要做性能测试,应需而为之。何为需?容易被用户碰到且在意的问题,这个问题可能不是很严重的,也可能不是频繁出现的,但却会被很多用户碰到,这样的问题也是值得关注,自然就是我们应该列入测试的范畴。对于有些实现的性能多数用户在使用中极少接触到或者说注意到,那么,基于一个软件开发的成本和schedule来说,这些实现的相关性能测试可以简化甚至忽略。

调皮精灵 发表于 2008-5-7 23:53:14

我觉得这个需要具体问题具体分析,但是主要是从几个方面去考虑问题,对于性能来说,无非关于两方面的问题。
1、时间
2、空间
对于时间来说,主要是两个方面导致的,第一,单位时间的一个容量,比如比如说在单位时间的连接率,另外就是一个客户体验问题,就是做某件事情需要多少时间的问题。。
那决定做还是不做,这就需要分析客户对这个是否有需求,比如说是一个家庭软件,对于单位时间的连接率,可能就没有多大的要求,但是如果是说某个网站,那肯定就有需求了。对于客户来说的话,其实无论哪个软件,性能越大肯定越好,但是这是都是基于成本的问题。按现在的CPU处理能力,小量数据的处理,客户的体验应该都是能承受。但是大量的数据就不一定了,假如说你装个系统要上三四天,看你骂不骂人(当然操作系统被微软垄断,我们只能骂骂,如果还有其他厂家的,看你买不买它的)
另外就是占用空间的考虑了。就看设备的容量是否满足了,如果是设备满足,空间方面倒不会关注太多。

lovemiya 发表于 2008-5-8 14:38:18

:lol :lol
这个问题一个根源是什么性能测试,弄清清楚了这个就好了!
从广义上来说性能测试包括了 性能测试(通过模拟业务场景等等来检测软件是否达到生产性能要求,比如单击一个OK按钮的相应时间) 负载测试 压力测试 配置测试 易用性测试 并发测试 失效恢复测试。

所以楼主你的问题 是有缺陷的, 任何软件都是要经过性能测试的, 楼主所说的性能测试只是是狭义的性能测试(通过模拟业务场景等等来检测软件是否达到生产性能要求)。

性能测试的领域是对软件能力的验证 规划 调优,并且发现软件的缺陷。对于不同的领域 所用到的测试方法也是不一样的。 e.g. 能力的验证就要用到性能测试 压力测试 失效恢复测试 易用性测试。

一个软件性能在不同的人视角中是不同的,最终客户关注是业务的响应时间,软件的维护者(管理员)则是关注软件的容量 资源的利用率和扩展性,而开发人员关注的是软件的coding和架构。根据楼主的问题看来楼主是通过客户的看光来看的, 所以是不全面的,如果多视角的观测软件的,发现软件是离不开性能测试的, 最简单的一个例子 内存泄漏,这个是从开发人员角度上看的。

最后,我的结论是各个软件都离不开性能测试,但是对于性能测试的强度和深度的定义 各个公司 项目 软件都不一样,需要具体问题具体分析。

瘦月清霜 发表于 2008-5-9 15:38:21

先讲下我个人对于这几种情况发生的认识:
有的软件没做性能测试,客户反馈了很多性能问题;----说明客户对性能这方面很关注,没有做这方面的测试可能前期的需求分析没有做好,客户没有提到或是先前根本没意识到这方面的问题,而承办方也没有对这方面做考虑,从而导致问题的发生。
有的软件没做性能测试,客户从没抱怨性能有问题;----说明客户可能根本没性能这方面需求,或是使用过程中还未出现性能问题,所以就没有抱怨。
有的软件做了性能测试,客户依然反馈了很多性能问题;--那说明客户可能对性能要求很高;或是测试的不全面,很多潜在的性能问题都没有发现.
有的软件做了性能测试,客户从没抱怨性能有问题。 ----测试的很全面,解决了已出现的性能问题;或客户的操作根本没影响系统的性能。

那么到底要不要做性能测试,又如何判断需要做性能测试呢?
个人愚见:
1、        就系统适用范围来判断
如果用户对于软件的要求很简单,就是实现是一个自动统计数据什么的,就没有必要做性能测试;
如果用户软件性能的要求很高,比较银行系统等大型应用程序,对性能测试要求很高,那么就必须要做性能测试而且一定要做好。
2、        就用户需求和承办方的把握尺度来判断
根据用户提出的要求,或明确或不明确,承办方自己要从系统的适用角度来判断是否需要做性能测试,定义一个测试的度,不盲目耗费精力也不完全放弃,而且要同用户在此方面做好沟通,以达到一个共同的目标。

[ 本帖最后由 瘦月清霜 于 2008-5-10 09:33 编辑 ]

liaoliliy 发表于 2008-5-9 15:54:26

学习中。。。
41 楼楼主的说法可能是现身说法吧?我在开发过程中就遇到
过类似问题,你给他个进度条,哪怕你实际并没有优化提速,用户也心情好多了,说:快多了!

zhonchuan 发表于 2008-5-10 15:20:16

我认为一个很好的软件都应该做软件测试,特别是那些很大的软件和关系到钱方面的这些软件,如果不进行测试的话在实际的运行过程中会出现很多的问题,这样会给客户和自己的公司都带来不好的影响。由于某些软件并没有做相关的测试,并不能说明其在开发的过程中对其进行的测试。
   反正我个人认为开发的新软件如果不进行测试就是对自己的不负责,是对客户的不负责,有损职业道德。

广州泡泡龙 发表于 2008-5-11 23:44:24

性能测试是在功能测试的基础上开展的,若是客户不能提出具体的功能需求,那估计他只能关注到功能而忽略了性能。而客户若能提出很详细的需求那说明客户关注的目标很明确,同样他也会关心到软件在各种典型应用下的性能表现。
同理:1、若是一个软件需要在不同的环境下运行,那必须进行性能测试(当然性能测试的覆盖范围需要根据情况具体定义);
      2、项目对软件提出具体的性能要求的情况下需要性能测试;

jtiger 发表于 2008-5-12 09:53:20

原帖由 xhj104 于 2008-5-5 10:39 发表 http://bbs.51testing.com/images/common/back.gif
测试不仅要考虑质量,也要考虑与商业利益的平衡,软件购买商其最终目的是为企业创造价值利益,软件提供商的最终目的也是软件的利润创造。所以是否做性能测试最终要考虑到质量与利益的平衡。这也是一些小型项目通常不 ...
这点我赞成。任何程序在理论上都有性能测试的需求,但实际情况要具体分析,程序本身的功能、使用环境,以及最重要的的利益上的平衡。除非开发的不是商用软件。

ebuluo 发表于 2008-6-4 09:13:03

原帖由 aniu_86 于 2008-5-7 17:19 发表 http://bbs.51testing.com/images/common/back.gif
做不做性能测试的依据不是用户反不反应问题,任何的软件都有其性能,因此从软件的开发来讲,性能测试是不可缺少的!

但作为公司的测试manager,可能会从软件的成本或是之前的软件评估来决定是否进行性能测试,这样 ...
这楼的兄弟,别的我不说,先看看你的这段话:
性能测试不要理解那么狭义:

其实单元测试就是功能测试,集成测试就是性能测试。单元测试是测试每个模块的功能,而这些模块集成在一起,就要测试他们集成后的性能,而不是集成后的功能,所以在做集成测试的时候就是性能测试,难道可以不做集成测试吗,回答:不可以,那么性能测试就必不可少!

我认为你对集成测试的理解偏差严重,集成测试应该是偏重接口方面的测试,以及集成后是否会出现不可预知的问题和问题的逐级放大,而绝对不是什么性能测试。最多,你可以说在集成测试阶段可以开始对模块的性能测试,而绝非集成测试就是性能测试。广义不能这么广义呵呵。

我认为性能测试理论上是应该都做,实际工作中主要是看客户的需要。

老堂 发表于 2008-7-18 09:36:34

根本不需要判断
性能测试必须做

Amiee99 发表于 2009-4-13 15:53:05

什么软件要进行性能测试?

bently 发表于 2009-4-28 22:34:54

这里提的应该是动态的性能测试吧?静态的性能测试时无论何时都要做的。而对于动态的性能测试而言,如果够时间,有资源的话,还是要做的,只是做哪些功能的性能验证而已。
一般来说,主要是看系统设计的容量是否会在短期内达到,或者系统会在某些特定事件、特定场景下较易达到设计容量。这时候,特别需要利用性能测试给出投产后的设备投入评估
页: 1 2 [3]
查看完整版本: 如何判断是否需要对一个软件进行性能测试?(08-04-25)(获奖名单已公布)