[敏捷開發實踐] 端到端測試你瞭解多少?

端到端測試你瞭解多少?

端到端測試是一種軟件測試方法,用於從開始到結束測試應用程序流。此測試的目的是模擬真實的用戶場景,驗證被測系統及其組件的集成和數據完整性。

它自始至終都是在實際場景下執行的,比如應用程序與硬件、網絡、數據庫和其他應用程序的通信。

執行此測試的主要原因是確定應用程序的各種依賴關係,並確保在各個系統組件之間傳遞準確的信息。它通常在任何應用程序的功能和系統測試完成後執行。

End-to-end testing is a Software testing methodology to test an application flow from start to end. The purpose of this testing is to simulate the real user scenario and validate the system under test and its components for integration and data integrity.

It is performed from start to finish under real-world scenarios like communication of the application with hardware, network, database and other applications.

The main reason for carrying out this testing is to determine various dependencies of an application as well as ensuring that accurate information is communicated between various system components. It is usually performed after the completion of functional and system testing of any application.

 

端到端測試是軟件開發生命週期(SDLC)中使用的一種方法,用於在類似產品的環境下測試應用程序的功能和性能,以及用於複製實時設置的數據。目標是從開始到結束模擬真實的用戶場景。該測試的完成不僅是爲了驗證被測系統,而且是爲了確保其子系統的工作和行爲符合預期。

今天的軟件變得越來越複雜。應用程序構建在子系統的層和整個網絡上,包括UI和API層、外部數據庫、網絡,甚至第三方集成。當一個組件失敗時,整個產品也會失敗,這使得每個組件的穩定性對於應用程序的成功至關重要。這意味着很明顯需要測試整個應用程序,從開始到結束-在API和UI層。端到端的測試應該使用自動化測試和手動測試策略來運行——允許您的團隊最大化覆蓋率,同時以探索的方式發現新的bug。


爲什麼需要端到端測試?

現在軟件系統包括其與多個子系統的互連。這使得現在的軟件系統成爲一個非常複雜的系統。

這些子系統可以在同一個組織內,或者在許多情況下也可以是不同組織的子系統。此外,這些子系統可能與當前系統有些相似或不同。因此,如果任何子系統出現任何故障或故障,都可能對整個軟件系統產生不利影響,導致其崩潰。

這些主要風險是可以避免的,並且可以通過這種類型的測試來控制:

  • 檢查並執行系統流程驗證。
  • 增加軟件系統涉及的所有子系統的測試覆蓋範圍。
  • 檢測子系統的任何問題,從而提高整個軟件系統的生產率。

以下是端到端流程中包含的少數活動:

  • 對執行此測試的需求的徹底研究。
  • 測試環境的正確設置。
  • 對硬件和軟件需求的深入研究。
  • 所有子系統及涉及的主要軟件系統的說明。
  • 登記所有相關係統和子系統的角色和職責。
  • 本測試所用的測試方法以及所遵循的標準、及其說明。
  • 測試用例的設計以及需求矩陣的跟蹤。
  • 記錄或保存每個系統的輸入和輸出數據。

端到端測試的優點

進行端到端測試將幫助您確保您的軟件已準備好生產,並避免發佈後的風險。這個過程對軟件發佈成功至關重要,原因如下:

  • 確認應用程序運行狀況:端到端測試將驗證軟件在各個級別(從前端到後端以及在多個系統上)的功能,並提供跨不同環境的性能透視圖。
  • 擴展測試覆蓋率:通過在測試過程中合併許多不同的子系統,可以有效地擴展測試覆蓋率,並創建以前未考慮過的其他測試用例。
  • 檢測錯誤並提高應用程序的生產效率:在端到端測試中,軟件通常在每次迭代後都要進行測試,這意味着您將能夠更快地發現和修復任何問題。這將減少錯誤進一步進入測試過程(以及生產)的機會,從而確保應用程序工作流無縫運行。
  • 減少測試工作和成本:在減少bug、故障和每個步驟的全面測試的情況下,端到端測試還將減少重複測試的需要,並最終減少與重複測試相關的成本和時間。

端到端測試的方法

1. 水平測試(Horizontal Test):

這種方法很常用。它在多個應用程序的上下文中水平發生。這種方法很容易出現在單一的ERP(企業資源計劃)應用中。以在線訂購系統的基於web的應用程序爲例。整個過程將包括帳戶、產品的庫存狀態以及發貨細節。

2. 垂直測試(Vertical Test):

在這種方法中,任何應用程序的所有事務都會從開始到結束進行驗證和評估。應用程序的每一層都從上到下進行測試。以一個使用HTML代碼訪問web服務器的基於web的應用程序爲例。在這種情況下,需要API根據數據庫生成SQL代碼。所有這些複雜的計算場景都需要適當的驗證和專門的測試。因此,這種方法要困難得多。

“白盒測試”和“黑盒測試”都與此測試相關。或者換句話說,我們可以說,這是白盒測試和黑盒測試的結合。根據正在開發的軟件類型,在不同的級別上,測試技術(即白盒測試和黑盒測試)都在需要時使用。基本上,端到端測試執行任何軟件或程序的功能和體系結構方法,以驗證系統功能。

測試人員喜歡端到端的驗證,因爲從用戶的角度和在真實場景中編寫測試用例可以避免兩個常見的錯誤:

  • “遺漏一個bug”
  • “編寫不驗證真實場景的測試用例”。

這爲測試人員提供了巨大的成就感。

下面列出了一些在設計用於執行此類測試的測試用例時應牢記的準則:

  • 測試用例應該從最終用戶的角度設計。
  • 應重點測試系統的一些現有功能。
  • 創建多個測試用例應該考慮多個場景。
  • 應該創建不同的測試用例集,以關注系統的多個場景。

當我們執行任何測試用例時,與此測試類似。如果測試用例是“通過”的,也就是說我們得到了預期的輸出,那麼據說系統已經成功地通過了端到端的測試。同樣,如果系統沒有產生所需的輸出,那麼需要重新測試一個測試用例,同時考慮到失敗的區域。


端到端測試(E2E)與系統測試(System Test)的區別

其實這兩個數據放在一起比較就像在比較水果和顏色一樣,是不同類的事物在比較。

我們知道測試級別(Test Level)劃分爲:單元測試(Unit Test)、集成測試(Integration Test)、系統測試(System Test)和用戶確認測試(UAT,User Acception Test)

而端到端測試(End to End Test)是一種測試方法。就像探索性測試(Explore Testing)和滲透測試(Penetration Test)一樣,這些都是測試方法。

換言之,E2E測試始終是系統測試,但系統測試不一定是E2E測試。

 

系統測試(System Testing)是一種測試級別(Test Level),它包括一系列不同的測試,其目的是對集成系統進行完整的測試。系統測試基本上是黑盒測試的一種形式,從用戶的角度出發,將重點放在軟件系統的外部工作上,並將實際情況作爲考慮因素。

系統測試包括:

  • 測試完全集成的應用程序,包括主系統。
  • 確定組件之間以及系統內部的交互。
  • 根據提供的輸入驗證所需的輸出。
  • 分析用戶在使用應用程序的各個方面時的體驗。

系統測試:您正在測試整個系統,即系統的所有組件,以確保每個組件都按預期運行。這更多的是從功能的角度來檢查需求。

端到端測試:這更多的是關於在更真實的最終用戶場景中通過測試系統的實際流程來驗證系統是否能夠工作正常。用戶能否按預期使用應用程序並且系統正常工作。其實是在測試業務流和數據流。

上面我們已經看到了系統測試的基本描述來理解它。現在,我們來看看“系統測試”和“端到端測試”之間的區別。

端到端測試

End to End Testing

系統測試

System Testing

驗證軟件系統和所有相互連接的子系統。 根據需求文檔中提供的規範,它只是驗證軟件系統。
重點是驗證端到端測試流程。 重點是驗證和檢查軟件系統的特性和功能。
在執行測試時,將考慮所有接口,包括軟件系統的後端進程。 在執行測試時,只考慮功能和非功能區域及其特性進行測試。
端到端測試在任何軟件系統的系統測試完成後執行。 系統測試基本上是在軟件系統集成測試完成後進行的。
在執行端到端測試時,通常首選手動測試,因爲這些測試形式涉及外部接口的測試,有時也很難實現自動化。會使整個過程變得非常複雜。 手動和自動測試都可以作爲系統測試的一部分來執行。

對於任何商業版本的軟件,端到端的驗證都扮演着重要的角色,因爲它在一個完全模仿真實用戶(如網絡通信、數據庫交互等)的環境中測試整個應用程序。

大多數情況下,端到端測試是手動執行的,因爲自動化此類測試用例的成本太高,每個組織都無法承擔。這不僅有利於系統驗證,而且可以被認爲對測試外部集成有用。

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