软件性能测试的本质

发表于:2012-12-21 10:57

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

 作者:虫师    来源:51Testing软件测试网采编

  “假设”的测试环境

  现在是不是觉得性能测试有太多的前置条件,它他们或大或小的影响着测试的结果。

  关于这些前置条件,或者我们称之为假设(assumption),我把一些做法归纳为三个阶段。

  一:做了假设却不知道自己做了假设

  比如前面提到的那个耗油的问题,有人的做法是我就开100公里看看,得出来是多少就是多少,比如9L。然后就告诉别人这个车的100公里耗油是9L。

  问题是这样的结果对你是OK,因为你有切身的的体验,知道遇到的状况,可是测试的报告是要给别人,甚至你都无法直接面对或者沟通的人参考。这就会很容易误导别人,即便这不是你的本意,而且你自已也确定你是真实的记录了结果。这里的问题在于你并不清楚自己所做的假设,因为我们一直在做这样的假设。

  二:做过多的假设

  “当路面平坦,无任何红绿灯,风速5km/h只有一名70kg的乘客,时速稳定在70km/h,良好驾驶习惯,....的情况下,耗油是7.1L/100km。”

  这样可能很严谨,但是对你的报告的读者而言,这样的数据有多大意义,因为他们没有你这么幸运,有这么良好的环境。

  三:做必要和合理的假设

  生活有时候是需要一些妥协和折衷,如果这些折衷是必要的和合理的。因为跳出来看,我们的测试需要提供有价值的信息,所以为了这样有价值的信息,做出必要和合理的假设是可以接受的。

  好吧,也许这不是你想要的答案,但它是我目前给自己的解释和安慰。

  性能测试环境需要在严格独立监控下管理,尽量保持与真实生产环境的一致性能。保持一致性应该注意哪些方面,等搜索虫师的《性能测试知多少---测试环境搭建》。

  “精确”的测试数据

  对于一个严谨的测试员,我们的测试结果的描述也相当精确,如:用户每个用户的访问时间为2.8729秒,10分钟系统处理请求8634个。我以前一直认为,只要我把测试环境描述的很详细,我的测试结果就是精确的。

  实际上功能测试很容易得到测试结果,而性能测试很难得到精确的量化结果,我买了一辆汽车,开车去上班,去时车的各个功能非常正常,回来的时候车的功能也非常正常。将过我的上下班测试,这个车的功能没有问题。再来看耗油情况,我去时上耗油3.29升,回来时耗油3.42升,同样的一条路,同样的人开同样的车,那么是不一样的耗油结果?如果我再试一遍,可能情况还会有变化。所以,我们很难得到精确的数据,但是这丝毫不影响我们测试结果的参考价值。

  “宏观/围观”的性能测试

  这也是一个有趣的对立。在做性能测试,特别是整个产品的性能测试的时候,我们看到的是产品的核心功能和主要的大的功能模块,比如数据库、web服务器、核心的daemon等等。在脑海里,我们有一个架构图,哪怕你没有把它画出来。所以有时候,我们会想,性能测试对于产品的视角是宏观的,看大的组件,而不是具体的细节的东西。果真是如此吗?看看下面的例子:

  1、把daemon的log级别改为debug (log_level从2改到5)之后,性能下降了差不多一半。

  2、关掉一个cache选项

  3、打开keepalive选项

  4、打开DNS反向查询

  .....

  上面都是些细枝末节的设置,一个配置项而已,藏在DB的某张表或者某个ini里面。但是改变之后,得到的性能结果可能大不相同。这些都是否改变了我们以往的看法。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号