如果以乐观的态度来看性能测试工作,可以欣慰地说性能测试工作在企业中越来越受重视了,因为至少很多项目的管理人员甚至一些公司领导都知道“性能测试”这一工作。不过分析一下国内多数公司的软件开发环境,不难看出软件测试在开发过程中仍然没有受到足够的重视,作为测试工作一部分的性能测试,很容易被忽略也就不足为奇了,这也是国内很多软件产品处于“亚健康”状态的根本原因之一。
性能测试的地位决定了性能测试工作的管理和实施都会存在一定的困难。
(资料图)
1.性能测试习惯拖到最后阶段进行
导致拖后是很常见的一种现象。国内很多公司系统测试工作都会拖到最后阶段进行,这就导致性能测试很容易遇到下面的情形。
当项目或者产品开发的进度延误时,首先被延期或者省掉的工作就会是测试,这自然会影响到性能测试的开展。
当系统的缺陷较多时,项目团队往往投入精力在功能测试上,性能测试很容易被忽视或者在最后阶段才进行。
上面的两种现象是在性能测试工作中经常遇到的,也是很多中小企业公司不断重复的场景。性能测试拖后的最严重后果是一旦发现系统性能问题会来不及修改,尤其是架构、设计方面的问题,严重的可能会导致整个系统重新开发,因此拖延到后期进行性能测试将很难管理。要想解决这种问题,只有改进组织的开发流程和规范测试执行过程,否则开发和测试团队将会陷入一个恶性循环的怪圈里。
实际上,性能测试应该按照第2.2节“性能测试策略制定原则”先确定合理的测试策略,然后按照测试计划来执行,而不是按照时间是否充裕来决定什么时候进行。只有从项目启动阶段规划好,才更容易做好性能测试。
2.性能测试以走形式的方式进行
“走形式”的性能测试多发生在下面的情形。
测试一下系统的性能“看看”。一些不懂性能测试的项目负责人经常会随意地安排性能测试,而且一般不会给予性能测试充裕的时间来进行,这种情况多发生在对自己技术盲目自信的项目负责人身上,其后果是即浪费了人力又没有效益。
客户现场的一些验收性能测试。这种情况多在项目团队不重视性能测试时发生,之所以在验收测试阶段进行性能测试,是因为客户提出了一些性能测试指标或者销售人员向客户做出了性能方面的承诺。本着节约成本的原则,只在产品投产后和客户共同测试一下系统的性能,以实现让客户进行验收签字的目的。这种做法的后果是把系统的性能问题留给客户区发现。
走形式的性能测试是很难发现真正的性能问题,应该避免这种情况发生。即使对自己的产品有百分之百的信息,也应该根据自己的产品制定合理的性能测试策略和测试计划,然后按照计划来开展性能测试。
3.一些无意义的性能测试
除了走形式的性能测试安排外,性能测试工程师们经常被安排去做一些无意义的性能测试工作,这种情况多在性能测试进行地1.3节中的误区时发生。
项目经理如果视图在开发环境相爱完成全部性能测试任务,很有可能进行一些无意义的性能测试。例如进行一些和硬件相关的性能测试,事实上一个J2EE架构的系统,在1024MB内存的开发环境下发现系统内存瓶颈没有太大意义,相反发现一些功能引起的性能问题(例如内存泄漏)才是这个阶段的主要任务。
无意义的性能测试可以通过提高整个组织的认知能力来避免。
此外也可以经常进行一些开发和测试人员的交流来加强性能测试知识的普及,只有整个研发团队的能力提高上去了,性能测试工作的管理与实施才会顺利进行。