什麼是SOA測試?教程及示例


SOA (面向服務的架構) 測試

SOA測試是對SOA架構風格的測試。在這種測試中,軟體元件設計為透過通訊協議(通常透過網路)進行通訊。它是服務生命週期管理的一個重要方面,因為它能夠解決多個SOA服務實現中服務的質量的多個方面。

這是一項複雜的測試,因為複合軟體有很多活動部件和互連,這給測試帶來了挑戰。此測試驗證軟體的整個多層架構。它測試一組遺留應用程式、定製元件或第三方元件。

SOA

這是一種整合業務應用程式和流程以滿足業務需求的方式。它賦予業務流程敏捷性和靈活性。對流程或軟體的任何更改或修改都可以定向到特定元件,而不會影響整個系統。在SOA中,軟體開發人員要麼開發要麼購買稱為“服務”的程式。

服務

服務是應用程式或業務流程的功能單元。它可以被另一個應用程式或業務流程重複使用。它們易於組裝和配置。它們可以被認為是構建塊。它們可以構建任何型別的應用程式或軟體。此外,它們可以輕鬆地新增到或從應用程式或業務流程中刪除。服務主要由它們執行的功能定義。

Web服務

Web服務是獨立的軟體元件,可以在網上釋出、查詢和使用。Web服務透過網際網路進行通訊。

  • 服務提供商在網際網路上釋出服務或軟體。

  • 使用者在Web服務登錄檔中搜索特定的Web服務。

  • 然後,返回URL(統一資源定位符)和WSDL(Web服務描述語言)。使用它們,服務提供商與請求者透過SOAP訊息進行通訊。

  • 當用戶呼叫Web服務時,會建立到提供商的HTTP連線。生成SOAP訊息以指示提供商呼叫請求的Web服務邏輯。

  • 提供商以SOAP訊息的形式接收響應,該訊息嵌入到HTTP響應中。此響應是資料格式,使用者應用程式可以讀取和理解。

SOA測試

SOA包含許多技術。基於SOA的應用程式具有不同的鬆散耦合的服務。SOA測試強調以下3個系統層:

  • **服務層 —** 它包括服務,系統公開的服務從業務功能獲得。例如,一個健康應用程式包括體重追蹤器、血糖追蹤器和血壓追蹤器。此服務層包含以下服務,這些服務從資料庫獲取各自的資訊:體重追蹤器服務、血糖追蹤器服務、血壓追蹤器服務和登入/註冊服務。

  • **流程層 —** 此層包括流程,它是作為一項功能一部分的服務集合。這些流程可能是UI的一部分,例如搜尋引擎,或ETL工具的一部分。此層主要強調UI和流程。體重追蹤器的UI以及UI和資料庫的整合是主要目標。我們考慮以下功能:新增新資料、更新現有資料、構建新追蹤器和刪除資料。

  • **消費者層 —** 此層包括UI。基於此級別,SOA軟體測試分為以下3個級別:

    • 服務級別

    • 介面級別

    • 端到端級別

  • 對於測試設計和測試執行,分別使用自頂向下方法和自底向上方法。

SOA測試策略

測試計劃方法

  • SOA測試人員應該完全理解軟體的架構。

  • 軟體必須分解成更小的獨立服務。

  • 軟體結構必須組織在三個元件下:資料、服務和前端應用程式。

  • 應仔細分析元件,並應概述業務情況。

  • 這些業務情況必須分為常見情況和特定於應用程式的情況。

  • 必須建立和維護可追溯性矩陣,並且所有測試用例都必須追溯到業務情況。

測試執行方法

  • 基於業務情況的資料庫測試

    • 分析與系統相關的業務的不同方面。

    • 根據以下內容的整合來制定情況:i)軟體的Web服務,ii)Web服務和軟體。

    • 根據上述情況設定資料。

    • 必須以覆蓋端到端情況的方式設定資料。

  • 存根

    • 建立虛擬介面來測試服務。

    • 透過這些虛擬介面提供輸入,並且可以驗證輸出。

    • 當軟體使用介面連線到未經測試的外部服務時,我們可以在整合測試期間建立存根。

  • 迴歸測試

    • 當有多個版本釋出時,對軟體進行此測試,以確保系統的穩定性和可用性。

    • 建立一個廣泛的迴歸測試集,涵蓋構成軟體重要組成部分的服務。

    • 此集合可以在流程的多個版本中重複使用。

  • 服務級別測試

    • 此測試測試元件的功能、安全性和效能以及互操作性。首先,獨立測試每個服務。

  • 功能測試 對每個服務執行此測試

    • 確保服務對請求返回正確的響應。

    • 對於帶有不正確資料、錯誤資料等的請求,會收到正確的錯誤。

    • 評估服務需要在執行時執行的操作的每個請求和響應。

    • 每當伺服器、客戶端或網路級別出現錯誤時,都應驗證故障訊息。

    • 檢查響應並確定它們是否採用正確的格式。

    • 確定從響應接收的資料是否與請求的資料相對應。

  • 安全測試 安全測試是SOA應用程式服務級別測試不可或缺的一部分,因為它確保其安全性。安全測試期間涵蓋以下內容:

    • Web服務必須遵循的行業標準,由Web服務安全測試確定。

    • 必須準確執行的安全措施。

    • 文件上的資料加密和數字簽名。

    • 驗證和授權。

    • 必須測試XML上的漏洞,例如SQL注入、惡意軟體、XSS、CSRF等。

    • 防止服務攻擊。

  • 效能測試 應該對任何服務執行此測試,因為服務是可重用的,並且許多應用程式可能同時使用同一服務。效能測試考慮以下因素:

    • 應該在極端負載下測試的服務效能和功能。

    • 將服務效能與其整合的應用程式中的單個工作進行比較。

    • 應進行負載測試以驗證響應時間、檢測瓶頸、驗證CPU和記憶體使用情況,以及預測可擴充套件性。

  • 整合級別測試

    • 進行服務級別測試以確保各個服務的正常執行,而不是耦合元件的正常執行。

    • 進行整合測試,重點是介面。

    • 此測試涵蓋所有可能的業務情況。

    • 在此階段再次進行非功能測試。透過安全、合規性和效能測試來確保和維護系統的穩定性。

    • 檢查通訊和網路協議以驗證服務之間資料通訊的一致性。

  • 端到端測試 此測試確保軟體在功能上和非功能上都滿足業務需求。它考慮以下方面:

    • 整合後所有服務都按預期執行。

    • 異常處理。

    • 軟體的UI。

    • 所有元件中的資料流。

    • 業務流程。

SOA測試中的挑戰

  • 服務的介面總是缺乏或短缺。

  • 測試過程貫穿多個系統,因此需要複雜的資料。

  • 應用程式是一組趨於變化的元件。因此,更頻繁地需要回歸測試。

  • 由於多層架構,很難完全隔離缺陷。

  • 難以預測負載,因為該服務用於各種介面。因此,這使得效能測試計劃難以管理。

  • SOA是一組不同的技術。SOA測試需要具備不同技能的人員,最終會增加計劃和執行成本。

  • 由於應用程式是多個服務的整合,因此安全測試也難以執行。此外,驗證也相當複雜。

SOA測試工具

  • SOAP UI − 這款開源工具用於服務測試和API測試。它是一個桌面應用程式,支援許多協議,例如SOAP、REST、HTTP、JMS、AMF、JDBC等。它有助於開發、檢查和呼叫Web服務。SOAP UI還用於負載測試、自動化測試和安全測試。它帶有內建的報告工具。

  • iTKO LISA − 此產品套件為分散式系統的功能測試提供解決方案。它可用於迴歸測試、整合測試、負載測試和效能測試。它還用於設計和執行測試用例。

  • HP Service Test − 這是一款功能測試工具,相容UI和共享服務測試。它可以透過單個指令碼實現功能測試和效能測試。它與HP QC整合。它可以管理大量的服務和資料。它支援透過模擬JEE、AXIS和DotNet環境進行互操作性測試。

  • Parasoft SOA Test − 此分析工具套件是為API和API測試而開發的。它支援Web服務、REST、MQ、JMS、TIBCO、HTTP、XML等。它可以進行功能測試、整合測試、迴歸測試、安全測試和效能測試。存根可以透過Parasoft Virtualize建立。

更新於:2021年9月24日

2K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.