欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種無需預(yù)期的Web服務(wù)測(cè)試方法

文檔序號(hào):7653522閱讀:167來源:國知局
專利名稱:一種無需預(yù)期的Web服務(wù)測(cè)試方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種面向Web服務(wù)的測(cè)試方法,尤其涉及一種無需預(yù)期的Web服務(wù)測(cè)試方法,屬于Web服務(wù)測(cè)試領(lǐng)域。
背景技術(shù)
SOA(Service Oriented Architecture)定義了 hternet 環(huán)境下松散耦合的、基于標(biāo)準(zhǔn)的、面向服務(wù)的應(yīng)用程序開發(fā)模式。其中,服務(wù)提供者(Service Provider)通過 hternet發(fā)布服務(wù)的接口描述;服務(wù)代理(Service Registry)查詢符合需求的服務(wù);服務(wù)使用者(Service Consumer)使用符合需求的服務(wù)。Web服務(wù)是SOA基于Web的實(shí)現(xiàn),是一個(gè)平臺(tái)獨(dú)立的、松耦合的、自包含的、可編程的應(yīng)用程序,Web服務(wù)的描述、訪問、檢索與發(fā)布基于標(biāo)準(zhǔn)XML(可擴(kuò)展標(biāo)記語言,全稱為Extensible Markup Language)技術(shù)以及一系列的Web技術(shù)標(biāo)準(zhǔn)。這些技術(shù)及標(biāo)準(zhǔn)有效地屏蔽了運(yùn)行環(huán)境的異構(gòu)性,使得Web服務(wù)可以直接部署和運(yùn)行于hternet之上。由于單個(gè)服務(wù)往往無法滿足實(shí)際需求,需要將多個(gè)服務(wù)協(xié)調(diào)與組織起來以支持某個(gè)業(yè)務(wù)過程,將多個(gè)服務(wù)組合起來形成復(fù)合服務(wù)的過程稱為服務(wù)組合。近年來,服務(wù)組合正成為hternet環(huán)境下應(yīng)用程序的主流開發(fā)范型,采用上述服務(wù)組合構(gòu)造而成的軟件系統(tǒng)通常稱為SOA軟件系統(tǒng)。與傳統(tǒng)的軟件相比,SOA軟件系統(tǒng)具有如下幾個(gè)主要特點(diǎn)更高的松散程度S0A 軟件中參與組合的Web服務(wù)是一個(gè)更加獨(dú)立的計(jì)算單元、可以借助hternet直接進(jìn)行訪問,Web服務(wù)之間的耦合度更低。定義與實(shí)現(xiàn)的徹底分離Web服務(wù)通常由定義與實(shí)現(xiàn)兩部分組成,定義與實(shí)現(xiàn)可以分散在不同文件中;Web服務(wù)可以采用不同的編程語言實(shí)現(xiàn),而且 Web服務(wù)的實(shí)現(xiàn)與定義的綁定可以延遲到運(yùn)行時(shí)刻。支持服務(wù)的發(fā)布、注冊(cè)和發(fā)現(xiàn)Web服務(wù)的開發(fā)與使用比任何傳統(tǒng)軟件更加獨(dú)立和開放。上述特點(diǎn)決定了 SOA軟件系統(tǒng)是一個(gè)松耦合系統(tǒng),當(dāng)這樣的系統(tǒng)實(shí)現(xiàn)一些非常重要的業(yè)務(wù)過程,如電子支付業(yè)務(wù)系統(tǒng)、決策與控制系統(tǒng)等,如何保證這類系統(tǒng)的正確性和可靠性,是SOA軟件開發(fā)必須解決的一個(gè)重要問題。軟件測(cè)試是廣泛使用的一種保證軟件正確性和可靠性的方法。由于Web服務(wù)的定義與實(shí)現(xiàn)的徹底分離,參與組合的Web服務(wù)可能來自不同的管理域,服務(wù)使用者無法訪問服務(wù)實(shí)現(xiàn)源代碼,白盒軟件測(cè)試方法不再適用于SOA軟件;由于Web服務(wù)面向動(dòng)態(tài)、開放的環(huán)境,服務(wù)開發(fā)者無法預(yù)計(jì)服務(wù)的所有使用情況,因此只能進(jìn)行有限的覆蓋測(cè)試,無法保證這些Web服務(wù)以松散耦合的方式組合成一個(gè)動(dòng)態(tài)的分布式系統(tǒng)時(shí)還能可靠地工作。SOA軟件的新特點(diǎn),使得SOA軟件的測(cè)試面臨新的問題與挑戰(zhàn)。圍繞著Web服務(wù)測(cè)試的已有研究工作側(cè)重研究Web服務(wù)測(cè)試數(shù)據(jù)的生成與選擇, 并且假設(shè)每個(gè)測(cè)試用例的期望輸出是可知的。然而,預(yù)期(Oracle)問題是長期困擾軟件測(cè)試的基本難題之一。所謂預(yù)期問題,是指在某些情況下測(cè)試人員無法確定程序執(zhí)行的期望結(jié)果或者很難構(gòu)造預(yù)期輸出結(jié)果。由于Web服務(wù)發(fā)布的動(dòng)態(tài)性、運(yùn)行的不確定性與不可控性(無法訪問服務(wù)的實(shí)現(xiàn)細(xì)節(jié)),Web服務(wù)的可測(cè)試性差,對(duì)任意給定的輸入確定相應(yīng)的輸出是否正確更加困難。換言之,測(cè)試SOA軟件時(shí),預(yù)期問題更加突出,當(dāng)預(yù)期不存在時(shí),已有測(cè)試方法用于測(cè)試面向Web服務(wù)的SOA軟件系統(tǒng)時(shí)其有效性將受到很大限制。針對(duì)Web服務(wù)測(cè)試的預(yù)期(Oracle)問題,目前不存在有效的解決方案。一種方法是,基于多版本編程思想假設(shè)有規(guī)格說明相同但實(shí)現(xiàn)不同的一組Web服務(wù),采用一種表決算法將多數(shù)Web服務(wù)的輸出作為預(yù)期輸出。該方法無法應(yīng)用于單個(gè)Web服務(wù)的測(cè)試,而且通過表決途徑產(chǎn)生的預(yù)期并不可靠。另一種方法是蛻變測(cè)試方法,蛻變測(cè)試方法通過檢查程序的多個(gè)執(zhí)行結(jié)果之間的關(guān)系來測(cè)定程序,因?yàn)闊o需構(gòu)造預(yù)期輸出,可有效解決預(yù)期問題。 現(xiàn)有針對(duì)SOA的蛻變測(cè)試方法,首先根據(jù)離線時(shí)通過測(cè)試的測(cè)試用例作為原始測(cè)試用例, 然后基于該原始測(cè)試用例構(gòu)造衍生測(cè)試用例,最后將該原始測(cè)試用例和衍生測(cè)試用例進(jìn)行在線測(cè)試,判斷輸出結(jié)果是否滿足一定的蛻變關(guān)系,如不滿足則可斷定有錯(cuò)誤;又因?yàn)樵械脑紲y(cè)試用例是通過測(cè)試的,所以當(dāng)蛻變測(cè)試發(fā)現(xiàn)錯(cuò)誤時(shí),該錯(cuò)誤是在在線模式下引入的?,F(xiàn)有針對(duì)SOA的蛻變測(cè)試方法中原始測(cè)試用例由離線時(shí)通過測(cè)試的測(cè)試用例生成,在判斷測(cè)試用例是否通過測(cè)試時(shí)實(shí)際上使用了現(xiàn)有需要預(yù)期的方法,即通過判斷上述測(cè)試用例的輸出結(jié)果是否和預(yù)期一致來判斷測(cè)試用例是否通過測(cè)試;因此,現(xiàn)有針對(duì)SOA的蛻變測(cè)試方法包括離線測(cè)試時(shí)需要預(yù)期的方法和在線測(cè)試時(shí)無需預(yù)期的蛻變測(cè)試方法,是一種不徹底的無需預(yù)期的蛻變測(cè)試方法。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種徹底的無需預(yù)期的Web服務(wù)測(cè)試方法。為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案本發(fā)明提供的無需預(yù)期的Web服務(wù)測(cè)試方法,包括如下步驟(1)、構(gòu)造基于Web服務(wù)描述的蛻變關(guān)系,所述蛻變關(guān)系為輸入關(guān)系R與輸出關(guān)系 Rf構(gòu)成的二元組,其中,所述輸入關(guān)系R定義了原始測(cè)試用例與衍生測(cè)試用例之間的關(guān)系, 所述輸出關(guān)系Rf定義了所述原始測(cè)試用例對(duì)應(yīng)的輸出與所述衍生測(cè)試用例對(duì)應(yīng)的輸出之間的關(guān)系;O)、生成衍生測(cè)試用例集合,所述衍生測(cè)試用例由原始測(cè)試用例基于所述輸入關(guān)系R生成,所述原始測(cè)試用例和所述衍生測(cè)試用例統(tǒng)稱測(cè)試用例;(3)、執(zhí)行客戶端驅(qū)動(dòng)的所述測(cè)試用例,獲取Web服務(wù)操作執(zhí)行完畢后返回的執(zhí)行
結(jié)果;(4)、判定所述執(zhí)行結(jié)果是否滿足所述輸出關(guān)系Rf,如果不滿足,則判定所述Web 服務(wù)中存在缺陷。所述步驟(1)中基于Web服務(wù)描述的蛻變關(guān)系構(gòu)造的具體步驟為首先,分析Web 服務(wù)的描述,獲取W^eb服務(wù)的蛻變屬性規(guī)格說明(Metamorphic property specification), 然后再確定蛻變關(guān)系的集合。所述Web服務(wù)的描述包括蛻變屬性功能規(guī)格說明與接口信息;其中,所述接口信息包括名字、類型、消息、端口類型、綁定、端口與服務(wù),所述端口類型包括一組操作,每個(gè)所述操作弓I用一個(gè)輸入消息與輸出消息。所述蛻變屬性包括多條蛻變關(guān)系。所述測(cè)試用例的格式依據(jù)所述接口信息確定。
所述原始測(cè)試用例由已有的測(cè)試用例生成方法產(chǎn)生。已有的所述測(cè)試用例生成方法包括特殊值選取方法、隨機(jī)值選取方法、等價(jià)類劃分方法和迭代測(cè)試方法。所述接口信息包括操作、輸入消息與輸出消息,原始測(cè)試用例與衍生測(cè)試用例的格式由輸入消息確定。所述步驟(3)中的客戶端驅(qū)動(dòng)的Web服務(wù)測(cè)試執(zhí)行的具體方法是,開發(fā)Web服務(wù)的客戶端程序,將原始測(cè)試用例和衍生測(cè)試用例作為輸入消息運(yùn)行被測(cè)Web服務(wù),獲取相應(yīng)的輸出消息,得到測(cè)試結(jié)果。


為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一個(gè)優(yōu)選實(shí)施例的原理圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例, 本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。如圖1所示,本發(fā)明提供的一個(gè)優(yōu)選實(shí)施例的原理圖,以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明?!N無需預(yù)期的Web服務(wù)測(cè)試方法,如圖1所示,包括如下步驟(1)、基于Web服務(wù)描述的蛻變關(guān)系(Metamorphic Relation)構(gòu)造,所述蛻變關(guān)系為輸入關(guān)系R與輸出關(guān)系Rf構(gòu)成的二元組,其中,所述輸入關(guān)系R定義了原始測(cè)試用例與衍生測(cè)試用例之間的關(guān)系,所述輸出關(guān)系Rf定義了所述原始測(cè)試用例對(duì)應(yīng)的輸出與所述衍生測(cè)試用例對(duì)應(yīng)的輸出之間的關(guān)系;O)、基于蛻變關(guān)系的衍生測(cè)試用例集合生成,所述衍生測(cè)試用例由原始測(cè)試用例基于所述輸入關(guān)系R生成,所述原始測(cè)試用例和所述衍生測(cè)試用例統(tǒng)稱測(cè)試用例;(3)、客戶端驅(qū)動(dòng)的Web服務(wù)測(cè)試執(zhí)行,獲取Web服務(wù)操作執(zhí)行完畢后返回的執(zhí)行
結(jié)果;0)、基于蛻變關(guān)系的測(cè)試結(jié)果判定,判定所述執(zhí)行結(jié)果是否滿足所述輸出關(guān)系 Rf,如果不滿足,則判定所述Web服務(wù)中存在缺陷。具體說明如下基于Web服務(wù)的描述,特別是Web服務(wù)的蛻變屬性功能規(guī)格說明,可以獲取蛻變屬性。所述蛻變屬性與Web服務(wù)實(shí)現(xiàn)的具體功能有關(guān),包括多條蛻變關(guān)系。因此,蛻變關(guān)系的選取應(yīng)采用實(shí)例分析的方法。在面向Web服務(wù)的SOA上下文中,由于無法訪問Web服務(wù)實(shí)現(xiàn)的源代碼,只能依據(jù)Web服務(wù)的功能規(guī)格說明的信息構(gòu)造蛻變關(guān)系。蛻變關(guān)系的選取影
5響蛻變測(cè)試的效率,存在一些選擇蛻變關(guān)系的指導(dǎo)方針,包括選取的蛻變關(guān)系(1)應(yīng)盡可能覆蓋核心功能;( 盡可能使原始測(cè)試用例和衍生測(cè)試用例的執(zhí)行結(jié)果不滿足相應(yīng)的蛻變關(guān)系的情形多出現(xiàn),可以針對(duì)易于出錯(cuò)的地方進(jìn)行蛻變測(cè)試,比如在處理邊界上依據(jù)蛻變關(guān)系設(shè)計(jì)測(cè)試用例,這樣可以增強(qiáng)測(cè)試的效率。由于蛻變關(guān)系反映了當(dāng)不同的輸入滿足某種關(guān)系R時(shí)、對(duì)應(yīng)的輸出也應(yīng)滿足某種關(guān)系Rf的特性因此一個(gè)蛻變關(guān)系可以分解為輸入關(guān)系R與輸出關(guān)系Rf構(gòu)成的二元組。其中,輸入關(guān)系R定義了原始測(cè)試用例與衍生測(cè)試用例之間的關(guān)系,輸出關(guān)系Rf定義了原始測(cè)試用例對(duì)應(yīng)的輸出與衍生測(cè)試用例對(duì)應(yīng)的輸出之間的關(guān)系。所述原始測(cè)試用例與所述衍生測(cè)試用例統(tǒng)稱為測(cè)試用例。運(yùn)用上述蛻變關(guān)系獲取原則分析Web服務(wù)的描述,可以得到被測(cè)Web服務(wù)的一組蛻變關(guān)系{MR1,...,MRn}。針對(duì)每個(gè)蛻變關(guān)系MRi,可以產(chǎn)生一組測(cè)試用例集合。首先, 需要確定測(cè)試用例的格式。Web服務(wù)描述的接口信息通常由Web服務(wù)描述語言WSDL(Web Services Description Language的縮寫)提供,與測(cè)試相關(guān)的信息主要包括Web服務(wù)的操作、與每個(gè)操作相關(guān)的輸入消息與輸出消息。其中,原始測(cè)試用例與衍生測(cè)試用例的格式相同,由輸入消息確定。其次,對(duì)于原始測(cè)試用例而言,可以采用已有測(cè)試用例生成方法,如隨機(jī)值選取方法,等價(jià)類劃分方法等產(chǎn)生。所述原始測(cè)試用例可以在所述蛻變關(guān)系構(gòu)造前或者所述蛻變關(guān)系構(gòu)造后由現(xiàn)有測(cè)試用例生成方法單獨(dú)產(chǎn)生。原始測(cè)試用例集合的大小取決于測(cè)試預(yù)算或測(cè)試進(jìn)度。最后,針對(duì)每個(gè)原始測(cè)試用例,依據(jù)所述蛻變關(guān)系MRi中的所述輸入關(guān)系Ri,改動(dòng)原始測(cè)試用例得到相應(yīng)的衍生測(cè)試用例。通過上述步驟產(chǎn)生的測(cè)試用例集合可以存放在一個(gè)獨(dú)立的文件中,也可以存放到被測(cè)Web服務(wù)的WSDL文件中。經(jīng)過上述步驟后,已經(jīng)生成了蛻變測(cè)試用例集合。為了測(cè)試Web服務(wù),首先需要將被測(cè)Web部署到服務(wù)容器中,由容器負(fù)責(zé)管理其生命周期。然后按照WSDL描述的接口格式調(diào)用被測(cè)Web服務(wù)的操作。一般說來,Web服務(wù)實(shí)現(xiàn)一些業(yè)務(wù)邏輯,通常并不提供界面, 為此需要開發(fā)Web服務(wù)的客戶端程序(Client)。該程序?qū)⑸鲜霾襟E得到的測(cè)試用例(包括原始測(cè)試用例集合與衍生測(cè)試用例集合)作為輸入消息調(diào)用Web服務(wù),然后等待Web服務(wù)操作執(zhí)行完畢后返回的輸出消息。測(cè)試實(shí)施時(shí),可以采用人工的方式,也可以采用自動(dòng)的方式。采用人工的測(cè)試方式時(shí),測(cè)試人員通過客戶端程序逐個(gè)輸入測(cè)試用例,觀察測(cè)試結(jié)果; 采用自動(dòng)的測(cè)試方式時(shí),由程序自動(dòng)地從測(cè)試用例集合的文件中提取測(cè)試用例,傳遞給客戶端程序,然后接受并存儲(chǔ)客戶端返回的測(cè)試結(jié)果。如果存在多條蛻變關(guān)系時(shí),測(cè)試的組織可采用如下兩種方式(1)首先執(zhí)行一個(gè)原始測(cè)試用例,然后逐個(gè)執(zhí)行依據(jù)不同蛻變關(guān)系產(chǎn)生的衍生測(cè)試用例,執(zhí)行完全部測(cè)試用例后;選擇另外一個(gè)原始測(cè)試用例,重復(fù)上述過程;( 首先選擇一個(gè)蛻變關(guān)系,然后逐個(gè)執(zhí)行原始測(cè)試用例與衍生測(cè)試用例,執(zhí)行完全部測(cè)試用例后;再選擇另外一個(gè)蛻變關(guān)系,重復(fù)上述過程。借助上述步驟后,執(zhí)行測(cè)試用例集合中的所有測(cè)試用例,可以得到與測(cè)試用例相關(guān)的輸出結(jié)果。輸出結(jié)果的格式由操作相關(guān)的輸出消息確定。為了判定被測(cè)Web服務(wù)中是否存在缺陷,并不需要知道原始測(cè)試用例或衍生測(cè)試用例的正確輸出,而是比較原始測(cè)試用例與衍生測(cè)試用例的輸出結(jié)果是否滿足用于產(chǎn)生測(cè)試用例的蛻變關(guān)系。如果不滿足,則表明被測(cè)的Web服務(wù)中存在缺陷。可見,本發(fā)明的Web服務(wù)測(cè)試方法在測(cè)試用例的構(gòu)造階段和在線測(cè)試階段都無需預(yù)期,是一個(gè)徹底的無需預(yù)期的蛻變測(cè)試方法以下結(jié)合圖1,以測(cè)試采用Web服務(wù)實(shí)現(xiàn)的通用ATM (Automatic Teller Machine) 系統(tǒng)中轉(zhuǎn)帳功能為例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。ATM是由計(jì)算機(jī)控制的持卡人自我服務(wù)型的金融專用設(shè)備。通用ATM系統(tǒng)可適應(yīng)不同銀行的需求,便于各銀行的業(yè)務(wù)擴(kuò)展,支持的主要功能有用戶存款、取款、轉(zhuǎn)賬(包含跨行、異地)、修改密碼等。ATM系統(tǒng)支持的主要業(yè)務(wù)涉及財(cái)富的轉(zhuǎn)移,因此可靠性要求高。 以轉(zhuǎn)帳功能為例,如果系統(tǒng)實(shí)現(xiàn)中存在缺陷,則會(huì)直接造成用戶的經(jīng)濟(jì)損失。另外,轉(zhuǎn)賬功能在電子商務(wù)系統(tǒng)中廣泛使用,實(shí)現(xiàn)轉(zhuǎn)帳功能的Web服務(wù)可能來自第三方開發(fā)組織,如某個(gè)銀行、金融機(jī)構(gòu)、或軟件公司。在測(cè)試這樣的一個(gè)Web服務(wù)時(shí),無法訪問Web服務(wù)實(shí)現(xiàn)的源代碼,因此白盒軟件測(cè)試方法不再適用。此外,由于Web服務(wù)發(fā)布的不確定性與運(yùn)行的不可控性,Web服務(wù)的可測(cè)試性差,針對(duì)給定的輸入確定預(yù)期輸出更加困難。首先,依據(jù)通用ATM系統(tǒng)的規(guī)格說明分析蛻變屬性,獲取蛻變關(guān)系集合。不同銀行對(duì)轉(zhuǎn)帳業(yè)務(wù)有不同的限制與收費(fèi)標(biāo)準(zhǔn)。例如,中國農(nóng)業(yè)銀行規(guī)定每次轉(zhuǎn)帳的最高額度為 50000元,還規(guī)定不同類型的轉(zhuǎn)帳業(yè)務(wù)有不同的收費(fèi)標(biāo)準(zhǔn)(1)同城非跨行不收取手續(xù)費(fèi); (2)同城跨行手續(xù)費(fèi)為轉(zhuǎn)賬金額的0. 5%,最低1元,最高50元;(3)異地不跨行手續(xù)費(fèi)為轉(zhuǎn)賬金額的0. 5%,最低1元,最高50元;(4)異地跨行手續(xù)費(fèi)為轉(zhuǎn)賬金額的1 %,最低1 元,最高50元。依據(jù)這些業(yè)務(wù)規(guī)則的描述,可以得知相應(yīng)的系統(tǒng)實(shí)現(xiàn)中存在一些蛻變關(guān)系。 例如,對(duì)于同樣的轉(zhuǎn)帳額度,異地跨行轉(zhuǎn)帳收取的手續(xù)費(fèi)一定大于等于其它三類轉(zhuǎn)帳類型; 對(duì)于同樣的轉(zhuǎn)帳額度,異地不跨行與同城跨行兩種不同類型的轉(zhuǎn)帳業(yè)務(wù)收取的手續(xù)費(fèi)一定相同。采用Web服務(wù)實(shí)現(xiàn)通用ATM系統(tǒng)時(shí),轉(zhuǎn)帳功能通常由一個(gè)接口實(shí)現(xiàn)。采用WSDL描述的轉(zhuǎn)帳接口如下
<wsdl: operation name="transfer"〉 <wsdl: input message="tns: transferRequest"X/wsdl: input〉 <wsdl: output message=" tns: transferResponse"X/wsdl: output〉 </wsdl: operation><xsd:element name="transferRequest“>
<xsd:sequence〉
<xsd: element name="from" type="xsd: string"X/xsd: element〉 <xsd: element name="to" type="xsd: string"X/xsd: element〉 <xsd: element name="amount" type="xsd: int"></xsd: element〉 <xsd: element name="mode" type="xsd: int"></xsd: element〉 </xsd:sequence〉 </xsd:complexType〉 </xsd:element〉 <xsd:element name="transferResponse" type="xsd: string"> </xsd: element〉其中,‘‘operation”定義了接口的名稱為‘‘transfer”,該操作的輸入消息為 “transf erRequest輸出消息為"transferResponse,,。輸入消;^ “ transfer Re quest “ 由轉(zhuǎn)出帳戶“ from”、轉(zhuǎn)入帳戶“ to ”、金額“amount ”和轉(zhuǎn)帳類型"mode ”組成。輸出消息 “transferResponse,,顯示帳戶的余額,表示為字符串“ string”。通過分析操作的接口描述,可以確定測(cè)試用例的數(shù)據(jù)格式。為了表達(dá)方便,轉(zhuǎn)賬接口的輸入消息用四元組<A,B, P,M>表示。其中,Α:表示轉(zhuǎn)出賬戶的賬號(hào),用10位數(shù)字表示;B 表示轉(zhuǎn)入賬戶的賬號(hào),用10位數(shù)字表示;P 表示A與B賬戶跨行與異地的情況,P = 0表示同城不跨行,P = 1表示同城跨行,P = 2表示異地不跨行,P = 3表示異地跨行;M 表示轉(zhuǎn)賬金額,單位為元,而且必須為整數(shù)。轉(zhuǎn)賬接口的輸出用二元組<ΔΑ,ΔΒ>表示,其中ΔΑ:表示轉(zhuǎn)賬前轉(zhuǎn)出賬戶的余額與轉(zhuǎn)賬后轉(zhuǎn)出賬戶的余額的差;ΔΒ:表示轉(zhuǎn)賬后轉(zhuǎn)入賬戶的余額與轉(zhuǎn)賬前轉(zhuǎn)入帳戶的余額的差。程序?qū)崿F(xiàn)正確的情況下,這樣的設(shè)計(jì)可以使得ΔΑ > 0且ΔΒ > 0。為了表述方便,將原始測(cè)試用例及其輸出表示為<Α,Β,Ρ,Μ>和<ΔΑ,ΔΒ>,衍生測(cè)試用例及其輸出表示為<Α' ,B' ,P' ,M' <ΔΑ' , ΔΒ' >。結(jié)合測(cè)試用例與輸出的格式,轉(zhuǎn)帳接口的一組蛻變關(guān)系描述如下蛻變關(guān)系1 若輸入滿足M' = 2Μ,則輸出滿足ΔΑ < ΔΑ' ^ 2ΔΑ ΔΒ'= 2ΔΒ。
蛻變關(guān)系2若輸入滿足P=1且P' = 2,則輸出滿足ΔΑ'-ΔΒ'=ΔΑ-ΔΒ。
蛻變關(guān)系3若輸入滿足P=0且P' Φ 0,則輸出滿足Δ A'-ΔΒ'> Ak-ΔΒ。
蛻變關(guān)系4若輸入滿足P=3且P' Φ 3,則輸出滿足Δ A'-ΔΒ'^ ΔΑ-ΔΒ。
蛻變關(guān)系5若輸入滿足M'>Μ,則輸出滿足ΔΑ' > ΔΑ且ΔΒ'> ΔΒ。 蛻變關(guān)系6:若輸入滿足A' =B且B' = A (即A、B交換),則輸出滿足 ΔΑ ^ AB'。然后,產(chǎn)生測(cè)試用例集合,首先產(chǎn)生原始測(cè)試用例集合;然后依據(jù)蛻變關(guān)系再由原始測(cè)試用例集合產(chǎn)生衍生測(cè)試用例集合。關(guān)于原始測(cè)試用例集合,可以采用已有的測(cè)試用例生成方法產(chǎn)生,比如特殊值選取方法、隨機(jī)值選取方法和迭代測(cè)試方法等。由于特殊值選取方法和隨機(jī)值選取方法的生成效率較高,容易獲得,所以經(jīng)常使用它們產(chǎn)生原始測(cè)試用例。關(guān)于衍生測(cè)試用例集合,必須依據(jù)蛻變關(guān)系、對(duì)原始測(cè)試用例修改獲得。例如,采用隨機(jī)值選取得到測(cè)試用例Tl = (1000000000,2000000000,3,5000),該測(cè)試用例表示轉(zhuǎn)出賬號(hào)為1000000000,轉(zhuǎn)入賬號(hào)為2000000000,轉(zhuǎn)賬金額為5000元,轉(zhuǎn)賬方式為異地且跨行。假設(shè)采用蛻變關(guān)系1 (即輸入滿足M' = 2M)進(jìn)行測(cè)試,那么修改原始測(cè)試用例Tl可得到衍生測(cè)試用例Tl ‘ = (1000000000,2000000000,3,10000)。假設(shè)采用蛻變關(guān)系6 (即輸入滿足A' =B且B' =A)進(jìn)行測(cè)試,那么修改原始測(cè)試用例Tl可得到衍生測(cè)試用例Tl'= (2000000000,1000000000,3,5000)。采用上述步驟,針對(duì)一條蛻變關(guān)系可以得到一對(duì)測(cè)試用例,即一個(gè)原始測(cè)試用例和一個(gè)衍生測(cè)試用例。為了盡可能多地檢測(cè)Web服務(wù)實(shí)現(xiàn)中潛藏的缺陷,需要產(chǎn)生多個(gè)測(cè)試用例。測(cè)試用例的數(shù)量取決于允許的測(cè)試成本與進(jìn)度如果測(cè)試預(yù)算成本高、測(cè)試時(shí)間長,那么產(chǎn)生的測(cè)試用例數(shù)量可以多一些;否則應(yīng)該少一些。另外,為了覆蓋被測(cè)Web服務(wù)的主要功能或行為,應(yīng)選取多個(gè)蛻變關(guān)系進(jìn)行測(cè)試。最終,依據(jù)不同的蛻變關(guān)系得到多組測(cè)試用例集合。為了測(cè)試轉(zhuǎn)帳接口的實(shí)現(xiàn),必須將被測(cè)的Web服務(wù)部署到服務(wù)容器(如Tomcat) 中;此外,還需開發(fā)測(cè)試客戶端程序(如JSP界面)。通過JSP界面,將上述步驟得到的測(cè)試用例(包括原始測(cè)試用例集合與衍生測(cè)試用例集合)作為輸入消息調(diào)用Web服務(wù),然后等待Web服務(wù)操作執(zhí)行完畢后返回的輸出消息。為了得到ΔΑ,只需在轉(zhuǎn)帳事務(wù)前(后)查詢轉(zhuǎn)出帳號(hào)A的余額。類似地,通過在轉(zhuǎn)帳事務(wù)后(前)查詢轉(zhuǎn)入帳號(hào)B的余額可以得到 ΔΒ。最后,通過判定測(cè)試輸出是否滿足蛻變關(guān)系,確定被測(cè)的Web服務(wù)中是否存在缺陷。測(cè)試結(jié)果的判定并不需要知道原始測(cè)試用例或衍生測(cè)試用例的正確輸出,而是比較原始測(cè)試用例與衍生測(cè)試用例的輸出結(jié)果是否滿足用于產(chǎn)生測(cè)試用例的蛻變關(guān)系。例如,假設(shè)采用蛻變關(guān)系1(即輸入滿足M' = 2M)進(jìn)行測(cè)試,針對(duì)每一對(duì)原始測(cè)試用例與衍生測(cè)試用例的輸出,判定輸出是否滿足ΔΑ < ΔΑ' <2ΔΑ且ΔΒ' =2ΔΒ。如果存在某一對(duì)原始測(cè)試用例與衍生測(cè)試用例的輸出不滿足上述蛻變關(guān)系,則表明轉(zhuǎn)帳接口中存在缺陷。本發(fā)明針對(duì)Web服務(wù)可測(cè)試性差的特點(diǎn),提出了預(yù)期不存在情形下一種面向Web 服務(wù)的有效測(cè)試方法。本發(fā)明利用被測(cè)試軟件中潛藏的蛻變屬性構(gòu)造蛻變關(guān)系,依據(jù)蛻變關(guān)系產(chǎn)生測(cè)試用例集合,客戶端運(yùn)行測(cè)試用例后通過判定測(cè)試輸出是否滿足蛻變關(guān)系,確定被測(cè)的Web服務(wù)中是否存在缺陷。本發(fā)明提供了蛻變關(guān)系構(gòu)造與表示方法、基于蛻變關(guān)
9系的測(cè)試用例生成技術(shù)、客戶端驅(qū)動(dòng)的Web服務(wù)測(cè)試執(zhí)行技術(shù)、基于蛻變關(guān)系的測(cè)試結(jié)果判定技術(shù),是一個(gè)完整的、無需預(yù)期的Web服務(wù)測(cè)試方案。本發(fā)明可有效緩解Web服務(wù)測(cè)試時(shí)廣泛存在的預(yù)期問題,在不存在預(yù)期情形下仍能對(duì)Web服務(wù)進(jìn)行有效測(cè)試,為增強(qiáng)Web服務(wù)的可靠性提供了有效的測(cè)試手段。作為本發(fā)明的另一個(gè)實(shí)施例,本發(fā)明的蛻變測(cè)試方法可以與面向Web服務(wù)的已有測(cè)試方法結(jié)合使用,提高已有測(cè)試方法在預(yù)期不存在情形下的適用性與有效性,對(duì)于保證大量采用Web服務(wù)實(shí)現(xiàn)的SOA軟件的可靠性具有十分重要的意義。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種無需預(yù)期的Web服務(wù)測(cè)試方法,其特征在于包括如下步驟(1)、構(gòu)造基于Web服務(wù)描述的蛻變關(guān)系,所述蛻變關(guān)系為輸入關(guān)系R與輸出關(guān)系Rf構(gòu)成的二元組,其中,所述輸入關(guān)系R定義了原始測(cè)試用例與衍生測(cè)試用例之間的關(guān)系,所述輸出關(guān)系Rf定義了所述原始測(cè)試用例對(duì)應(yīng)的輸出與所述衍生測(cè)試用例對(duì)應(yīng)的輸出之間的關(guān)系;(2)、生成衍生測(cè)試用例集合,所述衍生測(cè)試用例由原始測(cè)試用例基于所述輸入關(guān)系R 生成,所述原始測(cè)試用例和所述衍生測(cè)試用例統(tǒng)稱測(cè)試用例;(3)、執(zhí)行客戶端驅(qū)動(dòng)的所述測(cè)試用例,獲取Web服務(wù)操作執(zhí)行完畢后返回的執(zhí)行結(jié)果;(4)、判定所述執(zhí)行結(jié)果是否滿足所述輸出關(guān)系Rf,如果不滿足,則判定所述Web服務(wù)中存在缺陷。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(1)中基于Web服務(wù)描述的蛻變關(guān)系構(gòu)造的具體步驟為首先,分析Web服務(wù)的描述,獲取Web服務(wù)的蛻變屬性規(guī)格說明 (Metamorphic property specification),
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述Web服務(wù)的描述包括蛻變屬性功能規(guī)格說明與接口信息;其中,所述接口信息包括名字、類型、消息、端口類型、綁定、端口與服務(wù),所述端口類型包括一組操作,每個(gè)所述操作引用一個(gè)輸入消息與輸出消息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述蛻變屬性包括多條蛻變關(guān)系。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述測(cè)試用例的格式依據(jù)所述接口信息確定。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于所述原始測(cè)試用例由已有的測(cè)試用例生成方法產(chǎn)生。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于已有的所述測(cè)試用例生成方法包括特殊值選取方法、隨機(jī)值選取方法、等價(jià)類劃分方法和迭代測(cè)試方法。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于所述接口信息包括操作、輸入消息與輸出消息,原始測(cè)試用例與衍生測(cè)試用例的格式由所述輸入消息確定。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟(3)中的客戶端驅(qū)動(dòng)的Web服務(wù)測(cè)試執(zhí)行的具體方法是,開發(fā)Web服務(wù)的客戶端程序,將原始測(cè)試用例和衍生測(cè)試用例作為輸入消息運(yùn)行被測(cè)Web服務(wù),獲取相應(yīng)的輸出消息,得到測(cè)試結(jié)果。
全文摘要
本發(fā)明公開了一種無需預(yù)期的Web服務(wù)測(cè)試方法,包括如下步驟(1)構(gòu)造基于Web服務(wù)描述的蛻變關(guān)系;(2)生成衍生測(cè)試用例集合,衍生測(cè)試用例集合由原始測(cè)試用例集合基于所述輸入關(guān)系R生成;原始測(cè)試用例集合和衍生測(cè)試用例集合構(gòu)成測(cè)試用例集合;(3)執(zhí)行客戶端驅(qū)動(dòng)的測(cè)試用例,獲取Web服務(wù)的執(zhí)行結(jié)果;(4)判定執(zhí)行結(jié)果是否滿足輸出關(guān)系Rf,如果不滿足,則判定所述Web服務(wù)中存在缺陷。于是,通過比較原始測(cè)試用例與衍生測(cè)試用例的輸出結(jié)果是否滿足用于產(chǎn)生測(cè)試用例的蛻變關(guān)系,即可判斷Web服務(wù)中是否存在缺陷,提供了一種無需預(yù)期仍能對(duì)Web服務(wù)進(jìn)行有效測(cè)試的方法,能有效增強(qiáng)Web服務(wù)的可靠性。
文檔編號(hào)H04L12/26GK102170378SQ20111010942
公開日2011年8月31日 申請(qǐng)日期2011年4月22日 優(yōu)先權(quán)日2011年4月22日
發(fā)明者孫昌愛 申請(qǐng)人:北京科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
普兰店市| 九江县| 中牟县| 波密县| 故城县| 青铜峡市| 汶上县| 雷山县| 锡林郭勒盟| 昌黎县| 淳安县| 舞阳县| 邯郸市| 福安市| 辽宁省| 三门峡市| 黄陵县| 东城区| 开阳县| 浮梁县| 女性| 谢通门县| 保靖县| 黑山县| 开原市| 望城县| 普兰县| 高邮市| 平和县| 芜湖市| 全椒县| 崇左市| 北碚区| 湘乡市| 会昌县| 喀喇| 英德市| 涿鹿县| 新龙县| 河间市| 桐城市|