完善软件压力测试 避免系统崩溃恶果
讲到测试,人们脑海中首先浮现的是针对软件正确性的测试,即常说的
在我所负责的测试项目中,程序功能能够满足客户
什么是压力测试?
在软件功能测试中,
(1)什么是压力测试
压力测试是指模拟巨大的工作负荷来测试应用程序在峰值情况下如何执行操作。例如模拟实际软硬件环境,在超出用户常规负荷下,长时间运行
在众多类型的软件测试中,压力测试主要是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户访问时软件的抗压能力。因此,压力测试是在一种需要反常数量、频率或资源下运行系统。由于我们之前对“反常”这个关键词没有理解好,只进行了常规的测试,在这一点上客户的批评让我们感到非常汗颜,说我们是“头发长,见识短”。
(2)压力测试和
在这次项目测试前,我一直对压力测试和负载测试存在着一定程度的混淆。经过这次系统崩溃后,我对压力测试和负载测试的区别有了新的认识。压力测试是在超常规负荷条件下,长时间连续运行系统,检验应用程序的各种性能表现和反应。负载测试是指测试应用程序在常规负荷下,确认响应时间和其它的性能和表现。
实际上,压力测试也是从比较小的负载开始,逐渐增加模拟用户的数量,直到应用程序响应时间超时。压力测试的特点是长时间连续运行,增加超负荷(并发,循环操作,多用户)来测试什么时候系统会产生异常,以及异常处理能力,找出瓶颈所在。现在的我终于明白到其实压力测试实际上就是超常规的负载测试。
(3)压力测试的核心原则
一个有效的压力测试需要遵循一些核心的基本原则,这些原则可以让我们在
①重复:最明显且最容易理解的压力原则就是测试的重复。换句话说,重复测试就是一遍又一遍地执行某个操作或功能。功能测试是验证一个操作能否正常执行,而压力测试则是确定一个操作能否在长时间内每次执行时都正常。
②并发:并发是同时执行多个操作的行为。换句话说,就是在同一时间执行多个
③量级:压力测试另一个重要原则就是要给每个操作增加超常规的负载量。就是说压力测试可以重复执行一个操作,但是在操作自身过程中也要尽量给程序增加负担,增加操作的量级。一般来说,单独的高强度操作重复自身可能发现不了代码错误,但与其他压力
④随机:意思是任何压力测试都应该多多少少具有一些随机性。例如随机组合前面三种压力测试原则,然后变化出无数种测试形式,就能够在每次测试运行时应用许多不同的代码路径来进行压力测试。当一个压力测试结合的原则越多,测试执行的时间越长,就可以遍历越多的代码路径,发现的错误也会越多。
压力测试对系统的重要作用
我们对应用程序进行压力测试时经常会出现这种情况,就是测试到了最后却发现不明白测试结果有什么意义?实际上,当我们都不明白压力测试的意义时,我们就不能设计出各种极限测试用例。
压力测试不同于功能测试,软件的正确性并不是它的测试重点,它所看重的是软件的执行效率,尤其是短时间内访问用户数爆炸性增长时软件的响应速度。因此,明白压力测试的作用,对我们高效完成压力测试有至关重要的指导意义。
论坛精华帖
21/212>