一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用技術(shù)領(lǐng)域,具體涉及一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)應(yīng)用系統(tǒng)的不斷發(fā)展,國(guó)內(nèi)外存在著大量的針對(duì)于提升其功能性、穩(wěn)定性、可靠性等方面性能的測(cè)試技術(shù)的研宄。有通過錄制/回放技術(shù)自動(dòng)生成測(cè)試腳本技術(shù),以及模型驅(qū)動(dòng)測(cè)試技術(shù)。其中模型驅(qū)動(dòng)測(cè)試技術(shù)逐漸成為研宄的主要方面,包括:采用BPEL規(guī)范描述業(yè)務(wù)流程模型,通過擴(kuò)展U2TP規(guī)范和TTCN-3語言定義的測(cè)試用例元模型,為了支持兩個(gè)模型的轉(zhuǎn)換,基于U2TP活動(dòng)圖定義了描述業(yè)務(wù)交互和控制邏輯的業(yè)務(wù)流程元模型。采用Eclipse平臺(tái)開發(fā)業(yè)務(wù)流程測(cè)試建模平臺(tái),支持測(cè)試人員對(duì)業(yè)務(wù)流程和測(cè)試用例的可視化建模,實(shí)現(xiàn)業(yè)務(wù)流程模型到測(cè)試用例模型的自動(dòng)轉(zhuǎn)換,實(shí)現(xiàn)了測(cè)試腳本的自動(dòng)化生成。
[0003]除了基于UTP外,使用UML的擴(kuò)展能力擴(kuò)展UML也能生成測(cè)試用例。C.Crichton,A.Cavarra和J.Davie就是采用這種方式。他們創(chuàng)建了兩種擴(kuò)展,一個(gè)是通過擴(kuò)展類圖、對(duì)象圖和狀態(tài)圖來描述被測(cè)系統(tǒng)的測(cè)試屬性。另一個(gè)擴(kuò)展是由對(duì)象圖和狀態(tài)圖的用來描述測(cè)試目標(biāo)。
[0004]F.Bouquet等人提出基于模型的測(cè)試方法,該方法基于UML圖,如類圖、對(duì)象圖和狀態(tài)圖,和OCL表達(dá)式自動(dòng)生成測(cè)試用例。
[0005]以上模型驅(qū)動(dòng)測(cè)試方法中的一個(gè)主要特點(diǎn)是基于系統(tǒng)模型,通過定義測(cè)試設(shè)計(jì)建模語言,進(jìn)行測(cè)試系統(tǒng)設(shè)計(jì),并通過一定的測(cè)試準(zhǔn)則,生成測(cè)試用例。這些方法當(dāng)中普通的存在的主要問題有:生成的測(cè)試用例具有發(fā)散性,對(duì)于被測(cè)試系統(tǒng)的故障發(fā)現(xiàn)缺乏針對(duì)性,測(cè)試用例集的空間爆炸問題產(chǎn)生的測(cè)試用例冗余,測(cè)試數(shù)據(jù)不充分等問題。
【發(fā)明內(nèi)容】
[0006]鑒于上述的分析,本發(fā)明旨在提供一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法,用以解決現(xiàn)有技術(shù)中生成的測(cè)試用例具有發(fā)散性,測(cè)試用例集存在冗余,對(duì)于被測(cè)試系統(tǒng)的故障發(fā)現(xiàn)缺乏針對(duì)性,以及測(cè)試數(shù)據(jù)不充分等問題。
[0007]本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0008]一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法,該方法包括如下步驟:
[0009]步驟1、從數(shù)據(jù)庫中讀取被測(cè)網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例集數(shù)據(jù);
[0010]步驟2、將步驟I中的測(cè)試用例集數(shù)據(jù)發(fā)送到解析服務(wù)器中進(jìn)行解析,生成測(cè)試系統(tǒng)模型,并傳輸?shù)斤@示裝置以圖形化的形式呈現(xiàn);其中,測(cè)試系統(tǒng)模型包括:測(cè)試行為模型、測(cè)試數(shù)據(jù)模型和測(cè)試配置模型;
[0011]步驟3、將步驟2中解析生成的測(cè)試系統(tǒng)模型中的測(cè)試行為模型發(fā)送到去冗余服務(wù)器中進(jìn)行去冗余化處理;
[0012]步驟4、將步驟2中解析生成的測(cè)試系統(tǒng)模型中的測(cè)試數(shù)據(jù)模型發(fā)送到訓(xùn)練服務(wù)器中,先進(jìn)行測(cè)試數(shù)據(jù)獲取,然后利用機(jī)器學(xué)習(xí)方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行訓(xùn)練,從而生成新的測(cè)試數(shù)據(jù);
[0013]步驟5、將步驟3中得到的去冗余化后的測(cè)試行為模型以及步驟4中得到的新的測(cè)試數(shù)據(jù),結(jié)合步驟2的測(cè)試系統(tǒng)模型的測(cè)試配置模型,一起發(fā)送到新測(cè)試用例集生成服務(wù)器中,進(jìn)而采用TTCN-3測(cè)試標(biāo)準(zhǔn)生成具有更高故障探測(cè)效能的新測(cè)試用例集。
[0014]進(jìn)一步的,步驟I中所述的所述測(cè)試用例集為測(cè)試腳本。
[0015]進(jìn)一步的,步驟2中所述的解析過程主要通過如下三個(gè)步驟來實(shí)現(xiàn):
[0016](I)提取數(shù)據(jù):通過靜態(tài)或動(dòng)態(tài)的分析獲得源文件的元數(shù)據(jù);
[0017](2)構(gòu)建模型:將提取的元數(shù)據(jù)進(jìn)行分類和存儲(chǔ),使用預(yù)定義的模型對(duì)元數(shù)據(jù)進(jìn)行重組,實(shí)現(xiàn)模型的構(gòu)建;
[0018](3)展現(xiàn)信息:在獲取構(gòu)建的模型后,通過元模型技術(shù)對(duì)模型信息進(jìn)行抽象化處理,并以圖形化形式展現(xiàn)。
[0019]進(jìn)一步的,步驟3具體為:依據(jù)解析出的測(cè)試系統(tǒng)測(cè)試行為模型,采用相似度計(jì)算公式,分別比對(duì)測(cè)試行為之間的相似度;采用遺傳搜索算法,對(duì)整個(gè)測(cè)試行為模型進(jìn)行優(yōu)化搜索,從而得出能夠達(dá)到測(cè)試目標(biāo)的最小測(cè)試行為模型集合。
[0020]進(jìn)一步的,所述相似度的計(jì)算公式如下:
[0021]SimilarityFunct1n(i, j) = nit/avg(|i|,|j|)
[0022]其中,nit表示兩個(gè)測(cè)試行為之間的相同的操作數(shù),avg(|i|, |j|)表示兩個(gè)測(cè)試用例的平均操作數(shù)長(zhǎng)度。
[0023]進(jìn)一步的,步驟4中所述的利用機(jī)器學(xué)習(xí)方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行訓(xùn)練具體為:在得到測(cè)試數(shù)據(jù)之后,通過模擬測(cè)試人員的測(cè)試思維,對(duì)原始測(cè)試數(shù)據(jù)進(jìn)行訓(xùn)練、學(xué)習(xí)和調(diào)整,從而生成新的測(cè)試數(shù)據(jù)。
[0024]進(jìn)一步的,步驟5具體為:通過建立測(cè)試系統(tǒng)模型以及TTCN-3測(cè)試系統(tǒng)模型之間的映射,實(shí)現(xiàn)測(cè)試系統(tǒng)模型向TTCN-3抽象測(cè)試用例的轉(zhuǎn)換,進(jìn)而生成TTCN-3可執(zhí)行測(cè)試用例腳本,通過TTCN-3測(cè)試執(zhí)行平臺(tái),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)應(yīng)用系統(tǒng)的自動(dòng)化測(cè)試。
[0025]本發(fā)明有益效果如下:
[0026]本發(fā)明提供了一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法,通過對(duì)測(cè)試用例集進(jìn)行解析、去冗余化處理、利用機(jī)器學(xué)習(xí)方法對(duì)測(cè)試數(shù)據(jù)進(jìn)行訓(xùn)練、以及采用TTCN-3測(cè)試標(biāo)準(zhǔn)生成具有更高故障探測(cè)效能的新測(cè)試用例集等技術(shù)手段,解決了如下技術(shù)問題:
[0027]1、解決了測(cè)試用例存在著大量冗余的問題;
[0028]2、解決回歸測(cè)試當(dāng)中的測(cè)試用例復(fù)用的問題;
[0029]3、解決測(cè)試用例中測(cè)試行為與測(cè)試數(shù)據(jù)緊耦合的問題;
[0030]4、解決測(cè)試用例對(duì)于提升網(wǎng)絡(luò)應(yīng)用系統(tǒng)性能能力不足的問題。
[0031]本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【附圖說明】
[0032]附圖僅用于示出具體實(shí)施例的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制,在整個(gè)附圖中,相同的參考符號(hào)表不相同的部件。
[0033]圖1為本發(fā)明的方法流程圖;
[0034]圖2為本發(fā)明的測(cè)試數(shù)據(jù)模型示意圖;
[0035]圖3為本發(fā)明的測(cè)試配置模型示意圖;
[0036]圖4為本發(fā)明的測(cè)試行為模型示意圖;
[0037]圖5為本發(fā)明的測(cè)試數(shù)據(jù)模型解析流程圖;
[0038]圖6為本發(fā)明的測(cè)試數(shù)據(jù)自學(xué)習(xí)生成優(yōu)化流程圖。
【具體實(shí)施方式】
[0039]下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。
[0040]一種面向網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例選擇與擴(kuò)充方法,該方法包括如下步驟:
[0041]步驟1、從數(shù)據(jù)庫中讀取被測(cè)網(wǎng)絡(luò)應(yīng)用系統(tǒng)的測(cè)試用例集。
[0042]其中,所述測(cè)試用例集為測(cè)試腳本。測(cè)試腳本包含系統(tǒng)操作執(zhí)行序列、操作參數(shù)以及系統(tǒng)配置信息等。
[0043]步驟2、將步驟I中的測(cè)試用例集發(fā)送到解析服務(wù)器中進(jìn)行解析,生成測(cè)試系統(tǒng)模型,并以圖形化的形式呈現(xiàn);其中,測(cè)試系統(tǒng)模型包括:測(cè)試行為模型、測(cè)試數(shù)據(jù)模型和測(cè)試配置模型。
[0044]依照測(cè)試相關(guān)理論和網(wǎng)絡(luò)應(yīng)用系統(tǒng)測(cè)試特征,建立測(cè)試系統(tǒng)模型,用于從輸入的測(cè)試用例集中獲取測(cè)試關(guān)鍵信息,并對(duì)測(cè)試系統(tǒng)進(jìn)行建模。
[0045](一 )測(cè)試數(shù)據(jù)模型
[0046]測(cè)試數(shù)據(jù)模型定義了一組概念用以描述測(cè)試數(shù)據(jù),主要包括數(shù)據(jù)池(DataPool)、數(shù)據(jù)劃分(DataPartit1n)、數(shù)據(jù)實(shí)例(DataInstance)等各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)定義。
[0047]在測(cè)試數(shù)據(jù)模型中,引入了 UML的基本數(shù)據(jù)類型(SimpleType),還包括了枚舉類型(Enum)和記錄類型(Record),以及有序集合(RecordOf)和無序集合(SetOf)。記錄類型的一個(gè)域(field)對(duì)應(yīng)一個(gè)數(shù)據(jù)類型,通過關(guān)聯(lián)類(Attribute)可以設(shè)置忽略這一域(omit)以及可選的(opt1nal)兩個(gè)屬性。數(shù)據(jù)類型(DataType)的實(shí)例是數(shù)據(jù)實(shí)例(DataInstance),定義了一個(gè)記錄類型或簡(jiǎn)單數(shù)據(jù)類型或者集合的實(shí)例。數(shù)據(jù)池(DataPool)包含多個(gè)數(shù)據(jù)實(shí)例,在數(shù)據(jù)池上有數(shù)據(jù)模板的等價(jià)類劃分(DataPartit1n)。具體參見圖2。
[0048]( 二)測(cè)試配置模型
[0049]測(cè)試配置模型用于描述在測(cè)試中測(cè)試組件與被測(cè)系統(tǒng)的結(jié)構(gòu)和配置。測(cè)試配置模型是對(duì)測(cè)試系統(tǒng)靜態(tài)組成結(jié)構(gòu)的描述。測(cè)試配置模型主要包括:測(cè)試組件(TestComponent)、測(cè)試接口(TestInterface)、測(cè)試系統(tǒng)之間的連接(TestInterfaceConnect1n)、被測(cè)系統(tǒng)(SUT)。增加了測(cè)試接口類型(TestInterfaceType)定義測(cè)試接口輸入和輸出允許的數(shù)據(jù)類型,一個(gè)測(cè)試接口類型可以被多個(gè)測(cè)試接口引用。在測(cè)試組件中可以定義計(jì)時(shí)器(Timer),計(jì)時(shí)器可以在測(cè)試場(chǎng)景(TestScenar1)被引用。具體參見圖3。
[0050](三)測(cè)試行為模型
[0051]測(cè)試行為模型用于描述在測(cè)試用例中的各種行為。測(cè)試行為模型定義包括計(jì)時(shí)器動(dòng)作(Start Timer Act1n 與 Stop Timer Act1n)、消息激勵(lì)(StimuliAct1n)、消息響應(yīng)(ResponseEvaluateAct1n)及測(cè)試結(jié)果類別(Verdict)等,還包括循環(huán)動(dòng)作(WhileAct1n和ForAct1n)以及條件動(dòng)作(IfAct1n和ForAct1n)以及分支動(dòng)作(AltAct1n),這些元素從動(dòng)作塊(Act1nBlock)繼承,動(dòng)作塊從抽象的動(dòng)作(Act1n)繼承。測(cè)試用例(TestCase)繼承自測(cè)試場(chǎng)景(TestScenar1)。其中消息激勵(lì)和消息響應(yīng)中定義了需要的輸入數(shù)據(jù)和預(yù)期響應(yīng)數(shù)據(jù)類型和名稱信息。具體參見圖4。
[0052]通過測(cè)試系統(tǒng)模型,對(duì)測(cè)試用例進(jìn)行逐個(gè)字段解析,從測(cè)試用例中提取出測(cè)試模型,分別