前段時間在內部做了一個性能測試方面的培訓或者叫sharing,發現談到一些具體技術的時候大家都比較容易接受,但是性能測試中有些部分卻比較難以理解。比如說常見的問題有:
1. 為什么選用這樣的sample來測試?
2. 為什么用這樣的配置來測試?
3. 這樣的測試結果能反映客戶的真實情況嗎?
這些都是很好的問題,愿意思考的人才會提出這樣的問題。
其實這些也是困擾做性能測試的人的問題,因為這里存在著一對矛盾。相比穩定性(stability)或者大流量(volume)的測試而言,性能測試是要求精確量化的測試,比如response time要到毫秒,還有concurrent connection和throughput等指標,都是要實際測出的具體數字。但是另一方面,它其實又是很模糊的,比如說你只可能挑選一種或者幾種可能的配置來測試,而不可能精確的涵蓋所有的配置情況下的性能。而且實驗室測試的數據和production上真實的數據流量也是不一樣的,甚至客觀的講永遠不可能完全精確的模擬,就好比一個網站上線之前怎么能預料到將來成千上萬的用戶將要怎么來使用呢?姑且稱之為性能測試的dilemma。
聯想起最近看到的一個例子,大家可能更容易理解,據稱工信部最近列出了6000多種車型的“實際“油耗。相對于之前都是各個廠家給出的理論油耗,很多是在90公里等速的情況下的理論或者叫完美油耗,在無風的日子里,平坦的馬路,沒有急踩油門,沒有剎車,所以很多油耗都是6.x。但是很顯然,大家都知道,你不可能找到一條這樣完美的 路,連續的開上100公里。
我們也可以把上面的油耗測試看成是一種性能測試。那么因為這樣的不完美,我們就變成一個懷疑論者嗎?認為所有的性能測試都是沒有意義的,因為它永遠不可能反映真實的情況。
自己做性能測試也有很長一段時間了,有段時間我也在思考同樣的問題,does it make sense?直到有段時間,我看到一個很好的別的行業的例子。
不好意思,還是汽車行業的例子。(最近怎么老關注這個行業?)
比較關注汽車安全性的人常常會去看他關注的車在一些碰撞測試中得到幾星級的評價。在中國,這個標準就是C-NCAP。由于最近幾年才開始運作,所以也參考了不少美國和歐洲的標準。好吧,讓我們來看一下它大概是如何來給一輛車的安全性打分的。
關于這一部分,大家可以參考C-NCAP的評價規程 。
“試驗車輛100%重疊正面沖擊固定剛性壁障。碰撞速度為50km/h~51km/h(試驗速度不得低于50km/h)。試驗車輛到達壁障的路線在橫向任一方向偏離理論軌跡均不得超過150mm。在前排駕駛員和乘員位置分別放置一個Hybrid III型第50百分位男性假人,用以測量前排人員受傷害情況。在第二排座椅最右側座位上放置一個Hybrid III型第5百分位女性假人,用以考核安全帶性能。 ”
從測試的角度,我們可以看出這里的test config包括:
1. 迎面很正的撞到一個很硬的墻上 (好吧,這是很通俗的理解 :))
2. 撞上的時候速度是 50-51 km/h
3. 一個駕駛員,第二排坐了一個人。
然后根據兩個人的受傷情況來評分。
還包括另外兩個類似的測試。
這個大概模擬的是車頭部分追尾前車的情況。
這個模擬的是駕駛員側面被另一輛車撞上的情況。
根據總分,按照以下星級劃分對試驗車輛進行星級評價:
總分 | 星級 |
≥50分 | 5+ (★★★★★☆ ) |
≥45且<50分 | 5 (★★★★★ ) |
≥40且<45分 | 4 (★★★★ ) |
30且<40分 | 3 (★★★ ) |
≥15且<30分 | 2 (★★ ) |
<15分 | 1 (★ ) |
到此為止,我們就知道在廣告上看的“五星安全”是怎么來的了?,F在再看到這樣的字眼和你完全不了解它的做法的時候是不是有些不一樣呢?
我說說自己的感受吧。在不了解這些規程之前,會以為他們一定有一套完美和非常全面的評價方法,然后得出這些評分。第一次了解后不免很失望,好像很粗糙的方法,覆蓋的方面也很少。是的,如果嚴格的從測試完整性的角度來看,上面的方法確實有很多不夠全面的地方。比如說,
1. 為什么時速是 50~51或者56~57 km/h?
我不知道交管部門有沒有統計數據,是不是很多事故中“撞墻”的速度都是這樣的范圍?
無論統計數據如何,肯定有很多的例外吧。比如70碼撞上去會如何呢,看運氣和人品?
2. 為什么第一個正面100%的測試中,車上只有兩個人?
如何是四個人,會有幾個人受傷,傷勢如何?而且更實際一點,人有高矮胖瘦,一個很胖或者很高的司機有沒有可能更容易受傷?
3. 為什么是40%重疊而不是其他的比例?
4. 這些都是在平路上的碰撞,有沒有下坡或者上坡的時候的結果?
因為在這樣的時候車身的傾斜導致角度的不同可能會有不同的結果。
原文轉自:http://www.anti-gravitydesign.com