软件测试中的压力测试和性能测试

软件测试的目的是尽量发现并改正被测试软件中的错误,提升软件的可靠性。
,这个定义听起来很正确,但用它来指导测试会带来不少问题。好比有的组织用发现的bug数来衡量测试人员的业绩,其实这就是这种测试目的论在后面做祟,其结果如何呢:其一,有一些不够敬业的测试人员会找来一些无关痛痒的bug来充数,结果许多时间会被浪费在这些无关痛痒的bug上(其实应该修复,什么时候修复,严重程度是什么,优先级是什么,等等);其二,测试人员会花很大力气设计一些复杂的测试用例去发现一些迄今还没有发现的缺陷,而不关心这些缺陷是否在实际用户的使用过程中是否会发生,从而浪费了大量的宝贵时间。究其根源,就是由于对测试目的的这种错误理解形成的,为何这么说呢?由于软件里bug的数量是无从估计的,那么若是测试的目的是为了找bug
,那么测试工做将变成一项没法完成也没法衡量进度并且部分无效的工做(由于有些bug在实际的运行过程中根本不会发生)。
  
测试的目的就是为了保证软件质量
,这个定义也是看似正确,但实际上,混淆了测试和质量保证工做的边界。软件质量要素有不少,包括:
Understandability、Conciseness、Portability、Consistency、Maintainability、Testability、Usability、Structures、Efficiency、Security等等,因此,软件质量保证和测试其实关注的方向是不一样的。
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否知足规定的需求或是弄清预期结果与实际结果之间的差异。
  因此,简言之,测试的目的应该是验证需求,
bug(预期结果与实际结果之间的差异)是这个过程当中的产品而非目标。测试人员应该象工兵同样,在大部队(客户)预期前进的方向上探雷、扫雷(bug)
,而不须要去关心那些根本没有人会去碰的地雷。衡量一个测试人员应该去衡量他/她测试了多少需求(测试工做量)。html

性能测试就是用来测试软件在系统中的运行性能的。性能测试能够发生在各个测试阶段中,即便是在单元层,一个单独模块的性能也可使用白盒测试来进行评估,然而,只有当整个系统的全部成分都集成到一块儿以后,才能检查一个系统的真正性能。 

性能测试常常和压力测试一块儿进行,并且经常须要硬件和软件测试设备,这就是说,经常有必要的在一种苛刻的环境中衡量资源的使用(好比,处理器周期)。外部的测试设备能够监测测试执行,当出现状况(如中断)时记录下来。经过对系统的检测,测试者能够发现致使效率下降和系统故障的缘由。 

压力测试:对系统不断施加压力的测试,是经过肯定一个系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大服务级别的测试。例如测试一个 Web 站点在大量的负荷下,什么时候系统的响应会退化或失败。 

性能测试:在交替进行负荷和强迫测试时经常使用的术语。性能测试关注的是系统的总体。它和一般所说的强度、压力/负载测试测试有密切关系。因此压力和强度测试应该于性能测试一同进行。 
举例说明:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增长到1000乃至上万就变成了压力/负载测试。若是同时对系统进行大量的数据查询操做,就包含了强度测试。 

性能测试(Performance) 正常使用的时间内系统完成一个任务须要的时间,多人同时使用的时候响应时间,在能够接受范围内.J2EE技术实现的系统在性能方面更是须要照顾的,通常原则是3秒如下接受,3-5秒能够接受,5秒以上就影响易用性了. 若是在测试过程当中发现性能问题,修复起来是很是艰难的,由于这经常意味着程序的算法很差,结构很差,或者设计有问题。所以在产品开发的开始阶段,就要考虑到软件的性能问题 

压力测试 (Stress) 多用户状况能够考虑使用压力测试工具,建议将压力和性能测试结合起来进行.若是有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用状况, 若是有必要能够模拟大量数据输入,对硬盘的影响等等信息.若是有必要的话必须进行性能优化(软硬件均可以). 

压力测试和性能的测试的区别是在于他们不一样的测试目的 

压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在能够接受的范围内,好比常常规定的叶面3秒钟内响应; 

因此一句话归纳就是:在性能能够接受的前提下,测试系统能够支持的最大负载。 

性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在必定负载下,如检查一个网站在100人同时在线的状况下的性能指标,每一个用户是否都还能够正常的完成操做等。 
归纳就是:在不一样负载下(负载必定)时,经过一些系统参数(如反应时间等)检查系统的运行状况; 
好比咱们说某个网站的性能差,严格上应该说‘在N人同时在线状况下,这个站点性能不好) 

总之,就像一个方程式:综合性能=压力数*性能指数, 

综合性能是固定的: 

压力测试是为了获得性能指数最小时候(能够接受的最小指数)最大的压力数 。

性能测试是为了获得压力数肯定下的性能指数。算法

相关文章
相关标签/搜索