敏捷中的端到端測試


當今敏捷流行時代,大多數應用程序架構都是采用面向服務的體系結構設計的。因而,應用程序與可以在應用程序環境之外的許多子系統或者服務互連。如果任何子系統出現故障,都可能導致整個應用程序陷入癱瘓。

為了確保一切正常,我們需要從頭到尾(端到端)測試應用程序的整個流程。

端到端測試主要用於兩個目的:

  • 測試整個應用程序的主要業務組件,例如與其他服務、接口、數據庫、網絡和第三方應用程序進行數據交換。
  • 要創建一個盡可能接近線上的場景並測試滿意的流程,以便測試人員可以模擬真實用戶和環境並避免任何應用程序異常。

為什么需要端到端測試

在每個沖刺中,開發團隊和測試團隊都專注於應用程序中使用的所有集成服務中的單個服務。大量微服務和子系統的功能和較短的測試時間會讓他們有可能錯過了子系統或服務中存在的隱患。

因此,質量檢查小組必須確保單個服務中的特定更改不會影響整個工作流程。

端到端測試與傳統測試

傳統測試包括單元測試、集成測試、系統測試、驗收測試。但是端到端測試是在系統測試之后開始的。有時系統/單元/集成測試端到端測試之間區別不大,有時候很難界定,但是這些完全不同。

這是一個簡單的例子,設我們有一個包含三個子系統的應用程序:搜索訂購支付

在當前的沖刺中,支付子系統中的需求規范更改如下:添加新的支付選項。因此,根據要求,系統測試將僅處理與新添加的付款選項相關的功能。

但是端到端測試將具有從搜索到付款(帶有新添加的付款選項)以及訂單確認的場景。端到端測試的范圍,復雜性和維護性高於單元和集成測試。

因此,在准備測試用例和自動化測試腳本,測試人員最好先了解與完整的應用架構,這樣它會很容易界定的覆蓋范圍。

誰進行端到端測試

端到端測試應由對應用程序有深入了解並了解產品架構的測試人員執行。除了測試人員外,業務人員、營銷人員、內測用戶甚至技術經理都是進行端到端測試的理想人選。

端到端測試方法

水平端到端測試

它貫穿業務工作流程的每個階段,並確保功能需求文檔與開發的應用程序相對應。

水平的端到端測試從頭到尾通過各個應用程序驗證每個工作流,以確保每個相互關聯的過程正常工作。通常這種類型的測試會在發布周期結束時並在穩定的環境中進行。通過這種方法,測試可以在功能部分獲得更多的覆蓋,但是只有在所有版本更改都完全實現后才能執行。

垂直端到端測試

此方法是指分層測試,測試按分層的順序進行。垂直測試用於分別徹底地測試每個組件,它是測試生命周期的一部分。執行此操作的最常見方法是BDDTDDCI/CD

實現此目標的最佳方法是對每個組件執行單元測試,然后對API集成UI層執行測試。通過這些工作,我們可以對核心代碼進行大量測試。由於可以分階段實施,因此很容易找到每個階段的BUG

端到端測試步驟

這些是端到端測試必不可少的步驟:

  • 需求分析:全面分析需求,並涵蓋端到端工作流程中的主要業務組件。
  • 環境設置:設置測試環境時要牢記生產環境的詳細信息。就軟件和硬件要求而言,請嘗試使其與產品相似。
  • 子系統:確保所有子系統都是端到端工作流的一部分。
  • 測試用例:設計具有最大覆蓋范圍的測試用例,並添加測試數據以測試常見的用戶場景。專注於高優先級的功能,並設計更復雜的測試用例進行驗證。
  • 執行:執行整個端到端測試套件,然后分析結果。永遠不要忘記按正確的順序運行套件。如果需要,請在多個設備和系統中中執行端到端場景。
  • 維護:由於端到端測試包含整個應用程序,因此測試用例比功能測試用例更為復雜。系統的每個組件都必須進行測試,這會增加故障百分比。執行的結構和順序在端到端測試中至關重要。首先進行單元測試和集成測試以解決最初的錯誤。一旦開始端到端測試,就可以在高風險的用戶場景下同時運行冒煙和健全性測試。

提高端到端測試效率

  • 嘗試以最大的覆蓋范圍自動化端到端測試用例。
  • 將端到端自動化套件與冒煙測試、健全性測試和驗收測試分開。
  • 在任何沖刺版本發布之前執行端到端套件,以確保應用程序的正常運行按預期進行,並且新的更改不會對產品的子系統產生任何影響。
  • 使用諸如Jenkins之類的任何工具將測試套件與CI/CD管道集成在一起。
  • 由於測試套件需要花費一些時間來執行,因此創建Jenkins任務並將其安排在晚上,以便可以在工作時間內分析所有失敗的測試用例。
  • 端到端測試經常也確實包含一些跨瀏覽器和並行測試,因此在這種情況下,請嘗試在Docker中使用Selenium Grid
  • 在運行自動化套件時,需要創建一個接近生產環境,並且需要避免任何環境級別的問題。

結論

端到端的目標是驗證系統與功能流程的集成。因此在測試任何應用程序時,必須注意用戶界面或表示層不是唯一要關注的領域,但應用程序行為背后的基礎數據、流程和邏輯也需要進行驗證。連接的系統和集成在前端、后端、功能和集成方面均同等重要。


公眾號FunTester首發,原創分享愛好者,騰訊雲和掘金社區首頁推薦,知乎七級原創作者,歡迎關注、交流,禁止第三方擅自轉載。

FunTester熱文精選


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM