分層測試(五):端到端測試

分層測試系列文章

https://www.cnblogs.com/yuxiuyan/tag/分層測試/

1. 什麼是端到端測試

端到端測試(End-To-End Testing, 簡稱E2E測試)是一種從頭到尾測試整個軟件產品以確保應用程序流程按預期運行的技術。它定義了產品的系統依賴性,並確保所有集成部分按預期協同工作。

端到端測試的主要目的是通過模擬真實用戶場景並驗證被測系統及其組件的集成和數據完整性,主要從最終用戶的體驗進行測試。

2. 端到端測試的模型

在我們當前的業務實踐中,端到端測試由測試同學主導編寫,用例代碼和業務模塊獨立倉庫管理。

下面按照用戶使用銀行卡申購指數基金爲例,說明端到端測試的依賴關係:

可以看到,端到端測試的用例模塊是跟業務模塊獨立存在的,並且邏輯也比集成測試用例和接口測試都要複雜,通過模擬真實用戶行爲、打通系統全週期的測試方式,來驗證系統的全鏈路流程。

3. 端到端測試的優點

  1. 擴大測試覆蓋範圍
  2. 確保應用程序的正確性
  3. 縮短髮布時間
  4. 降低成本
  5. 檢測Bug
  6. 通過添加比其他測試方法(如單元和功能測試)更詳細的測試案例,幫助團隊擴大他們的測試範圍。
  7. 通過運行基於終端用戶行爲的測試用例,確保應用程序的正確執行。
  8. 幫助發佈團隊縮短上市時間,允許他們自動化關鍵用戶路徑。
  9. 通過減少測試軟件的時間,降低構建和維護軟件的總體成本。

4. 端到端測試的挑戰

端到端測試也不是萬能的,任何收益必然伴隨着成本。端到端測試的挑戰如下:

4.1 編寫耗時長

端到端測試需要對產品服務流程有完整的瞭解才能編寫測試用例,因此編寫的耗時很長。如果你的產品屬於大型產品,那用戶在產品中就有很多的瀏覽途徑。我們不能針對每個路徑進行測試。
所以,通常做法是更頻繁地使用單元測試、接口測試,只對最高優先級的用戶工作流使用端到端測試。

4.2 測試用例設計難度大

因爲端到端測試是模擬用戶的真實行爲,因爲在設計這些測試用例時就需要考慮多許多因素。
比如,一個在多瀏覽器運行的web程序,每個瀏覽器都有不同的規範。這意味着我們需要針對不同瀏覽器編寫測試。時間成本很高。
在開發過程中,不能依賴端到端測試來快速尋找代碼反饋,而是應該使用單元測試和接口測試。

4.3 容易終端且難以維護

端到端測試因爲要走完完整流程,流程長,涉及系統多,非常容易中斷,用例的前置依賴也非常多,這些都強依賴一個穩定的服務測試環境。整體維護成本非常高。

4.4 站在用戶角度

用戶不是在體驗功能,而是通過產品解決他們的某些問題。所以端到端測試應該側重於如果有效有效地解決用戶問題。
並不是所有的開發團隊都詳細瞭解用戶意圖的。所以在開發期間就必須儘快部署,快速收集用戶反饋。

5. 端到端測試的最佳實踐

要進行端到端測試,遵循以下概述的做法至關重要,以確保測試順利進行和成本可控。

5.1 優先考慮最終用途

  1. 模擬用戶:創建測試用例時,像用戶一樣進行測試。瞭解第一次使用該應用程序的人的心態。
  2. 易用性:是否容易找到所有選項?特徵有標註嗎?用戶能否通過兩步或三步得到他們想要的東西?
  3. 文檔先行:使用有助於闡明用戶觀點的驗收測試文檔和用戶故事,相應地設計測試用例。
  4. 考慮投入產出:將 E2E 測試重點放在失敗會導致最大問題的應用程序功能上。從這些特性開始,設計更精細的測試用例來驗證它們。

5.2 避免異常測試

E2E 測試最適合用於測試常見的用戶場景。對於特殊的用戶場景,使用單元測試或接口測試。

5.3 維護整體用例的代碼結構

  1. 由於 E2E 測試涵蓋整個應用程序,因此測試用例必然很複雜。
  2. 每個系統組件都必須進行測試,這增加了故障點以及調試每個異常的難度。
  3. 結構和組織在 E2E 測試中至關重要。
  4. 通過單元測試和接口測試等底層測試消除簡單的錯誤。

5.4 優化環境和清理機制

  1. 確保測試環境隨時可以開始測試。
  2. 測試完成後,務必清理測試數據,以便環境恢復到原始狀態,從而準備好再次進行測試。

鑑於端到端測試的重要性,需要從項目一開始就對其進行規劃。端到端測試最好手動進行,因爲它允許測試人員設身處地爲用戶着想。如果需要自動化測試,最好將其限制在只需要重複操作的低風險功能上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章