什麼是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建立。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP