某公司OA产品的新版本即将发布。为了看看系统的性能,决定安排测试工程师A君执行性能测试任务。A君做法如下:
1. 找到一台PC机,CPU主频1G,内存512M,……;
2. 在找到的PC机上搭建了测试环境:安装了Oracle9i、Weblogic等系统软件;
3. 在自己的工作机上安装了LoadRunner7.8;
4. 然后录制了登陆、发布公告等功能;
5. 开始设置30、50、100、500不同的并发用户数目进行并发;
6. 最后得出结论:系统只能运行80个左右的并发用户……。
无疑上面的做法存在很多不合理的地方,例如测试内容太少、测试服务器配置太低等。现实工作中,尽管性能测试以其在测试中独特的地位越来越为软件测试人员、开发人员和用户所重视,但是不管是测试人员还是开发人员,仍然在认识上存在这样或者那样的误区。
误区1:提高一下硬件配置就可以提高性能了,因此性能测试不重要。
这是以前系统规模不大时期留下来的认识。DOS时代以及后来Windows操作系统流行的初期,软件规模一般较小,而硬件的更新却是日新月异,软件性能一般不是突出问题,因为只要升级一下硬件,很容易就解决了性能问题。
现在随着软件规模的扩大,提高硬件配置只是解决性能问题的一个基本手段。因为如果软件自身存在性能问题,再多的资源可能也不够用,例如内存泄漏问题,随着时间的增加,内存终究会被耗尽,最后导致系统崩溃。
因此,如果用户对软件的性能要求较高,这将意味着不但要从硬件方面来提供性能,还要从数据库、WebServer、操作系统配置等方面入手来提高性能,同时开发的软件系统本身也要进行优化,以便全面提高性能。
误区2:性能测试在所有其它测试完成后,测试一下看看就可以了。
这是目前特别普遍的一种现象,例如前面的A君,这种现象主要是没有意识到性能测试的重要性。这种做法最严重的后果是如果性能问题是由软件系统本身产生的,可能会无法根治性能问题。例如架构设计方面的失误,可能意味着软件系统将被废掉。
当然这并不意味所有的性能测试都要尽早进行,性能测试的启动时间要由软件特点来决定。性能测试策略的制定问题可以参考《程序员》2005第10、11期的《治疗软件亚健康》。
误区3:性能测试独立于功能测试。