软件测试中性能测试的精益求精
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
在进行性能测试时,我们需要细致地关注每一个数据的变化,不放弃任何一个怪异的数据变化是最基本的性能测试工作的态度要求。那么在性能测试中的精益求精可以体现在哪些地方呢?一个性能测试活动本身大致需要经历如下4个阶段。
第1阶段:选择可靠的性能测试工具。
第2阶段:调试及稳定性能测试环境。
第3阶段:正式的性能测试。
第4阶段:统计性能测试结果,输出性能测试报告。
在选择可靠的性能测试工具阶段,如何做到精益求精?可能有朋友看到这里会问:"选择工具还需要精益求精?那么如何精益求精?"。俗话说:"好的开始是成功的一半"。软件的性能测试非常依赖性能测试工具的长期高负荷运转的稳定性和测试数据统计的精确度,对性能测试工具的选择决定了后续工作的成功与否和成本消耗的代价。就是这样一个对后续工作至关重要的步骤,却在实际工作中没有得到足够的重视,这个过程很有可能就只是某个性能测试工程师花两三个小时的时间到网上搜索几篇文章,按网上文章推荐的工具来初选,然后根据个人主观的判断就决定了未来所用的性能测试工具。结果,有可能这个性能测试工具在后续的调试稳定测试环境阶段,以及正式测试阶段和统计结果阶段会出现各种各样的奇怪问题,并导致性能测试团队不得不花费数倍的时间来解决这些性能测试工具的问题。
因此,在选择性能测试工具时,建议除了在网上搜索介绍资料外,最好能亲自把所选的几个性能工具进行本地对比测试。在同等环境下,对后续关注的测试数据指标先进行测试观察,然后再将这些性能测试工具的各项性能参数、长期稳定性等关键指标,形成一个表格交由整个测试团队来决策并最终选出未来正式使用的性能测试工具。虽然在进行工具性能对比测试时,会消耗掉测试人员的部分时间和公司人力成本,但是却能避免以后在错误的道路上越走越远,造成无谓的成本消耗越来越大。
测试团队一致选定了性能测试工具后,负责该工具操作的测试人员,需要继续发扬精益求精的工作态度,去全面、深入地了解和掌握该性能测试工具的各类使用方式。笔者曾见过某公司花费重金购买了一个世界顶级的性能测试工具,结果,几年来该公司的性能测试人员只会使用该性能测试工具的少数几个基本功能,其中的大部分功能从未应用过,大大浪费了公司的资产。为什么会出现测试人员对性能测试工具使用不充分的现象呢?原因可能有如下几种可能:由于人的天生惰性,在完成了最基本的性能测试需求后,就不再对性能测试工具的其他功能花时间来了解、操作、学习。当然也可能是由于该工具的学习和使用难度较大,测试工程师在无客观压力的情况下,面对困难退缩了,不愿意继续钻研学习该工具。
所以,我们需要性能测试工程师在性能测试工具上同样能发扬精益求精的精神,在使用性能测试工具时能精益求精地多钻研该工具的其他功能,全面深入地了解该工具的使用特点,最大化地发挥性能测试工具的作用,提高公司资产的利用率。
在调试和稳定性能测试环境阶段,性能测试工程师可以在只完成最基本的环境搭建并让大部分设备和软件正常运转起来后,就直接开始正式的性能测试。但是,只是保证大部分设备和软件能够运转起来对于期望开展高质量的性能测试是远远不够的。只有保证整个性能测试环境能够长期稳定地工作,才能真正确保性能测试的效果和效率;否则会在后续统计测试结果阶段,付出很多时间和成本来分析测试结果中的"垃圾数据"。
一个稳定的性能测试环境是执行性能测试和准确统计性能测试结果的发动机。如果发动机不结实、不稳定,时而无动力,时而动力下降,那么驾驭这个测试环境进行性能测试的人将会非常痛苦。在笔者以前的性能测试经历中,就曾经出现过测试环境中的模拟器时而正常工作产生正常的数据,时而停发数据,时而效率下降,其直接结果就是大大影响了正式性能测试的项目进度,很难得到准确的性能测试效果。
因此,一个追求精益求精的性能测试工程师,应该用尽一切方法,确保性能测试的环境能够非常稳定,仔细地调试性能测试环境中的每个模拟器。如果物理连线环境有问题或设备有缺陷,则一定要事先准备好备用方案,绕开这些问题,来保证性能测试环境的稳定。如果性能测试工程师觉得只是保证性能测试环境的长期稳定还不够体现其精益求精的精神,则可以努力将性能测试环境再改造成一个半自动化测试的环境。一个半自动化测试的性能测试环境将会大大帮助提高性能测试环境的使用和搭建的效率,同时也是性能测试工程师对工作精益求精追求精神的体现。
正式的性能测试阶段,通常是性能测试工程师在所有性能测试工作的各阶段中最轻松也最有空闲时间的阶段。大多数情况下,很多性能测试工程师就觉得该自己休息、喝咖啡、聊天了。请先别忙着完全放松下来,虽然前期的测试准备工作非常辛苦,现在难得有空休息了,是应该短暂休息一下。但是,是否我们还可以更好地利用好这段唯一的休息时间来做一些让我们的工作更精益求精的事呢?例如:为了以后分析、定位问题更快,完成环境参数配置更快,我们是否可以利用这段时间开发一些自动化配置环境参数和自动化分析定位的小工具,每当遇到麻烦时,就可以大大提高解决麻烦的效率,为公司节约时间和人力成本。同时你还可以利用这段时间,多思考是否可以在现有的性能测试方案的基础上,针对性能测试方案再进行改进和优化,创造出更多新的性能测试方案,发现更多隐藏得更深的bug。
另外,你也可以利用这段较空闲的时间优化性能测试报告的内容,让其图文并茂,能更准确、简洁地展现性能测试的结果。因此,如何充分利用好这难得的大块空闲时间,取决于我们是否有着一颗精益求精的心。只要有一颗精益求精的心,在性能测试的执行阶段也能创造出更大的贡献和价值。
在统计性能测试结果和输出性能测试报告阶段,我们依然可以进行精益求精的改进。可以在查看性能测试仪器的统计数据结果时,仔细查看性能测试过程中的每一条log信息,从执行的log中不放过任何稍纵即逝的异常信息,毕竟每一个详细的log信息也是我们性能测试的劳动成果,很有必要充分利用起来。如果你现在还完全用手工和人眼来对大量的log信息进行处理,那么你很有必要通过编写自动化log分析工具来自动查找异常log信息的方式来大大减少工作量,提高log分析工作效率,而这也是体现精益求精的方式。
在性能测试报告中,你可以不只是简单地罗列本次测试的几个数据就算完成了任务,还可以加上丰富、详细的历次测试数据的趋势对照,并且图文并茂,以及除测试参数数据外的其他相关数据的变化。相信这样的性能测试报告应该会更让所有人满意,一位能做出这么完整的性能测试报告的性能测试工程师一定会因其精益求精的工作态度得到同事和领导更多的尊重和肯定。
文章来源于领测软件测试网 https://www.ltesting.net/