滕士波+費(fèi)琪
摘 要: 面向服務(wù)架構(gòu)(SOA)已成為Web分布式系統(tǒng)發(fā)展的主要趨勢,越來越多的Web應(yīng)用軟件通過這種新的軟件架構(gòu)進(jìn)行開發(fā)。Web服務(wù)質(zhì)量的有效性變得日益嚴(yán)峻。WSDL是描述Web服務(wù)功能及對外接口的重要文件,給出了依據(jù)WSDL生成Web服務(wù)的測試方法,首先定義了接口輸入數(shù)據(jù)的標(biāo)準(zhǔn)模型,通過解析 WSDL 文件生成樹狀結(jié)構(gòu)模型;其次提出了一種依據(jù)樹狀結(jié)構(gòu)模型生成各節(jié)點(diǎn)間的依賴關(guān)系的算法,并通過對依賴關(guān)系進(jìn)行分析并結(jié)合等價類劃分及邊界值測試方法生成測試數(shù)據(jù);最后通過在 WSDL文件中的Operation 字段增加前置操作及后置操作,產(chǎn)生了操作流,結(jié)合生成的測試數(shù)據(jù),從而產(chǎn)生面向服務(wù)的測試用例。
關(guān)鍵詞: Web服務(wù)描述語言; 樹狀模型; 節(jié)點(diǎn)依賴關(guān)系; 操作流
中圖分類號: TN710?34; TP301.6 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X)2015)22?0037?04
Web 服務(wù)以 UDDI,WSDL,SOAP 為核心[1],獨(dú)立的服務(wù)測試從保證各服務(wù)節(jié)點(diǎn)的質(zhì)量出發(fā),測試服務(wù)的實(shí)現(xiàn)在功能、性能等各方面與發(fā)布的服務(wù)描述的一致性。為了保證 Web 服務(wù)的質(zhì)量,必須進(jìn)行詳細(xì)的測試,目前,基于 WSDL 生成 Web 服務(wù)的測試用例已取得了一定的進(jìn)展,文獻(xiàn)[2]依據(jù) WSDL 文檔產(chǎn)生測試數(shù)據(jù),但只能產(chǎn)生 int,float,double 型的測試數(shù)據(jù)。文獻(xiàn)[3?5]基于數(shù)據(jù)類型的抽象模型產(chǎn)生測試數(shù)據(jù),僅考慮了簡單類型的測試數(shù)據(jù),未考慮復(fù)雜類型的測試數(shù)據(jù)。
該文首先通過對WSDL文件各數(shù)據(jù)類型進(jìn)行分析,通過逐步遍歷并解析提取關(guān)鍵節(jié)點(diǎn)生成T模型;其次依據(jù)T模型中的各節(jié)點(diǎn)間的關(guān)系通過等價類劃分、邊界值等方式生成根節(jié)點(diǎn)的測試數(shù)據(jù);最后通過對WSDL文件中服務(wù)的操作序列進(jìn)行排序,從而可通過結(jié)合操作序列及測試數(shù)據(jù)生成測試用例,通過執(zhí)行各測試用例并查看結(jié)果是否滿足需求規(guī)格說明中規(guī)定的功能來驗(yàn)證服務(wù)的有效性。
1 WSDL數(shù)據(jù)類型模型化
WSDL中的Types是一個數(shù)據(jù)類型定義的容器,包含了所有在消息定義中需要的 XML 元素的類型定義[6]。數(shù)據(jù)類型包含3種:內(nèi)置類型、簡單類型和復(fù)雜類型。內(nèi)置類型由 XML Schema定義,常用的內(nèi)置類型包含:字符串型、小數(shù)型、整數(shù)型、布爾型、日期型及時間型;簡單數(shù)據(jù)類型由用戶自定義,在WSDL中通過
4 測試用例生成
綜上所述,已經(jīng)知道測試數(shù)據(jù)的生成方法與服務(wù)提供操作流方法,下一步只需將測試數(shù)據(jù)放置到 operation 中即可,再將此用例放置到 soap 消息中,發(fā)送至被測軟件,便可對服務(wù)進(jìn)行自動化測試。通過人工查看服務(wù)對每個測試用例的響應(yīng)結(jié)果是否與軟件需求規(guī)格說明規(guī)定的響應(yīng)結(jié)果一致,若一致,則此用例通過;若不一致,通過對服務(wù)進(jìn)行分析,查找不一致的原因,對待測軟件進(jìn)行修改,并重新執(zhí)行該用例,保證服務(wù)響應(yīng)結(jié)果與軟件需求規(guī)格說明保持一致。
5 結(jié) 語
本論文通過對服務(wù)的描述文件 WSDL 進(jìn)行解析,生成樹狀結(jié)果模型,分析各節(jié)點(diǎn)間的依賴關(guān)系,生成測試數(shù)據(jù),通過對WSDL 文件中的操作流進(jìn)行分析,產(chǎn)生操作序列,依據(jù)操作序列及測試數(shù)據(jù)生成測試用例,從而更充分地對面向服務(wù)架構(gòu)的軟件進(jìn)行測試。
參考文獻(xiàn)
[1] 周彥暉,鄒顯春,張為群.XML與Web數(shù)據(jù)集成及技術(shù)實(shí)現(xiàn)[J]. 西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2001,26(3):255?259.
[2] 姜瑛,辛國茂,單錦輝,等.一種 Web 服務(wù)的測試數(shù)據(jù)自動生成方法[J].計(jì)算機(jī)學(xué)報(bào),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.