楊永國
摘要:Web服務(wù)采用SOA架構(gòu),衍生出了多種軟件測(cè)試技術(shù),其測(cè)試問題也引起了越來越多的關(guān)注。在了解Web服務(wù)及其測(cè)試發(fā)展情況的基礎(chǔ)上,該文對(duì)常用Web服務(wù)軟件測(cè)試技術(shù)展開了分析,并結(jié)合技術(shù)應(yīng)用問題提出了分布式檢測(cè)軟件開發(fā)技術(shù),完成了技術(shù)實(shí)現(xiàn)過程的介紹,為關(guān)注這一話題的人們提供參考。
關(guān)鍵詞:Web服務(wù);軟件測(cè)試技術(shù);分布式檢測(cè)
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)02-0083-02
Web服務(wù)技術(shù)實(shí)際為新型軟件開發(fā)技術(shù),擁有開放標(biāo)準(zhǔn),能夠?qū)崿F(xiàn)跨平臺(tái)操作,所以在電子通訊、信息技術(shù)處理等多個(gè)領(lǐng)域得到了應(yīng)用,將成為未來軟件開發(fā)重要系統(tǒng)架構(gòu)模式。但隨著網(wǎng)絡(luò)的快速發(fā)展,軟件開發(fā)日漸復(fù)雜,采用傳統(tǒng)軟件測(cè)試技術(shù)已經(jīng)無法滿足開發(fā)需求。因此針對(duì)Web服務(wù),還應(yīng)加強(qiáng)軟件測(cè)試技術(shù)研究,以推動(dòng)軟件開發(fā)進(jìn)程。
1 Web服務(wù)及其測(cè)試發(fā)展
作為能夠借助網(wǎng)絡(luò)支持機(jī)器與機(jī)器間互操作的交互軟件系統(tǒng),Web服務(wù)可以采用預(yù)定義的Web標(biāo)準(zhǔn)為各種應(yīng)用程序提供交互功能,采用松耦合的集成模型,保證集成得到的模型能夠滿足異構(gòu)系統(tǒng)的靈活性要求。現(xiàn)階段Web服務(wù)都基于SOA,可以劃分為SOAP和REST,前者能夠使用SOAP接口進(jìn)行消息傳遞,并利用WSDL實(shí)現(xiàn)Web服務(wù)描述,后者利用REST接口實(shí)現(xiàn)信息傳遞,利用通用HTTP方法進(jìn)行資源描述、發(fā)布。為保證服務(wù)正確,需要進(jìn)行Web服務(wù)測(cè)試。從Web服務(wù)測(cè)試發(fā)展情況來看,經(jīng)歷了基本功能測(cè)試、服務(wù)交互測(cè)試和服務(wù)質(zhì)量測(cè)試三個(gè)發(fā)展階段。在最初階段,僅將Web服務(wù)當(dāng)成是單元組成開展單元測(cè)試。進(jìn)入到服務(wù)交互測(cè)試階段,開始進(jìn)行SOA測(cè)試,結(jié)合SOA特性對(duì)服務(wù)綁定功能、異步服務(wù)消消息傳遞功能、SOAP中介能力功能等進(jìn)行測(cè)試[1]。發(fā)展至今,Web測(cè)試開始進(jìn)行服務(wù)動(dòng)態(tài)運(yùn)行能力測(cè)試,具體進(jìn)行服務(wù)組合測(cè)試和版本測(cè)試。從總體來看,Web服務(wù)測(cè)試從單個(gè)服務(wù)靜態(tài)測(cè)試向組合服務(wù)動(dòng)態(tài)運(yùn)行測(cè)試的方向轉(zhuǎn)變,使網(wǎng)絡(luò)連接中斷、服務(wù)失效、調(diào)用序列錯(cuò)誤等Web服務(wù)的特定問題得到了解決。
2 Web服務(wù)軟件測(cè)試技術(shù)分析及實(shí)現(xiàn)
2.1 常用軟件測(cè)試技術(shù)
不同于傳統(tǒng)軟件模塊,Web服務(wù)需要在Web上進(jìn)行部署,封裝性較好,用戶僅能看到對(duì)象提供的功率列表。Web服務(wù)需要采用標(biāo)準(zhǔn)協(xié)議規(guī)范,可集成性較好,能夠?qū)崿F(xiàn)自描述,對(duì)服務(wù)測(cè)試需要滿足標(biāo)準(zhǔn)規(guī)范要求。而Web服務(wù)需要在難以預(yù)知環(huán)境中運(yùn)行,不確定并發(fā)用戶數(shù)量、服務(wù)調(diào)用模式、訪問方式等,將給服務(wù)測(cè)試帶來一定困難。在動(dòng)態(tài)環(huán)境中進(jìn)行服務(wù)發(fā)布、調(diào)用等操作,也造成服務(wù)測(cè)試具有不可預(yù)見性。在分布式環(huán)境中完成消息傳送,則對(duì)信息響應(yīng)提出了較高要求。現(xiàn)階段,Web服務(wù)測(cè)試可以采用多種測(cè)試工具。Web注入為常見測(cè)試軟件,測(cè)試時(shí)需要對(duì)XLM文件進(jìn)行讀取,其中包含基本操作、需要測(cè)試的數(shù)據(jù)信息和測(cè)試服務(wù)URL。通過文件系列分析和計(jì)算,能夠得到測(cè)試結(jié)果和報(bào)告。采用WStese工具,能夠?qū)τ脩糁贫╓eb服務(wù)進(jìn)行激活和驗(yàn)證,并對(duì)測(cè)試結(jié)果進(jìn)行返回。將測(cè)試結(jié)果與預(yù)期結(jié)果進(jìn)行比較,可以確定服務(wù)操作運(yùn)行效果。測(cè)試中,需要將待測(cè)Web服務(wù)操作名稱、地址、對(duì)應(yīng)激活操作輸入系統(tǒng),完成各種數(shù)據(jù)自動(dòng)識(shí)別和分析。采用SoapUI工具,實(shí)際就是將多個(gè)測(cè)試套件組合起來,得到相應(yīng)測(cè)試項(xiàng)目。在套件中,包含多個(gè)測(cè)試用例,每個(gè)用例由發(fā)送請(qǐng)求、接收響應(yīng)、改進(jìn)測(cè)試程序、分析驗(yàn)證等步驟構(gòu)成。應(yīng)用Testmaker工具,能夠利用測(cè)試代理進(jìn)行腳本提供。測(cè)試期間,能夠利用“代理導(dǎo)向”對(duì)WSDL文件進(jìn)行讀取,完成用于測(cè)試代理的基本結(jié)構(gòu)創(chuàng)建,輔助人員對(duì)源代碼進(jìn)行檢查,確定其中缺陷,并通過人工填寫進(jìn)行補(bǔ)充[2]。此外,也可以采用WebServiceTester等工具,能夠?qū)崿F(xiàn)自動(dòng)化測(cè)試用例的生成,完成Web服務(wù)的負(fù)載測(cè)試、回歸測(cè)試、功能測(cè)試等操作,并對(duì)Web服務(wù)進(jìn)行安全測(cè)試和BPEL測(cè)試。
2.2 軟件測(cè)試技術(shù)問題
受SOA架構(gòu)特性影響,Web服務(wù)測(cè)試具有一定難度。SOA是面向服務(wù)軟件的策略,包含服務(wù)提供者、消費(fèi)者和代理商三個(gè)參與者,承擔(dān)服務(wù)發(fā)布、發(fā)現(xiàn)和綁定活動(dòng)。除了服務(wù)的提供者,其他參與者想要獲取服務(wù)只能對(duì)服務(wù)接口進(jìn)行訪問,所以包含服務(wù)測(cè)試人員在內(nèi)的其他人員無法獲得服務(wù)代碼,僅能根據(jù)提供者發(fā)布的服務(wù)描述文檔和規(guī)約開展測(cè)試作業(yè)。在服務(wù)發(fā)布階段,只獲得服務(wù)描述信息,而缺少源代碼,消費(fèi)者和代理商僅能開展黑盒測(cè)試,利用接口文檔完成待測(cè)系統(tǒng)驗(yàn)證。在發(fā)布的文檔中,也僅對(duì)接口語法進(jìn)行了說明,缺少服務(wù)行為信息,還應(yīng)采用語義Web服務(wù)技術(shù)提供豐富語義規(guī)約,才能對(duì)服務(wù)間的互操作性進(jìn)行規(guī)定和實(shí)現(xiàn)。與此同時(shí),形成的服務(wù)運(yùn)行架構(gòu)具有一定獨(dú)立性,測(cè)試人員難以實(shí)現(xiàn)服務(wù)運(yùn)行時(shí)的控制。在組合服務(wù)執(zhí)行過程中,Web服務(wù)具有自適應(yīng)性,導(dǎo)致服務(wù)測(cè)試在離線時(shí)難以對(duì)被激活的服務(wù)進(jìn)行確認(rèn)。而Web具有動(dòng)態(tài)特性,需要完成在線測(cè)試。針對(duì)服務(wù)進(jìn)行大規(guī)模使用,開展在線測(cè)試可能導(dǎo)致服務(wù)崩潰,造成額外測(cè)試開銷產(chǎn)生。在軟件Web服務(wù)無法改變時(shí),更新后還要完成服務(wù)重新測(cè)試。現(xiàn)有Web服務(wù)軟件測(cè)試技術(shù)主要用于執(zhí)行測(cè)試用例和輔助分析評(píng)價(jià)結(jié)果,測(cè)試用例的生成和數(shù)據(jù)模型的構(gòu)建需要依靠手工完成,導(dǎo)致測(cè)試開銷較大。因此從總體來看,采用常規(guī)測(cè)試方法無法滿足Web服務(wù)高效測(cè)試需求,還要尋求有效測(cè)試方法。
2.3 測(cè)試問題解決思路
在Web服務(wù)測(cè)試方面,可以采用形式化規(guī)約方式,完成面向Web服務(wù)軟件系統(tǒng)的自動(dòng)化測(cè)試。針對(duì)軟件系統(tǒng)及其特征,需要采用數(shù)學(xué)定義語言進(jìn)行描述,在系統(tǒng)開發(fā)早期引入系統(tǒng)模型,完成軟件形式化驗(yàn)證,以便從中得到功能性測(cè)試用例,對(duì)檢測(cè)結(jié)果正確性進(jìn)行檢驗(yàn)。而系統(tǒng)服務(wù)器間通訊需要按照Soap進(jìn)行,限制測(cè)試程序能夠使服務(wù)器通信得到規(guī)范,保證信息得到快速、安全傳遞。而服務(wù)器使用為系統(tǒng)化過程,應(yīng)保證其與軟件交互正常。采用分布式檢測(cè)模型對(duì)Web服務(wù)進(jìn)行軟件測(cè)試,能夠?qū)壿媽拥姆植汲绦蜻M(jìn)行應(yīng)用的同時(shí),提出網(wǎng)絡(luò)中心外部協(xié)同程序,保證各服務(wù)在合理平臺(tái)上運(yùn)用不同編程語言進(jìn)行處理,使各處理優(yōu)點(diǎn)能夠得到迅速查找。針對(duì)整個(gè)測(cè)試程序,應(yīng)用各種程序都需要進(jìn)行服務(wù)請(qǐng)求,不僅需要依靠Web服務(wù)正確性驗(yàn)證軟件正確性,需要在服務(wù)器交互上實(shí)現(xiàn)處理。而Web服務(wù)程序錯(cuò)誤的產(chǎn)生,與分布式結(jié)構(gòu)尚未發(fā)展成熟有關(guān),使得測(cè)試期間容易出現(xiàn)小偏差,導(dǎo)致通訊信息交互錯(cuò)誤,造成軟件使用期間出現(xiàn)負(fù)載超量和漏洞。針對(duì)問題進(jìn)行處理,需要保證信息按照正確順序傳遞。實(shí)際消息傳遞期間需要經(jīng)過多個(gè)系統(tǒng),然后達(dá)到使用者手中。一旦中間發(fā)生錯(cuò)誤,將引起系統(tǒng)或軟件崩盤,造成服務(wù)信息錯(cuò)誤。如系統(tǒng)相關(guān)參數(shù)或分布式結(jié)構(gòu)存在沖突,將導(dǎo)致信息出現(xiàn)各種可能,造成系統(tǒng)運(yùn)算量增加,引起系統(tǒng)測(cè)試卡頓或崩潰問題。采用接口技術(shù),在信息到達(dá)接口時(shí)需要完成信息辨別,然后對(duì)相關(guān)操作進(jìn)行響應(yīng)。在程序結(jié)構(gòu)中,則包含大量子程序調(diào)用內(nèi)容。
2.4 測(cè)試技術(shù)改進(jìn)方法
對(duì)Web服務(wù)測(cè)試軟件行為進(jìn)行建模,需要對(duì)軟件與運(yùn)行環(huán)境間的交互進(jìn)行模擬,對(duì)軟件系統(tǒng)接口進(jìn)行識(shí)別,完成所有可能輸入序列的構(gòu)建。構(gòu)建的行為模型被稱之為測(cè)試模型,需要結(jié)合模型開發(fā)難易程度、測(cè)試用例信息包含程度等進(jìn)行選擇。實(shí)際在Web服務(wù)分布式軟件測(cè)試系統(tǒng)建立時(shí),需要將軟件測(cè)試重點(diǎn)放在服務(wù)器間通信上,以便實(shí)現(xiàn)服務(wù)總體的抽象化和圖形化處理,幫助用戶直觀發(fā)現(xiàn)通訊期間信息表達(dá)錯(cuò)誤。系統(tǒng)包含管理層、數(shù)據(jù)層,數(shù)據(jù)層能夠?qū)π枰{(diào)用的程序進(jìn)行獲取,管理層可以完成與通訊相關(guān)的信息進(jìn)化與抽離,使數(shù)據(jù)模型得到充填,以便實(shí)現(xiàn)系統(tǒng)通訊關(guān)鍵詞的精確控制。在合理?xiàng)l件下對(duì)整個(gè)服務(wù)進(jìn)行重演,用戶可以充分利用控制程序完成相關(guān)內(nèi)容修改,實(shí)現(xiàn)通訊過程精確控制和處理。通過虛擬化測(cè)試操作,能夠使負(fù)載測(cè)試等服務(wù)測(cè)試在合理范圍內(nèi)進(jìn)行[3]。在測(cè)試程序中,多采用Master模式,能夠?qū)崿F(xiàn)自身源代碼被控對(duì)象的實(shí)時(shí)監(jiān)測(cè),為外界提供接口的同時(shí),有效進(jìn)行程序檢測(cè)。在測(cè)試模型中,采用分布式程序能夠?qū)崿F(xiàn)雙向測(cè)試,從不同角度滿足服務(wù)檢測(cè)需求。針對(duì)不可控的Web服務(wù),采用該方法能夠?qū)崿F(xiàn)綜合分析,在軟件運(yùn)行中取得良好在線測(cè)試結(jié)果。
2.5 測(cè)試技術(shù)改進(jìn)實(shí)現(xiàn)
結(jié)合上述思路,需要采用差異性分布式檢測(cè)方法進(jìn)行Web服務(wù)測(cè)試問題處理,通過逐一排查確保系統(tǒng)整體性,使軟件檢測(cè)過程中的信息能夠得到有效控制。在實(shí)際分析過程中,需要加強(qiáng)程序特征把握,做出合理診斷。對(duì)測(cè)試過程進(jìn)行控制,需要對(duì)服務(wù)器間通訊記錄進(jìn)行捕捉,完成信息格式分析,確保通訊消息傳播擁有更多控制權(quán),能夠?qū)崿F(xiàn)負(fù)載壓力和信息轉(zhuǎn)發(fā)等測(cè)試,及時(shí)發(fā)現(xiàn)分布式結(jié)構(gòu)錯(cuò)誤。在Web服務(wù)計(jì)算模型中,由于Soap協(xié)議具有便捷性,能夠滿足分布式結(jié)構(gòu)對(duì)信息傳輸速度的要求,實(shí)現(xiàn)測(cè)試步驟簡化,因此能夠使服務(wù)能力和運(yùn)行狀態(tài)得到保障。在各異構(gòu)平臺(tái)之間,可以發(fā)揮消息傳遞協(xié)同作用。在實(shí)際通訊中,能夠使平臺(tái)間限制得到突破,保證通訊效果。利用網(wǎng)絡(luò)傳輸協(xié)議進(jìn)行消息傳送,需要對(duì)常見網(wǎng)絡(luò)協(xié)議進(jìn)行處理。面對(duì)可能出現(xiàn)的形式變化,考慮到網(wǎng)絡(luò)協(xié)議在企業(yè)間通訊存在局限,需要完成Soap協(xié)議改進(jìn),采用適合企業(yè)的通訊機(jī)制。具體來講,就是對(duì)分布式系統(tǒng)結(jié)構(gòu)進(jìn)行精簡,保留基本功能,直接采用pc調(diào)用方式進(jìn)行Web服務(wù)獲取,以便獲得簡短通訊過程,能夠?qū)崿F(xiàn)結(jié)構(gòu)快速回調(diào)[4]。采用消息機(jī)制進(jìn)行進(jìn)程間聯(lián)系的傳遞和接收,能夠在通訊中實(shí)現(xiàn)交互異步,保證通訊的安全性和便捷性。
3 結(jié)論
綜上所述,在Web服務(wù)軟件測(cè)試中,采用常規(guī)測(cè)試工具難以滿足軟件運(yùn)行過程中在線測(cè)試需求,容易導(dǎo)致軟件因開銷過大出現(xiàn)崩潰問題。想要保證測(cè)試結(jié)果準(zhǔn)確性,需要加強(qiáng)分布式檢測(cè)方法的運(yùn)用,對(duì)Web服務(wù)系統(tǒng)服務(wù)器間的通訊進(jìn)行高效檢測(cè),技術(shù)發(fā)現(xiàn)信息傳遞錯(cuò)誤,繼而得到科學(xué)的測(cè)試結(jié)果。
參考文獻(xiàn):
[1] 侯俊,周紅,馬春燕,等.面向WEB服務(wù)的測(cè)試用例自動(dòng)化生成方法[J].西北工業(yè)大學(xué)學(xué)報(bào),2018,36(1):149-155.
[2] 陳龍生.Web服務(wù)軟件測(cè)試技術(shù)的實(shí)現(xiàn)探討[J].科技與創(chuàng)新,2017(18):102,107.
[3] 孫志斌,蒲春俊.Web服務(wù)自動(dòng)化測(cè)試技術(shù)初探[J].化工管理,2017(14):173-174.
[4] 史秋艷.Web服務(wù)自動(dòng)化測(cè)試技術(shù)[J].信息與電腦:理論版,2017(3):135-136.
【通聯(lián)編輯:光文玲】