怎样提高性能测试的效率和质量

上一篇 / 下一篇  2010-06-13 10:23:11 / 个人分类:Loadrunner

怎样提高性能测试的效率和质量               
  

  判断软件的好坏,要看软件解决实际问题的能力,只有在一定的测试强度下,才能测试出各种软件资源的消耗率,软件运行的速度,软件的稳定性……
 

引言

  在信息技术日新月异的今天,顺应世界经济一体化的潮流,中国软件行业加强了与世界同行的沟通与交流,基于本身提高软件质量的迫切需要,在国外优秀的软件企业中被证明为提高软件质量行之有效的途径,软件测试开始越来越受国内软件行业重视。各种各样的测试工具和形形式式的测试理论,也都逐渐被我们所熟知。软件测试也开始成为人们平时谈论和网上探讨的热点话题。

  作为评估产品性能的重要手段,性能测试在软件测试工作中占的比重一直很大,要最终提供一份准确,权威的测试报告,测试人员职业化的工作态度自然不可或缺,但更重要的是测试人员清晰的思路,合理的计划和高效的测试方法。
 
 

目前性能测试存在的问题

  总结以往进行的性能测试,虽然测试人员自始至终对测试工作都做到了认真负责,但测试报告出炉后,大家总觉得美中不足,对测试结果都心存疑虑,尤其在那些时间跨度较长、针对不同的测试对象的性能对比测试中,或多或少都存在以下几个方面的问题:

  1. 测试计划不充分,测试风险评估不足;

  2. 缺乏测试的技术储备;

  3. 测试环境的一致性不足;

  4. 测试数据精确性和代表性不足;

  5. 测试报告不能说明实际的问题,不具有广泛的代表性;

  下面,我们就剖析以上问题的同时,探讨一下如何解决这些问题。
  

性能测试准备

  这是一个经常被测试人员忽略的环节,在接到测压任务后,测试人员往往因急于进度,而在缺少计划的情况下,盲目投入到测试工作去了。测试、记录、分析,忙的不亦乐乎,工作进行了一半才发现,或是测试数据考虑不周全,或是测试环境不够理想,甚至有些用户非常关心的性能指标都没有计划收集,一时骑虎难下,最后被迫返工,这都是没有做好测试准备工作惹的祸。

  其实,磨刀不误砍柴工,我们应该如何做好性能测试的准备工作呢?
做软件项目有需求调查、需要分析,我们做测试也一样。在拿到测试任务后,我们首要的任务就是分析测试任务,在开始测试前,我们至少要弄清以下几个问题:

   a) 要测试什么:需要收集哪些性能参数,各参数是否互相影响,不同的用户对软件性能的侧重点是否不尽一致?

   b) 影响测试的因素有哪些:不同的数据量,不同的数据引擎对测试的影响有多大,影响性能的瓶颈会是什么,最大的并发量是多少,怎样划分用户群?

   c) 需要怎样的测试环境:测试环境是否贴近用户,是否需要服务器群集,网络环境是否需要独立等?

   d) 怎样执行测试:如何进行数据采样,如何确定最佳测试参数配置,是否要采用测试工具,如何进行性能监测,是否需要学习掌握新技术等?

   只有对测试任务进行仔细分析后,才有可能弄清这一系例的问题,只有这样,我们才可能制定出切实可行的测试计划。


明确测试目标,精确制定测试计划

   在对测试需求充分了解的基础上,制定尽可能详细的测试计划,对测试的实施是大有裨益的。测试计划的制定,大多专业的测试书籍多有详述,故本文不再赘述。

   我们强调在性能测试计划中要有明确的测试目标,对测试资源要作详细说明。因为性能测试往往针对软件的专项功能,所以它本身的测试点不会很多,但却很难把握和度量,很容易导致测试过程很快结束或测试似乎永远都结束不了这两种极端,所以针对每一个测试过程要定义可度量的状态点(相当与历程碑),执行完一组工作后,及时检查是否已达到预定目标,是否已执行完该过程所有的步骤等,如实际情况与计划出入较大,应及时调整计划。
 测试技术准备

  从目前国内软件行业的情况来看,大部分公司的测试团队尚处在成长的过程中,测试人员撑握的软硬件知识,特别是自动化测试的知识还不够。尽管如此,我们还是鼓励在测试中采用新技术,所以在测试计划中,应该特别预备研究测试技术的时间,并且尽量宽松一些,只有在充分撑握测试技术的前提下,我们才能够实施有效测试。建立在错误的认识上的测试,既使你再努力,结果也是背道而驰,漏洞百出。


配置测试环境

  在性能测试中,测试环境对测试结果的影响很大,在配置测试环境前,我们应该分析不同的用户环境,如软硬件规模、使用模式、应用背景等。不同的用户群使用软件的方式和深度都不尽一致,为了能够让不同的用户都体验到我们软件的最佳表现,我们需要软件有灵活的
可定制性,而性能测试则是对这种灵活性的率先检验。

  在性能测试中,我们建议针对不同用户群的应用环境,配置不同的测试环境,当然我们不可能一开始就清楚什么样的环境是最有代表性或是最好的,这本身也是要通过测试或参考一些其他因素(如行业标准等)才能确定的,并且在配置测试环境时决对不能脱离用户的实际情况,总之,在配置测试环境时我们一定要考虑到它的可代表性、稳定性和有效性。


测试数据的获取和处理
  
  和测试环境一样,测试数据的收集工作也是性能测试的难题,GIS软件更是如此,不同的数据量,不同的对象类型,不同的显示风格对软件的性能都有很大的影响。用户的数据类型也是千差万别,在这种情况下,我们最好采用与配置测试环境相类似的原则,尽量考虑数据的代表性和有效性,配置多组数据,兼顾不同的情况。

  其外,一定要做好数据的备份,避免损坏数据对测试结果的影响,并且每次测试多用新数据,避免对同一个数据重复测试。
如何执行性能测试

  测试前期的准备工作纷繁复杂,做好这些测试准备工作,可以说已经完成了测试工作的一大半,但正确把握测试的强度,保持测试的一致性,却是提高测试有效性的关键,往往这些因素对测试结果的影响是最直接的。

  判断软件的好坏,要看软件解决实际问题的能力,只有在一定的测试强度下,才能测试出各种软件资源的消耗率,软件运行的速度,软件的稳定性。通过对比在不同的测试强度下,不同软件每一个功能模块解决实际问题的能力和软件运行的效率,我们才可能判断出不同软件的每一个模块的强弱,甚至于整个软件的优劣。

  性能测试开始后,所有参数的输入或结果的记录都应遵循统一的标准,无论是哪一个环节,哪怕是一点点偏差,都应立即纠正,要以事实为依据,决不能在测试的过程中篡改实际结果。测试执行的操作最好能自动记录到一个文件里,以方便分析阶段分析检查数据时用。要特别注意外部环境对测试结果的影响,在测试过程中,要经常重置系统环境,记录正式数据前要先预热影响测试的各个环节,待各环节都基本稳定后才开始正式测试。

如何分析性能测试

  对测试结果的分析和处理是技术性很强的工作,我们测试工作做的再好,如最终到用户手中的是一堆杂乱无章的数据,那也说明不了任何问题。

  首先,我们要对测试结果进行检查,可以通过分析记录文件,对那些比较异常的结果,进行再次验证。然后从所有的测试数据中,筛选出具有代表意义的数据。在分析阶段有些结果因为环境的限制或其他原因可能无法获取,这时适当的推算也是必要的,但一定要以事实为依据。最后要围绕测试计划中提出的问题,检查测试结果是否能够逐一解答,有含糊不情的地方就再补测。
  一份好的性能测试报告不但要展示软件最好的性能,还应能定位软件的性能瓶颈,帮助开发人员更好的改进软件性能,同时也指导用户更好的发挥我们软件的效能。


结论

  形形式式的软件性能测试,范围大小不同,强度高底有别,但只要本着认真、客观,科学的工作态度,遵循本文论述的方法,做好测试工作是不难的。

  本篇文章主要谈的是软件性能测试方面的问题,相信对其它方面的软件测试也有一定的借鉴作用。


TAG:

 

评分:0

我来说两句

Open Toolbar