做Performance Test 時一定要懂點統計


Performance Testing Guidance for Web Applications
Chapter 15 Key Mathematic Principles for Performance Testers


上一篇提到若是不會統計, 在做performance test時,或是看report時, 可能會對資料的解讀有所誤會. 這裡我舉這本書上的例子來跟大家說明

這裡有三個 data set, 每個data set有100次實驗的值, 每個值也詳細列在下面 .
 
Data Set A
100 total data points, distributed as follows:
5 data points have a value of 1.
10 data points have a value of 2.
20 data points have a value of 3.
30 data points have a value of 4.
20 data points have a value of 5.
10 data points have a value of 6.
5 data points have a value of 7.

Data Set B
100 total data points, distributed as follows:
80 data points have a value of 1.
20 data points have a value of 16.

Data Set C
100 total data points, distributed as follows:
11 data points have a value of 0.
10 data points have a value of 1.
11 data points have a value of 2.
13 data points have a value of 3.
11 data points have a value of 4.
11 data points have a value of 5.
11 data points have a value of 6.
12 data points have a value of 7.
10 data points have a value of 8.

一般人最常做的, 就是把所有值加起來然後算出平均值, 可是你知道這會有什麼結果: 這3個data set出來的答案一樣
                      Average
Data Set A   4
Data Set B   4
Data Set C   4

可是資料的分布卻是很不相同, Data Set A是 Normal Distribution, Data Set B是集中在最大和最小值兩端, Data Set C是Uniform Distribution.

因此若是只是單純把資料平均, 這樣的資料送出去, 大家有可能誤解程式效能沒有問題. 事實上, 3 個狀況是大大不同, 需要詳加研究哪裡出了問題

就像健康檢查一樣, 你必須要綜合一些數據來看, 這樣你才能斷定是否真的有問題. 否則就好比瞎子摸象, 有人說像園柱, 有人說像水管, 有人說像扇子, 無法真正得到全貌.

這裡我們若是再多看一些indicator,你就能看出這三組資料, 真的非常不同.

                      Average  Min  Max  中位數     95th Percentile      標準差
Data Set A   4              1       7       4               6                             1.5
Data Set B   4              1       16     1              16                            6
Data Set C   4              0       8       4               8                             2.6


所以看到這裡, 各位看官, 你有沒有重新開始思考, 你之前做的數據會不會武斷了些呢?

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()