Stage 2:做了过多的假设

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

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

  Stage 3:做必要和合理的假设。

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

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

  2. 宏观和微观

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

  果真是如此吗?看看下面的例子:

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

  2. 关掉一个cache选项

  3. 打开keepalive选项

  4. 打开DNS反向查询

  ......

  上面都是些细枝末节的设置,一个配置项而已,藏在DB的某张表或者某个ini里面。但是改变之后,得到的性能结果可能大不相同。这些都是我曾遇到过的例子,也是让我改变看法的一些经历。

  Scott Barber(本人非常尊敬的性能测试方面的专家)在他的一篇文章里讨论了这个话题。

  “Macro- and Micro-tests, macro strategies and micro-plans, macro-level application usage and micro-level usage implementation details, macro-level result summaries for executives and micro-level test results for developers... it sounds like a day in the life of a performance tester to me.”

  摘自他为Software Test & Performance杂志写的一个系列文章,叫做Peak Performance,其中的2006年9月的一期,文章名是 Macro to Micro And Back Again

  Macro to Micro And Back Again,嗯,很好的诠释。