软件测试手记:切莫忽视性能测试

发表于:2008-6-04 17:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试论坛

常见的性能测试误区

  (1)没有设置好性能测试期望

  在性能测试开始前没有从几个不同的角度设置期望,以确保测试结果是有价值的,这是最常见的性能测试误区。这些期望包括测试小组需要定义合理的输入和输出性能期望,如果没有提前设置,那么很难判断被测试的应用程序的性能是否合格。
  
  (2)性能测试环境失真

  显然,测试环境应尽可能地与生产环境相似,因为任何差异都将引入不确定性。因此,性能测试环境应在每个细节(从服务器防火墙和后端资源的数量到网络电缆的规格)上完全模仿生产环境。
  
  理想的性能测试环境应该由专用的服务器机器与连接它们的专用网络组成,非专用服务器环境可能会产生许多的问题。例如共享的网络资源和内部网共享性能环境,这些都可能造成性能测试结果的失真,这与测试时网络的利用率直接有关。因此,如果基于应用程序的服务器也作为其他无关的应用程序或配置的服务器在运行,那么进行性能测试将是失真的。
  
  另一方面,性能测试环境的客户机端对性能测试结果也有重大影响。负载测试客户机机器应被完全专用于负载测试任务,客户机机器也应保持在网络配置上并尽可能地接近专用的环境,例如类似竞争本地CPU、内存和磁盘资源的其他应用程序不应共享这些机器,这些对本地资源的竞争也会影响被测量的响应可靠性。
  
  (3)性能测试没有与功能测试相结合

  众所周知,功能测试可以发现性能问题,性能测试也能发现功能问题。因此,性能测试和功能测试应是紧密联系在一起的,原因之一是很多性能问题是由软件自身功能缺陷引起的。如果应用系统功能不完善或者代码运行效率低下,通常会带来一些性能问题。所以,功能测试要先于性能测试执行或者同步相结合进行,软件功能完善可以保证性能测试进行得更加顺利。

性能测试的步骤

  每种不同的应用系统的开发,开发人员可能选择不同的实现方式。因此,根据测试项目的不同,所选用的度量和评估方法也有不同。不过仍然有一些通用的步骤帮助我们完成一个性能测试项目,步骤如下:
  
  (1)明确性能测试的目标和需求

  一般来说,一个性能测试计划的第一步是确定客户需求和期望,并根据实际业务需求确定系统需求。只有清楚了解各方面的需求,才能明确测试的范围,才能选择适当的测试方法。
  
  性能测试需求的来源一般是软件需求、设计文档或用户备忘录等设计和需求相关的文档。当然,并非所有的性能测试需求都在这些文档中以明确的方式标识出来,此时就需要根据不十分明确的文档描述进行进一步的细化。在条件允许的情况下,还可以包括开发工程师和客户代表,辅助对性能测试需求进行分析和确认。
  
  (2)确定测试计划和测试基准

  如果不进行合理的规划,性能测试将会是一项令人望而生畏且有些混乱的任务。性能测试计划是用来指导性能测试过程的主要文档,在测试计划中除了要写明本次测试的测试目标、测试需求外,还需要在测试计划中给出明确的测试通过条件,测试时间和资源计划。
  
  在制定测试计划时,应该使用测试基准来确定应用程序中是否出现性能倒退。基准测试可以在一个相对短的时间内收集可重复的结果。性能测试基准的来源主要是用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。任何测试的目的都是确保软件符合预先规定的目标和要求,性能测试也不例外,所以必须制定一套标准的测试基准。
  
  (3)设计测试场景和设计测试用例

  这是性能测试的主要内容。性能测试的测试设计一般基于测试场景(Test Scenario),一个测试场景就是一个用户的实际使用系统的剖面。在性能测试过程中,明确每个场景的参与者人数、比例和具体行为是非常重要的,这些都是构成性能测试脚本的基础。
  
  因此,测试场景的提取需要测试设计人员对用户的行为和业务有较为深入的了解。明确了性能测试场景之后,可根据不同的应用领域设计各种测试用例来达到性能测试目标。最后需要注意的是,性能测试设计还应该包括测试环境、测试数据等的设计,因为影响系统性能的因素很多,保持测试过程中环境和数据的可控性是非常重要的。
  
  (4)测试工具的选择和使用

  性能测试是一项复杂的工作,一个性能测试项目的质量如何,测试人员的素质、能力和经验是最关键的因素。要保证性能测试项目的高质量,必须依赖两个重要的因素:人和工具。“工欲善其事,必先利其器”,拥有一套熟悉,功能全面、质量可靠的性能测试工具对于从事性能测试的人员非常有帮助。
  
  性能测试是通过工具模拟大量用户操作,对系统增加负载和压力。例如通过产生模拟真实业务的负载对被测系统进行加压,研究被测系统在不同负载压力情况下的表现,找出其潜在的瓶颈。因此,一个良好的性能测试工具必需能做到以下几点:提供产生压力的手段,能够对后台系统进行监控,对压力数据能够进行分析,快速找出被测系统的瓶颈。
  
  例如,一组性能测试运行完毕后,我们会得到详尽的数据。这些数据的量非常大,靠人工去分析这些数据几乎是不可能的,性能测试工具能提供数据分析,帮助性能测试人员去阅读、解读和分析数据,辅助测试人员定位系统的瓶颈。因此,选择一款合适的性能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。
  
  (5)性能测试结果分析
  这是性能测试过程中最困难,也是最重要的步骤。它需要分析人员在运行性能测试后,收集相关信息,进行数据统计分析,通过排除误差和其他因素,让测试结果体现接近真实情况,以找到性能瓶颈。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号