轉自原來網易博客寫的文章
在PC端軟件測試中,穩定性測試是必不可少的一項測試內容。一般在功能測試已經測試完成,缺陷完全修復完成以后進行。
穩定性測試是在保證客戶端功能完整正確的前提下,通過對軟件穩定性的測試可以觀察在一個運行周期內、一定的壓力條件下,軟件的出錯機率、性能劣化趨勢等。進而大大減少軟件上線后的崩潰卡死等現象,為軟件的逐步優化提供方向及驗證。
測試方法:通過自動化腳本,長時間運行客戶端某些功能或長時間開關客戶端,看客戶端是否存在Crash現象,同時查看內存、CPU等性能指標。
一款PC客戶端軟件,它的穩定性測試需求基本包括:
- 長時間運行及各種操作下,軟件的穩定性以及各種性能指標的劣化趨勢。
- 多進程或多線程運行時的穩定性。
- 不同操作系統,在不同軟件環境下運行的穩定性。
具體來講:
- 長時間:一般都要24h以上,要求高點的要24h*3;
- 不同操作系統:基本上都需要覆蓋下面系統:Winxp、Win7 x86、Win7 x64、win8 x64、Win 8.1;
- 不同軟件環境下:主要是指不同的殺毒軟件和安全軟件環境下;
步驟:
- 確定穩定性測試需求,包括:需要覆蓋的功能點、系統環境和軟件環境、測試時間長度
- 開發自動化運行腳本
- 執行腳本,進行性能監控
- 分析執行結果

自動化腳本
穩定性測試必須要用自動化測試腳本,標准控件可以用QTP或LoadRunner來進行,可以方便的來進行自動化腳本開發。
但由於QTP或LoadRunner都是收費軟件,很貴,大部分公司都沒有license,而且它對非標准控件的支持很差。現在我們用一些開源的工具來替代,這邊用Autoit來編寫自動化腳本。
學習參考網址:http://www.autoitx.com/
AutoIt ,這是一個使用類似BASIC腳本語言的免費軟件,它設計用於Windows GUI(圖形用戶界面)中進行自動化操作。它利用模擬鍵盤按鍵,鼠標移動和窗口/控件的組合來實現自動化任務。
優點
- 輕量級(官方發布包10M左右),編譯成可執行文件后在沒有安裝 AutoIt 的機器上也可直接運行
- 免費,不需要許可證 - 有豐富的函數庫(標准函數庫和自定義函數庫) - 基於Win32 API,方便擴展
- 有完善的幫助文檔和豐富的論壇資源
例子
用一個簡單的客戶端開關穩定性測試來看看怎么運行的:
開關測試屬於穩定性測試里的一種,將客戶端長時間不斷地開啟和關閉,看客戶端是否會Crash,產生dump文件。
;定義變量
Dim $Sum,$i
$Sum=0
$i=1
;循環開關次數
While $i<=86400
$Sum=$Sum+$i
$i=$i+1
Run("C:\Nep\debug\GacRunnerB_D.exe")
WinWait("NEPSingle")
Sleep(1000)
;取得進程pid
$iPid = WinGetProcess("NEPSingle")
;關閉此進程
ProcessClose($iPid)
WEnd
執行
穩定性測試不同於一般的功能測試,屬於概率學測試,並不是這次沒測出來就是沒問題,所以需要長時間運行,多個系統,多種軟件環境中進行多次測試,盡可能的提供可靠性。
操作系統 | 軟件環境 |
Winxp pro | 純凈環境 |
Win7 x86 | 306殺毒+360安全衛士 |
Win7 x64 | 金山毒霸 |
Win8 x86 | 卡巴斯基 |
Win8 x64 | Nod |
結果
從穩定性測試的結果的判斷從下面幾個方向判斷:
- 判斷是否Crash:可以通過dump文件判斷是否有crash的現象,可以將產生的dump發給開發分析crash原因
- 判斷是否性能劣化:在穩定性測試的同時通過性能監控工具對內存、cpu、句柄等性能參數進行監控,查看性能是否出問題。
