什麼是測試框架?(工具、示例)
“Harness”一詞通常指的是控制某物的“工具”。軟體測試也遵循同樣的規則。在軟體測試中,測試框架是一組專門開發的軟體、測試資料、測試驅動程式和工具,用於在各種環境下測試應用程式。然後,開發人員分析測試結果以確保獲得滿意的結果。
如何在軟體測試中進行測試框架?
測試框架可以稱為一個執行所有測試工作的過程,例如透過測試庫執行測試並生成報告。為此,開發人員和測試人員必須開發特定的測試指令碼以處理特定的測試場景和測試資料。

測試框架從資料準備開始,這是一個積累先決條件資料的過程。一旦執行了測試框架,測試人員必須確保他們可以透過單擊一個按鈕或一個命令來執行所有測試並生成報告。
如上所述,測試框架包含一系列不同的東西來測試應用程式並報告其結果。測試框架可以是任何東西。它可以是您在開發應用程式時編寫的單元測試/測試的集合。您還可以對應用程式的功能進行其他測試,例如檢查您網站上的使用者登入、最近的訊息、通知等。
以下過程包括新增與您的測試指令碼相容的測試執行程式並一次執行所有測試指令碼。簡而言之,測試框架包含一系列概念,而不是單個軟體。
測試用例和測試指令碼有什麼區別?
測試用例定義了測試的目標、描述、先決條件和預期結果。同時,測試指令碼是執行測試的自動化指令碼。
測試框架使用場景
測試自動化
在自動化測試中,測試框架被稱為包含測試指令碼的框架和系統。除此之外,它還包括執行這些指令碼所需的必要引數。在累積測試結果後,測試人員將它們與其他資料進行比較並監控結果。
示例 -
讓我們使用統一功能測試工具進行“功能測試”。我們使用應用程式生命週期管理 (**ALM**) 工具來組織、管理、執行和監控指令碼。類似地,我們使用 MS Access DB 作為資料庫。
現在,該專案的測試框架將是 -
UFT 軟體
測試集
指令碼及其儲存位置
ALM 工具
MS Access DB 用於提供引數和其他相關資料
測試結果
與比較和監控測試結果相關的屬性
除了 AUT 之外,所有軟體系統、資料、條件、結果都作為測試框架的重要組成部分。
整合測試
整合測試是軟體測試的一部分,其中將各個單元和元件組合在一起並進行測試,以檢視它們是否按預期工作。整合測試背後的原因是在單元整合並相互互動時查詢錯誤。
只有在兩個模組都 100% 準備好並進行單元測試後,才能進行整合測試。但是,這種情況很少發生,因為某些應該用於整合測試的模組可能當時不可用。在這種情況下,您可以使用測試存根和測試驅動程式。
什麼是測試存根和測試驅動程式?
存根包含一段具有有限功能的程式碼。您可以將其用作實際程式碼模組的替代品。
示例
假設我們決定整合單元 I 和單元 II,其中單元 I 將資料傳送到單元 II。我們也可以將其稱為單元 I 呼叫單元 II。
在我們的場景中,單元 I 可用 100%,但單元 II 不可用。在這種情況下,我們可以編寫一段/幾段功能有限的程式碼並將其用於整合。這意味著,如果單元 II 有 15 個功能,而我們只需要 3 或 4 個元素來將其與單元 I 整合,我們將只編寫包含這些功能的程式碼,而不是編寫整個程式碼。包含這些有限功能的這部分特定程式碼稱為存根。
我們可以將整合寫成單元 I → 存根(B 的替代品)
或者,如果單元 I 不存在而單元 II 可用 100%,我們將考慮單元 I 進行模擬或代理。驅動程式指的是我們用輔助程式碼替換呼叫函式的過程。
換句話說,測試驅動程式用作呼叫模組的臨時替換,因為它們提供與實際產品相同的輸出。它們通常在軟體與外部系統互動時需要。測試驅動程式通常比存根複雜。
我們可以將整合寫成**驅動程式**(A 的替代品)→ 單元 B
涉及規劃、開發和使用存根或驅動程式來執行整合測試的過程稱為測試框架。
常見問題
設計測試框架進行測試為什麼很重要?
測試框架允許開發人員和測試人員更有效地執行自動化,從而提高生產力。此外,它還有助於透過除錯提高軟體質量。它允許測試人員安排即將進行的測試,尤其是在複雜條件下。除此之外,它還有助於自動生成報告和記錄測試結果。
測試框架和測試框架有什麼區別?
測試框架包含用 JAVA、.NET 等編寫的虛擬程式集(存根和驅動程式),以促進與被測軟體的互動。它由編譯和執行測試用例、存根、TDP、原始碼檔案所需的資訊組成。
測試自動化框架包含允許測試人員設計和實施測試的過程、智力概念和環境。它包含測試庫、自動化測試工具、測試平臺,並符合最佳測試實踐。
測試框架和測試框架之間區別的概念屬於模糊的界限。您可以將測試框架視為特定的,而將測試框架視為通用的。
一些最佳的測試框架工具是什麼?
一些測試框架工具屬於自動化軟體和測試管理軟體類別。不能使用單個工具執行測試框架。但是,測試人員通常使用 QTP、HP ALM、Junit 等工具的組合。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP