性能測試:軟件測試的重中之重 軟件測試
性能測試在軟件的質(zhì)量保證中起著(zhù)重要的作用,它包括的測試內容豐富多樣。中國軟件評測中心將性能測試概括為三個(gè)方面:應用在客戶(hù)端性能的測試、應用在網(wǎng)絡(luò )上性能的測試和應用在服務(wù)器端性能的測試。通常情況下,三方面有效、合理的結合,可以達到對系統性能全面的分析和瓶頸的預測。
應用在客戶(hù)端性能的測試
應用在客戶(hù)端性能測試的目的是考察客戶(hù)端應用的性能,測試的入口是客戶(hù)端。它主要包括并發(fā)性能測試、疲勞強度測試、大數據量測試和速度測試等,其中并發(fā)性能測試是重點(diǎn)。
并發(fā)性能測試是重點(diǎn)
并發(fā)性能測試的過(guò)程是一個(gè)負載測試和壓力測試的過(guò)程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點(diǎn),通過(guò)綜合分析交易執行指標和資源監控指標來(lái)確定系統并發(fā)性能的過(guò)程。負載測試(Load Testing)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時(shí),系統組成部分的相應輸出項,例如通過(guò)量、響應時(shí)間、CPU負載、內存使用等來(lái)決定系統的性能。負載測試是一個(gè)分析軟件應用程序和支撐架構、模擬真實(shí)環(huán)境的使用,從而來(lái)確定能夠接收的性能過(guò)程。壓力測試(Stress Testing)是通過(guò)確定一個(gè)系統的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統能提供的最大服務(wù)級別的測試。
并發(fā)性能測試的目的主要體現在三個(gè)方面:以真實(shí)的業(yè)務(wù)為依據,選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作設計測試案例,以評價(jià)系統的當前性能;當擴展應用程序的功能或者新的應用程序將要被部署時(shí),負載測試會(huì )幫助確定系統是否還能夠處理期望的用戶(hù)負載,以預測系統的未來(lái)性能;通過(guò)模擬成百上千個(gè)用戶(hù),重復執行和運行測試,可以確認性能瓶頸并優(yōu)化和調整應用,目的在于尋找到瓶頸問(wèn)題。
當一家企業(yè)自己組織力量或委托軟件公司代為開(kāi)發(fā)一套應用系統的時(shí)候,尤其是以后在生產(chǎn)環(huán)境中實(shí)際使用起來(lái),用戶(hù)往往會(huì )產(chǎn)生疑問(wèn),這套系統能不能承受大量的并發(fā)用戶(hù)同時(shí)訪(fǎng)問(wèn)? 這類(lèi)問(wèn)題最常見(jiàn)于采用聯(lián)機事務(wù)處理(OLTP)方式數據庫應用、Web瀏覽和視頻點(diǎn)播等系統。這種問(wèn)題的解決要借助于科學(xué)的軟件測試手段和先進(jìn)的測試工具。
舉例說(shuō)明:電信計費軟件
眾所周知,每月20日左右是市話(huà)交費的高峰期,全市幾千個(gè)收費網(wǎng)點(diǎn)同時(shí)啟動(dòng)。收費過(guò)程一般分為兩步,首先要根據用戶(hù)提出的電話(huà)號碼來(lái)查詢(xún)出其當月產(chǎn)生費用,然后收取現金并將此用戶(hù)修改為已交費狀態(tài)。一個(gè)用戶(hù)看起來(lái)簡(jiǎn)單的兩個(gè)步驟,但當成百上千的終端,同時(shí)執行這樣的操作時(shí),情況就大不一樣了,如此眾多的交易同時(shí)發(fā)生,對應用程序本身、操作系統、中心數據庫服務(wù)器、中間件服務(wù)器、網(wǎng)絡(luò )設備的承受力都是一個(gè)嚴峻的考驗。決策者不可能在發(fā)生問(wèn)題后才考慮系統的承受力, 預見(jiàn)軟件的并發(fā)承受力, 這是在軟件測試階段就應該解決的問(wèn)題。
目前,大多數公司企業(yè)需要支持成百上千名用戶(hù),各類(lèi)應用環(huán)境以及由不同供應商提供的元件組裝起來(lái)的復雜產(chǎn)品,難以預知的用戶(hù)負載和愈來(lái)愈復雜的應用程序,使公司擔憂(yōu)會(huì )發(fā)生投放性能差、用戶(hù)遭受反應慢、系統失靈等問(wèn)題。其結果就是導致公司收益的損失。
如何模擬實(shí)際情況呢? 找若干臺電腦和同樣數目的操作人員在同一時(shí)刻進(jìn)行操作,然后拿秒表記錄下反應時(shí)間? 這樣的手工作坊式的測試方法不切實(shí)際,且無(wú)法捕捉程序內部變化情況,這樣就需要壓力測試工具的輔助。
測試的基本策略是自動(dòng)負載測試,通過(guò)在一臺或幾臺PC機上模擬成百或上千的虛擬用戶(hù)同時(shí)執行業(yè)務(wù)的情景,對應用程序進(jìn)行測試,同時(shí)記錄下每一事務(wù)處理的時(shí)間、中間件服務(wù)器峰值數據、數據庫狀態(tài)等。通過(guò)可重復的、真實(shí)的測試能夠徹底地度量應用的可擴展性和性能,確定問(wèn)題所在以及優(yōu)化系統性能。預先知道了系統的承受力,就為最終用戶(hù)規劃整個(gè)運行環(huán)境的配置提供了有力的依據。
并發(fā)性能測試前的準備工作
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/