什麼是資料驅動測試?學習建立框架


資料驅動測試

資料驅動測試是一種軟體測試型別,其中測試資料以表格或電子表格的形式維護。資料驅動測試使測試人員能夠提供一個單一的測試指令碼,該指令碼可以對來自表格的所有測試資料執行測試,並期望測試結果返回到同一個表格中。表格驅動測試是引數化測試的另一種名稱。

自動化測試會重放記錄(或計劃)的使用者活動系列,這些活動涵蓋被測應用程式的特定部分。您可以透過使用不同的輸入資訊執行測試來擴充套件訪問範圍。假設您記錄了將資料輸入應用程式表單中的活動。記錄的測試僅涵蓋您在記錄期間輸入的資料,這些資料不太可能在程式中建立錯誤,但某些其他資訊可能會建立錯誤。因此,您必須使用各種資料輸入進行測試,以檢查應用程式是否按計劃針對各種輸入值工作。這種測試方法稱為資料驅動測試。

實際上,您可以記錄大量具有不同輸入資料的測試,但最佳選擇是將資料與測試命令分離。資料驅動測試將從資料儲存(如檔案或資料庫)中接收資料,而不是使用硬編碼值。這種拆分在概念上簡化了測試。具有許多硬編碼值的測試可能難以適應和維護。例如,如果您需要額外的輸入資料,則必須調整測試指令。

資料驅動框架

資料驅動框架是一個自動化測試框架,它從檔案系統讀取資料並將它們儲存在測試指令碼中的變數中。它允許測試人員將正向和負向測試場景組合到一個測試中。資料驅動框架中的資料輸入可以包含在一個或多個數據源中,例如 .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 和資料庫。

  • 為每個資料集建立唯一的測試是一項耗時且勞動密集型的任務。資料驅動測試框架透過將資料與功能測試分開儲存解決了此問題。

  • 建議在資料驅動測試中使用真實資料。

  • 在迴歸測試期間,它涉及使用多組資料值測試應用程式。

  • 此策略的缺點在於它依賴於實施團隊的自動化能力。

更新於: 2021年12月17日

391 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告