軟件測試手記:切莫忽視性能測試 軟件測試
我最近在項目中兼任項目測試組長(cháng)角色,這次項目中負責性能測試的QA組長(cháng)調走了,只好由我硬著(zhù)頭皮頂上去。在這段日子里,使我對性能測試有了新的認識,性能測試絕不象大多數人認為的是一件簡(jiǎn)單的事情。目前,性能測試已跨越了單靠手工敲敲鍵盤(pán)、點(diǎn)點(diǎn)鼠標就可以完成的階段,正朝著(zhù)自動(dòng)化和智能化方向發(fā)展。
性能測試的重要性隨著(zhù)網(wǎng)絡(luò )發(fā)展更凸顯重要性,由于網(wǎng)絡(luò )環(huán)境、數據庫環(huán)境、應用服務(wù)器環(huán)境、系統平臺和技術(shù)等的復雜性和多樣性,難以預知的用戶(hù)負載和愈來(lái)愈復雜的應用程序使軟件性能非常難于控制。雖然,改善系統性能不是單單依靠性能測試就能完成的,但性能測試至今仍是控制性能有效的手段。
什么是性能測試
性能測試主要是通過(guò)自動(dòng)化的測試工具模擬多種正常、峰值及異常負載來(lái)對系統的各項性能指標進(jìn)行測試。一般來(lái)說(shuō),性能測試可概括為三個(gè)方面:在客戶(hù)端性能的測試、在網(wǎng)絡(luò )上性能的測試和在服務(wù)器端性能的測試。通常情況下,三方面有效的結合可以達到對系統性能全面的分析和瓶頸的預測。
性能測試的基本策略是自動(dòng)負載和壓力測試。通過(guò)在一臺或幾臺PC機上模擬成百上千的虛擬用戶(hù)同時(shí)執行業(yè)務(wù)的情景,對應用程序進(jìn)行測試,同時(shí)記錄下每一事務(wù)處理的時(shí)間、服務(wù)器峰值數據、數據庫狀態(tài)等。它主要包括并發(fā)性能測試、疲勞強度測試、大數據量測試和速度測試等,其中并發(fā)性能測試是重點(diǎn)。
(1)并發(fā)性能測試
并發(fā)性能測試是一個(gè)負載測試和壓力測試的過(guò)程,即逐漸增加負載,直到系統出現瓶頸或者不能接收更多負載,通過(guò)綜合分析執行指標和資源監控指標來(lái)確定系統并發(fā)性能的過(guò)程。例如當負載壓力逐漸增加時(shí),通過(guò)檢測系統的相應輸出如通過(guò)量、響應時(shí)間、CPU負載、內存使用等來(lái)決定系統的性能。
并發(fā)性能測試一般不采用手工方式,而是利用工具采用自動(dòng)化方式進(jìn)行。在測試時(shí)常常需要模擬真實(shí)環(huán)境測試,以考察在真實(shí)環(huán)境中的表現,這樣測試出來(lái)的數據才有實(shí)際意義。目前,成熟的并發(fā)性能測試工具有很多,選擇的依據主要是測試需求和性能價(jià)格比。
(2)疲勞強度測試
疲勞測試是采用系統穩定運行情況下能夠支持的最大并發(fā)用戶(hù)數,持續執行業(yè)務(wù)一段時(shí)間,通過(guò)綜合分析執行指標和資源監控指標來(lái)確定系統處理最大工作量強度性能的過(guò)程。
疲勞強度測試可以采用工具自動(dòng)化的方式進(jìn)行測試,也可以手工編寫(xiě)程序測試,其中后者占的比例較大。一般情況是以服務(wù)器能夠正常穩定響應請求的最大并發(fā)用戶(hù)數進(jìn)行一定時(shí)間的疲勞測試,獲取執行指標數據和系統資源監控數據。如出現錯誤導致測試不能成功執行,則及時(shí)調整測試指標,例如降低用戶(hù)數、縮短測試周期等。還有一種情況的疲勞測試是對當前系統性能的評估,用系統正常業(yè)務(wù)情況下并發(fā)用戶(hù)數為基礎,進(jìn)行一定時(shí)間的疲勞測試。
(3)大數據量測試
大數據量測試可以分為兩種類(lèi)型:一是針對某些系統存儲、傳輸、統計、查詢(xún)等業(yè)務(wù)進(jìn)行大數據量的獨立數據量測試;二是與壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試方案。大數據量測試的關(guān)鍵是測試數據的準備,可以依靠工具準備測試數據。
進(jìn)行性能測試的前提條件
在任何性能測試活動(dòng)開(kāi)始前,軟件應用程序必須達到性能測試接受標準。如果應用程序沒(méi)有達到這些標準,則不應該進(jìn)行性能測試,否則就是浪費時(shí)間和成本。進(jìn)行性能測試的前提條件包括:
(1)已通過(guò)單元測試能力
在性能測試前所有應用程序必須先通過(guò)全面的單元測試策略,同時(shí)所附帶的可被執行的單元測試代碼應是完整和有效的。如果單元測試因為應用程序中的錯誤或缺少單元測試代碼,那么應用程序則不應該進(jìn)行性能測試。
(2)已通過(guò)低負載級別能力
在單用戶(hù)和10個(gè)用戶(hù)的低負載級別上,應用程序應該能在正常的計算時(shí)間達到合理的性能。如果應用程序無(wú)法在低負載級別正常運行,那么它肯定無(wú)法在更高負載級別正常運行。這時(shí),開(kāi)始性能測試將會(huì )浪費時(shí)間。
(3)已準備好測試數據
在性能測試期間執行應用程序所需的數據必須先準備好或已詳細描述,以使性能測試小組能夠建立與生產(chǎn)環(huán)境盡可能接近的模擬數據,要確保測試數據必須是真實(shí)、一致和完整的,任何與真實(shí)環(huán)境相差太遠的測試數據都是無(wú)用的性能測試行為。
常見(jiàn)的性能測試誤區
(1)沒(méi)有設置好性能測試期望
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/