滕士波+費琪
摘 要: 面向服務架構(SOA)已成為Web分布式系統發展的主要趨勢,越來越多的Web應用軟件通過這種新的軟件架構進行開發。Web服務質量的有效性變得日益嚴峻。WSDL是描述Web服務功能及對外接口的重要文件,給出了依據WSDL生成Web服務的測試方法,首先定義了接口輸入數據的標準模型,通過解析 WSDL 文件生成樹狀結構模型;其次提出了一種依據樹狀結構模型生成各節點間的依賴關系的算法,并通過對依賴關系進行分析并結合等價類劃分及邊界值測試方法生成測試數據;最后通過在 WSDL文件中的Operation 字段增加前置操作及后置操作,產生了操作流,結合生成的測試數據,從而產生面向服務的測試用例。
關鍵詞: Web服務描述語言; 樹狀模型; 節點依賴關系; 操作流
中圖分類號: TN710?34; TP301.6 文獻標識碼: A 文章編號: 1004?373X)2015)22?0037?04
Web 服務以 UDDI,WSDL,SOAP 為核心[1],獨立的服務測試從保證各服務節點的質量出發,測試服務的實現在功能、性能等各方面與發布的服務描述的一致性。為了保證 Web 服務的質量,必須進行詳細的測試,目前,基于 WSDL 生成 Web 服務的測試用例已取得了一定的進展,文獻[2]依據 WSDL 文檔產生測試數據,但只能產生 int,float,double 型的測試數據。文獻[3?5]基于數據類型的抽象模型產生測試數據,僅考慮了簡單類型的測試數據,未考慮復雜類型的測試數據。
該文首先通過對WSDL文件各數據類型進行分析,通過逐步遍歷并解析提取關鍵節點生成T模型;其次依據T模型中的各節點間的關系通過等價類劃分、邊界值等方式生成根節點的測試數據;最后通過對WSDL文件中服務的操作序列進行排序,從而可通過結合操作序列及測試數據生成測試用例,通過執行各測試用例并查看結果是否滿足需求規格說明中規定的功能來驗證服務的有效性。
1 WSDL數據類型模型化
WSDL中的Types是一個數據類型定義的容器,包含了所有在消息定義中需要的 XML 元素的類型定義[6]。數據類型包含3種:內置類型、簡單類型和復雜類型。內置類型由 XML Schema定義,常用的內置類型包含:字符串型、小數型、整數型、布爾型、日期型及時間型;簡單數據類型由用戶自定義,在WSDL中通過
4 測試用例生成
綜上所述,已經知道測試數據的生成方法與服務提供操作流方法,下一步只需將測試數據放置到 operation 中即可,再將此用例放置到 soap 消息中,發送至被測軟件,便可對服務進行自動化測試。通過人工查看服務對每個測試用例的響應結果是否與軟件需求規格說明規定的響應結果一致,若一致,則此用例通過;若不一致,通過對服務進行分析,查找不一致的原因,對待測軟件進行修改,并重新執行該用例,保證服務響應結果與軟件需求規格說明保持一致。
5 結 語
本論文通過對服務的描述文件 WSDL 進行解析,生成樹狀結果模型,分析各節點間的依賴關系,生成測試數據,通過對WSDL 文件中的操作流進行分析,產生操作序列,依據操作序列及測試數據生成測試用例,從而更充分地對面向服務架構的軟件進行測試。
參考文獻
[1] 周彥暉,鄒顯春,張為群.XML與Web數據集成及技術實現[J]. 西南師范大學學報:自然科學版,2001,26(3):255?259.
[2] 姜瑛,辛國茂,單錦輝,等.一種 Web 服務的測試數據自動生成方法[J].計算機學報,2005,28(4):568?577.
[3] HANNA S, MUNRO M. An approach for specification?based test case generation for web services [C]// 2007 IEEE ACS International Conference on Computer Systems and Applications. Washington: IEEE, 2007: 16?23.
[4] JIANG Y. A method of automated test data generation for web service [J]. Chinese journal of computers, 2005, 4(28): 12?15.
[5] BAI X, DONG W, TSAI W, et al. WSDL?based automatic test case generation for web service testing [C]// Proseedings of the 2005 IEEE International Workshop on Service?Oriented System Engineering. China: IEEE, 2005: 215?220.
[6] W3C Recommendation. Web services description language (WSDL) Version 2.0 Part 0: Primer [EB/OL]. [2007?06?26]. http://www.w3.org/TR/2007/REC?wsdl20?primer?20070626.