软件测试 | 性能测试的误区(一)
更多软件测试学习资料
性能测试以其独特的地位和重要性越来越为软件测试人员、开发人员和用户所重视,但是在实施性能测试方面,不管是测试人员还是开发人员,仍然存在一些认识上的不足,存在这样或者那样的问题。
误区 1:提高硬件配置就可以提高性能了,因此性能测试不重要。
这是以前系统规模较小时期留下来的认识。早期的 DOS 时代以及后来管理信息系统刚刚流行的时期,软件规模一般较小,而硬件的更新确实日新月异,软件的性能一般不是突出问题,因为只要升级硬件,性能问题很容易得到解决。
现在随着软件规模的扩大,提高硬件配置只是解决性能问题的一个基本手段。因为如果软件自身存在性能问题,再多的资源可能也不能够用,例如内存泄漏问题,随着时间的增加,内存终究会被耗尽,最后导致系统崩溃。
因此,如果用户对软件的性能要求较高,这将意味着不但要从硬件方面来提供性能,还要从数据流、应用服务器、操作系统等多方面入手来提高性能,尤其要对开发的软件系统本身进行优化,从而全面提高系统的性能。
误区 2:性能测试在所有其他测试完成后,测试一下看看就可以了。
这是非常普遍的做法,主要是项目负责人忽略了性能测试的重要性引起的。这种做法最严重的后果是一些性能问题可能在后期无法彻底解决,例如架构设计方面的失误,可能意味着要么系统“将就”上线,要么系统“推到重来”。
在一个银行项目,由于数据库表设计不合理,最终导致整个项目的核心功能推到重来。在那个应用系统中,由于数据库设计的一个巨大缺陷——大量内容放在一张表上,导致并发用户较多时,数据库服务器无法及时并处理用户请求,最后停止提供服务。这种问题一般在开发环境下不经过测试或者详细的审核论证是很那发现的,而一旦发生,几乎没有什么太有效的补救措施。
当然这并不意味着所有的性能测试都要尽早进行。
误区 3:性能测试独立于功能测试
性能测试和功能测试是紧密联系在一起的,首先是因为很多性能问题是由软件自身功能的设计缺陷引起的。如果应用系统功能设计不完善或者代码运行效率低下,通常会带来一些性能问题。功能测试通常要先于性能测试或者同步进行,功能测试进行顺利才能保证性能测试顺利开展。
其次功能测试可以发现性能问题,性能测试也能发现功能问题。例如并发用户测试就能发现一些算法设计上的问题。在一些业务处理上,通常采用多线程同步算法,通过并发用户测试很容易发现算法中存在的一下功能缺陷。
此外,如果一些系统的性能要求比较高,则性能测试和功能测试会同步进行,因为后发现的性能问题可能无法补救。
误区 4:性能测试就是用户并发测试
仍然有很多技术人员一提到性能测试,就会联想到并发用户测试,进而认为性能测试就是“测试一下多用户并发使用系统时的性能表现”。尽管性能测试是以用户并发测试为主的测试,但实际上性能测试还包含峰值测试、疲劳强度测试和大数据量测试等许多测试种类。
实际上,性能测试属于项目范畴,应该按照“启动—计划—实施—控制—收尾”的项目管理过程来开展工作,而不是简单地测试一下就完成任务了。
评论