字號: 小 中 大 |
推薦給好友
上一篇 |
下一篇
軟件測試和VSTS 測試工具
發布: 2009-5-31 10:56 |
作者: 不詳 |
來源:
測試時代采編 |
查看: 307次 | 進入軟件測試論壇討論
領測軟件測試網
服務
質量的細化
–有些請求,是要對數據作“寫”操作,可以要求慢一些,比如“用戶購買商品”,這一服務質量請求可以放寬為
3秒鐘。
除了用戶體驗到的“2秒鐘頁面刷新”目標外,效能測試還要測試軟件內部各模塊的效能,這要求軟件的模塊能報告自身的各種效能指標,通過perfmon 或其它測試工具表現出來。
和別的測試不同,效能測試對硬件要有固定的要求,而且最要每次測試在相同的機器和網絡環境中進行,這樣才能避免外部隨機因素的干擾,得到精準的效能數據。
同時,效能測試的結果應該成為“發布指南”的一部份,給客戶發布和改進系統提供參考。
1.11Stress Test壓力測試
壓力測試嚴格地說不屬于效能測試。壓力測試要驗證的問題是:
軟件在超過設計負載的情況在仍能夠返回正常結果,而沒有產生嚴重的副作用或崩潰。
問:為啥不要求軟件在這種情況下仍然在2-3秒鐘內返回結果?
答:因為我們做不到。
注意,我們在這一部分要求“正常結果”,啥叫“正!?我們也要和客戶達成一致。比如,同一個購物網站,所有請求都能在網絡返回“超時”錯誤前返回,就可以認為是“正!。或者網站返回“系統忙,請稍候”,也是正常結果。但是,如果用戶提交的請求一部分執行,另一部分沒有執行;或者用戶信息丟失,這些都是不正常的結果,應該避免。
那我們怎么增加負載?對于網絡服務軟件來說,主要有下面兩個方面:
1.沿著用戶軸延長
我們用剛才的購物網站為例,正常的負載是20請求/分鐘,如果有更多的用戶登錄,怎么辦?那么負載就會變成30,40,100請求/分鐘,或更高
2.沿著時間軸延長
做過網絡服務的同事都知道,網絡的負載有時間性,負載壓力波峰和波谷相差很大,那么如果每時每刻負載都處于峰值,程序會不會垮掉?這就是我們要作的第二點,沿著時間軸延長。
與此同時,我們可以減少系統可用的資源,來增加壓力。
注意,壓力測試的重點是驗證程序不崩潰或產生副作用。在超負載的情況下,我們的程序仍然能夠正確地運行,而不會死機。在給程序加壓的過程中,程序中的很多“小”問題就會被放大,暴露出來。最常見的問題是
- 內存/資源泄露,在壓力下這會導致程序可用的資源枯竭,最后崩潰。
- 一些平時認為“足夠大/足夠好”的算法實現會出現問題。
- 進程/線程的同步死鎖問題,在壓力下一些小概率事件會發生,看似完備的程序邏輯也出現了問題。