做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
所以看到這裡, 各位看官, 你有沒有重新開始思考, 你之前做的數據會不會武斷了些呢?
留言列表