什麼是資料驅動測試?學習建立框架
資料驅動測試
資料驅動測試是一種軟體測試型別,其中測試資料以表格或電子表格的形式維護。資料驅動測試使測試人員能夠提供一個單一的測試指令碼,該指令碼可以對來自表格的所有測試資料執行測試,並期望測試結果返回到同一個表格中。表格驅動測試是引數化測試的另一種名稱。
自動化測試會重放記錄(或計劃)的使用者活動系列,這些活動涵蓋被測應用程式的特定部分。您可以透過使用不同的輸入資訊執行測試來擴充套件訪問範圍。假設您記錄了將資料輸入應用程式表單中的活動。記錄的測試僅涵蓋您在記錄期間輸入的資料,這些資料不太可能在程式中建立錯誤,但某些其他資訊可能會建立錯誤。因此,您必須使用各種資料輸入進行測試,以檢查應用程式是否按計劃針對各種輸入值工作。這種測試方法稱為資料驅動測試。
實際上,您可以記錄大量具有不同輸入資料的測試,但最佳選擇是將資料與測試命令分離。資料驅動測試將從資料儲存(如檔案或資料庫)中接收資料,而不是使用硬編碼值。這種拆分在概念上簡化了測試。具有許多硬編碼值的測試可能難以適應和維護。例如,如果您需要額外的輸入資料,則必須調整測試指令。
資料驅動框架
資料驅動框架是一個自動化測試框架,它從檔案系統讀取資料並將它們儲存在測試指令碼中的變數中。它允許測試人員將正向和負向測試場景組合到一個測試中。資料驅動框架中的資料輸入可以包含在一個或多個數據源中,例如 .xls、.xml、.csv 和資料庫。
本教程將教你
- 資料驅動測試到底是什麼?
- 為什麼要使用資料驅動測試?
- 如何構建資料驅動的自動化框架
- 資料驅動測試最佳實踐 -
- 資料驅動測試的好處
- 資料驅動測試具有以下缺點
為什麼要使用資料驅動測試?
資料驅動測試至關重要,因為測試人員通常對同一個特定測試有多組資料,並且為每組資料設計不同的測試確實很耗時。資料驅動測試允許資料與測試指令碼分開儲存,然後可以對輸入測試資料的多種組合執行相同的測試指令碼,從而提高測試結果的生成效率。
示例 - 例如,我們希望使用 1000 個不同的資料集和多個輸入欄位來驗證登入功能。
要對此進行測試,請嘗試以下方法 -
方法 1 - 為每個資料集編寫 1000 個指令碼,並分別執行每個測試。
方法 2 - 手動更改測試指令碼中的值並多次執行它。
方法 3 - 從 Excel 表格中輸入資料。一次從 Excel 行獲取測試資料並執行指令碼。
列表中的前兩種可能性都很困難且耗時。因此,第三種方法更可取。
因此,第三種方法只不過是一個數據驅動框架。
如何構建資料驅動的自動化框架?
假設您希望評估應用程式的登入功能。
步驟 1:確定測試用例
輸入正確的使用者名稱和密碼 – 登入成功。
輸入錯誤的使用者名稱和密碼 – 登入失敗
輸入錯誤的密碼和有效的使用者名稱 – 登入失敗
步驟 2:為最後三個測試用例生成準確的步驟
測試用例編號 | 描述 | 測試步驟 | 測試資料 | 預期結果 |
---|---|---|---|---|
1 | 可以透過測試登入來找到有效的憑據。 |
| 使用者名稱:有效 密碼:有效 | 登入成功 |
2 | 應在登入中檢查無效的憑據。 |
| 使用者名稱:無效 密碼:有效 | 登入失敗 |
3 | 應在登入中檢查無效的憑據。 |
| 使用者名稱:有效 密碼:無效 | 登入失敗 |
步驟 3:編寫測試指令碼
仔細觀察,您會發現測試步驟在所有三個測試步驟中都保持不變。要執行這些任務,您必須開發一個測試指令碼。
// This is known as Fake Code. // Step 1 of the Test: Run the App driver.get("Application URL"); // Step 2 of the Test: Input the Username txtbox username.sendKeys("valid"); // Step 3 of the Test: Enter Your Password txtbox password.sendKeys("invalid") // Step 4 of the Test: Analyze the Results If (Next Screen) print is successful, otherwise it is a failure.
步驟 4:準備包含輸入測試資料的 Excel/CSV 檔案。
步驟 5:更新指令碼,使其迴圈遍歷給定的測試資料。還應指定輸入指令。
// Pseudo Code Loop 3 Times for (i = 0; i & lt; = 3; i++) { // Import data from Excel and save it in variables. int input_1 = ReadExcel(i, 0); int input_2 = ReadExcel(i, 1); // Test Step 1: Launch Application driver.get("URL of the Application"); // Test Step 2: Enter Username txtbox_username.sendKeys(input_1); // Test Step 3: Enter Password txtbox_password.sendKeys(input_2); // Test Step 4: Check Results If(Next Screen) print success else Fail }
這些僅是測試用例的三個示例。透過將測試資料值附加到 Excel,測試指令碼可用於迴圈遍歷以下測試場景。
輸入錯誤的使用者名稱和密碼 – 登入失敗
輸入錯誤的使用者名稱和密碼 – 登入失敗
輸入空白使用者名稱和密碼 – 登入失敗
等等…
資料驅動測試最佳實踐
以下是資料驅動測試的最佳測試策略 -
在整個資料驅動測試過程中使用真實資料是極好的。
測試流的路由必須在測試指令碼中進行編碼。
使用有用的資料來為虛擬 API 提供動力。
資料可用於生成靈活的斷言。
正向和負向測試結果都是可能的。
用於安全性和可靠性的資料驅動功能測試
資料驅動測試的好處
資料驅動提供了許多好處,其中一些如下 -
在迴歸測試期間,可以使用多組資料值測試應用程式。
測試資料和驗證資料可以組合到一個與測試用例邏輯不同的檔案中。
根據工具的不同,測試指令碼可以儲存在中央資料庫中。這使得文字易於理解、保留和管理。
活動和操作可以在多個測試中重複使用。
某些技術會自行建立測試資料。當需要大量隨機測試資料時,這很有用,因為它可以節省時間。
資料驅動測試可用於開發的任何階段。資料驅動測試問題通常會合併到一個過程中。但是,它可以在多個測試用例中使用。
允許開發人員和測試人員將其測試用例/指令碼的邏輯與測試資料分開。
可以多次執行相同的測試用例,這有助於減少測試用例和指令碼的數量。
修改測試指令碼不會影響測試資料。
資料驅動測試的缺點
以下是資料驅動自動化測試過程的一些缺點 -
測試的質量取決於應用團隊的自動化技能。
在測試大量資料時,資料驗證是一項耗時的操作。
由於資料驅動測試需要大量編碼,因此維護是一項重大挑戰。
需要高階的技術專業知識。測試人員可能需要學習全新的指令碼語言。
將有更多文件。指令碼管理、測試基礎設施和測試結果是最常見的主題。
要生成和維護資料檔案,需要使用文字編輯器(如記事本)。
總結
資料驅動是一個測試自動化框架,它以表格或電子表格的形式儲存測試資訊。
在資料驅動測試自動化框架中,輸入資料可以備份到一個或多個數據源中,例如 xls、XML、csv 和資料庫。
為每個資料集建立唯一的測試是一項耗時且勞動密集型的任務。資料驅動測試框架透過將資料與功能測試分開儲存解決了此問題。
建議在資料驅動測試中使用真實資料。
在迴歸測試期間,它涉及使用多組資料值測試應用程式。
此策略的缺點在於它依賴於實施團隊的自動化能力。