基準測試

對性能指標定量和可對比的測試

基準測試是指通過設計科學的測試方法、測試工具和測試系統,實現對一類測試對象的某項性能指標進行定量的和可對比的測試。

測試簡介


基準測試(Benchmark Test, 即BMT)
例如,對計算機CPU進行浮點運算、數據訪問的帶寬和延遲等指標的基準測試,可以使用戶清楚地了解每一款CPU的運算性能及作業吞吐能力是否滿足應用程序的要求;再如對資料庫管理系統的ACID(Atomicity,Consistency,Isolation,Durability,原子性、一致性、獨立性和持久性)查詢時間和聯機事務處理能力等方面的性能指標進行基準測試,也有助於使用者挑選最符合自己需求的資料庫系統。從以上兩個例子我們可以看出,可測量、可重複、可對比是基準測試的三大原則,其中可測量是指測試的輸入和輸出之間是可達的,也就是測試過程是可以實現的,並且測試的結果可以量化表現;可重複是指按照測試過程實現的結果是相同的或處於可接受的置信區間之內,而不受測試的時間、地點和執行者的影響;可對比是指一類測試對象的測試結果具有線性關係,測試結果的大小直接決定性能的高低。
對於可再現性,基準測試是最好的方法。
在開發階段前期,應該使用基準測試來確定應用程序中是否出現性能倒退。基準測試可以在一個相對短的時間內收集可重複的結果。進行基準測試的最好方法是,每次測試改變一個且只改變一個參數。例如,如果想知道增加JVM內存是否會影響應用程序的性能,就逐次遞增JVM內存(例如,從1024 MB增至1224 MB,然後是1524 MB,最後是2024 MB),在每個階段收集結果和環境數據,記錄信息,然後轉到下一階段。這樣在分析測試結果時就有跡可循。
基準測試的關鍵是要獲得一致的、可再現的結果。可再現的結果有兩個好處:減少重新運行測試的次數;對測試的產品和產生的數字更為確信。使用的性能測試工具可能會對測試結果產生很大影響。假定測試的兩個指標是伺服器的響應時間和吞吐量,它們會受到伺服器上的負載的影響。伺服器上的負載受兩個因素影響:同時與伺服器通信的連接(或虛擬用戶)的數目,以及每個虛擬用戶請求之間的考慮時間的長短。很明顯,與伺服器通信的用戶越多,負載就越大。同樣,請求之間的考慮時間越短,負載也越大。這兩個因素的不同組合會產生不同的伺服器負載等級。記住,隨著伺服器上負載的增加,吞吐量會不斷攀升,直到到達一個點。
當軟體系統中增加了1個新模塊,此時需要做基準測試,以判斷新的模塊對整個軟體系統的性能影響。