軟體效能測試面面觀

2021-05-01 16:52:10 字數 3685 閱讀 8039

軟體測試,作為軟體工程的一部分,隨著軟體生產的產業化運作應運而生,是軟體生產的乙個動態監控過程,對軟體開發全過程進行檢測,可以隨時發現問題、報告問題,並重新評估新的風險,設定新的監控基準,並持續下去。軟體測試是軟體質量控制的過程,是對軟體系統中潛在的各種風險進行評估的活動,其目的是監測和排除缺陷,以確保軟體產品在可用性、功能性、可操作性等多方面滿足質量需求。

目前,軟體測試已經由被動的以監測和發現錯誤為目的發展到從軟體質量控制(sqc,software quality control)開始轉移到軟體質量保證(sqa,software quality assurance),使軟體測試從單純的缺陷檢測和發現覆蓋到整個軟體開發過程,避免了軟體開發過程中由於軟體需求和設計等方面的缺陷所帶來的巨大風險。乙個典型的軟體過程可以分為測試需求分析、測試設計、測試執行、缺陷和配置管理過程等許多個不同的階段。在軟體測試技術方面也已經被細化為單元測試、整合測試、系統測試、使用者驗收測試等不同的測試技術。而在對軟體產品質量呼聲日高的今天,軟體效能測試技術尤為重要。

軟體效能測試「整體觀」

軟體的效能測試是為了檢驗系統或系統部件是否達到需求規格說明中規定的各類效能指標,並滿足一些效能相關的約束和限制條件,它必須對系統或系統部件具有的效能(例如,速度、精度、頻率)做出規定的要求。

效能測試通常在系統測試階段執行,常常與強度測試結合起來,一般需要使用測試工具。評估測試物件的效能行為時,可以使用多種評測,這些評測側重於獲取與行為相關的資料,如響應時間、計時配置檔案、執行流、操作可靠性和限制。這些評測主要在評估測試活動中進行,也可以在執行測試活動中使用效能評測評估測試進度和狀態。

效能需要在各種條件下測試,這些條件包括:

● 不同的工作量和/或系統條件。

● 不同的用例/功能。

● 不同的配置。

● 效能需求在補充規格或需求規格說明書中的效能描述部分中說明。

在上述條件下執行測試時,要特別注意以下資訊,並為反映這些資訊的每條語句生成至少乙個測試需求:

● 時間語句,如響應時間或定時情況。

● 指出在規定時間內必須出現的事件數或用例數的語句。

● 將某一項效能的行為與另一項效能的行為進行比較的語句。

● 將某一配置下的應用程式行為與另一配置下的應用程式行為進行比較的語句。

● 一段時間內的操作可靠性(平均故障時間或mttf)。

● 配置或約束

軟體效能測試工作主要包括如下幾個方面:

● 動態監測:在測試執行過程中,實時獲取並顯示正在執行的各測試指令碼的狀態。

● 百分位報告:資料已收集值的百分位評測/計算。

● 比較報告:代表不同測試執**況的兩個(或多個)資料集之間的差異或趨勢。

● 追蹤報告:主角(測試指令碼)和測試物件之間的訊息/會話詳細資訊。

軟體效能測試「方法觀」

軟體效能測試的方法可以根據測試目的的不同,選擇不同的方法,具體如下表:

根據測試內容的不同,效能測試主要包括以下方面:

1、響應時間測試

● 響應時間測試,通常指正常單使用者操作時客戶端的響應時間,以及將強度測試、負載測試、壓力測試結合時客戶端的響應時間。

● 函式、方法、物件、子例程執行時間。

● 函式、方法呼叫頻度及巢狀。

● 執行特定模組、按特定路徑執行或處理特定資料所花費的時間。

● 處理精度。

● 如果兩次執行時間相差三倍以上,則可能存在問題。

2、強度測試(壓力/負載測試)

強度測試需要在反常數量、頻率或資源的方式下執行系統,以檢驗系統能力的最高實際限度,它要求軟體必須被強制在它的設計能力的極限狀態下執行。

3、軟體可靠性測試

這種測試經常發現的錯誤包括越界指標,記憶體洩露、棧溢位、超過兩個特性之間的錯誤互動等,也稱長序列測試(long sequence testing)、持久測試(duration testing)、耐力測試(endurance testing)。測試持續時間較長,目標是發現程式測試遺漏的錯誤。

可靠性差的軟體,如執行時總是頻繁地、重複地失敗,軟體不能穩定地工作。

軟體可靠性測試的目的是給出可靠性的定量估計值。軟體效能評測「指標觀」

一般來說衡量軟體效能測試的標準可以採用以下曾用的方法:

1、軟體可靠度(r)指標

一種定量描述軟體可靠性的方法,是指在規定的條件下和規定的時間內,軟體在其執行剖面的某時刻正確地實現規定功能的概率。

2、軟體平均故障前工作時間(mttf)

一種定量描述軟體可靠性的方法,是指一定配置狀態下的軟體產品在其規定的執行剖面中故障工作時間的期望值,以及軟體故障強度。

3、軟體平均無故障工作時間(mtbf)

計算機系統或子系統實現其功能的能力。一般以對計算機系統或子系統執行其功能的能力的度量。例如,響應時間、吞吐能力、事務處理數、佔用率。

軟體效能測試「例項觀」

為了讓讀者對效能測試有更深刻的認識,下面以手機中執行的軟體為例,說明在實際的軟體開發過程中效能測試方法的運用:

手機效能測試的方法可分為手工測試和自動測試。

手工測試主要是通過測試人員手動操作,並借助某些監測儀器和工具來驗證手機效能。但由於手機功能眾多,很多效能測試需要重複性地進行,工作量很大,這需要耗費大量測試時間同時也容易造成測試的遺漏,不能保證效能測試的準確性和高效率。

借助pc平台,目前已經有很多功能強大且通用的自動測試工具,如比較典型的有winrunner,robot,loadrunner等等,但這些工具必須進行二次開發,才能將自動測試工具相容到手機這種嵌入式系統中來。

手機的自動化效能測試一般分為以下幾個步驟進行:

1、系統分析

將系統的效能指標轉化為效能測試的具體目標。通常在這一步驟裡,要分析被測系統結構,結合效能指標,制定具體的效能測試實施方案。要求測試人員對被測系統結構和實施業務全面掌握。

2、建立虛擬使用者指令碼

將業務流程轉化為測試指令碼,通常指的是虛擬使用者指令碼或虛擬使用者。虛擬使用者通過驅動乙個真正的客戶程式來模擬真實使用者,要將各類被測業務流程從頭至尾進行確認和記錄,分析每步操作的細節和時間,將其精確地轉化為指令碼。類似製造乙個能夠模仿人的行為和動作的機械人過程。

3、根據使用者效能指標建立測試場景

根據真實業務場景,對生成的測試指令碼進行複製和控制,對指令碼的執行制定規則和約束關係,轉化為滿足效能測試指標的測試用例集。這個步驟需要結合使用者效能指標進行細緻地分析。

4、執行測試場景,同步監測應用效能

在效能測試執行中,實時監測能使測試人員在測試過程中的任何時刻都可以了解應用程式的效能優劣。系統的每一部件都需要監測:協議棧,mmi應用程式,記憶體占用情況,驅動程式執行狀態等。實時監測可以在測試執行中及早發現效能瓶頸。

5、效能測試的結果分析和效能評價

結合測試結果資料,分析出系統效能行為表現的規律,並準確定位系統的效能瓶頸所在。可以利用數學手段對大批量資料進行計算和統計,使結果更加具有客觀性。在效能測試中,需要注意的是,能夠執行的效能測試方案並不一定是成功的,成敗的關鍵在於其是否精確地對真實世界進行了模擬。

在整個效能測試過程中,自動化測試工具的選擇只能影響效能測試執行的複雜程度,但人的分析和思考卻會直接導致效能測試的成敗。

總之,軟體效能測試的方法很多,不同方法的評測指標也是不同的。針對使用者的需求、開發模式以及開發過程的不同,靈活。

Windows 系統面面觀

微軟出於種種目的,只是把一些不常用的工具藏在windows 的各個角落,這些僅作為附屬工具,無法弄清其具體鏈結檔案,不利於直接呼叫。下面我們就對它一一進行介紹。一 目錄篇 aspicd.sys scsi光碟機的的aspi驅動程式。必須先執行aspi dos驅動程式,這個檔案只對於那些使用scsi的使...

架構視角面面觀

是否在不斷的學習新技術 新名詞 生怕落伍?wcf wf wpf mvc ef webapi spring castle unity autofac ninject aop等 ui層 平均是多少行?webform頁面 winform等頁面 業務層 量平均是多少?資料訪問層 量平均是多少?儲存過程 sq...

IT界人才面面觀

人才是企業的生命線,乙個企業最重要的資源可以說就是人才了,特別在it行業,人才更是重中之重。it是informationgtechonlogy的簡寫,就是資訊科技,是一切製造 傳輸 加工 儲存和使用資訊的技術。it企業在近幾年有了長足的發展,但it人才卻和it企業的發展不相適應。it人才市場 200...