專利名稱:一種用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫的組建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自動化測試技術(shù),更具體地說,涉及一種適于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫的組建方法。
背景技術(shù):
在對電信設(shè)備或軟件進(jìn)行測試的過程中,通常是使用Key-Word Driven(關(guān)鍵字驅(qū)動)技術(shù),它是基于Rational公司的Robot工具平臺而實(shí)現(xiàn)的,通常應(yīng)用于GUI(圖形用戶界面)的自動化測試中。
在關(guān)鍵字驅(qū)動技術(shù)中,測試人員會使用類似Excel工作表的表格,以輸入關(guān)鍵字(Key-Word)的方式來建立測試用例。這個方法的整個過程(包含功能)都是由關(guān)鍵字驅(qū)動的,關(guān)鍵字控制了整個測試過程。
表一所示是一個示例性的測試用例。
表一
其中,第一列是關(guān)鍵字,用于說明要執(zhí)行的動作;第二到第四列,是執(zhí)行第一列的動作所必需的參數(shù);第五列用于表示該步驟是否通過。
如圖1所示,關(guān)鍵字驅(qū)動技術(shù)的運(yùn)作機(jī)制如下(1)測試人員以Excel建立如表一所示的測試用例文件,例如可命名為KeyWords_Web.xls;測試用例文件由關(guān)鍵字(如Enter、Action、Verify等)及其參數(shù)組成。
(2)測試用例運(yùn)行時(shí),驅(qū)動腳本(Drive TSL script)會運(yùn)行初始化腳本(LogonTSL script),為整個測試作初始化工作,并載入控制文件(Run.txt),以獲取當(dāng)前要運(yùn)行的測試用例(*.xls,例如前述KeyWords_Web.xls)。
(3)驅(qū)動腳本(Drive TSL script)在初始化工作完成后,啟動控制腳本(Controller TSL script),由控制腳本來負(fù)責(zé)解析整個測試用例文件的關(guān)鍵字,例如Enter、Action、Verify等,并根據(jù)這些關(guān)鍵字來調(diào)用與之對應(yīng)的實(shí)現(xiàn)腳本(User Defined TSL script)。
(4)Utility腳本(即實(shí)現(xiàn)TSL腳本)實(shí)際執(zhí)行每個測試動作,并且使用其它列作為參數(shù),執(zhí)行完后將結(jié)果回傳給控制腳本。當(dāng)控制腳本執(zhí)行到最后一行,整個測試用例就結(jié)束執(zhí)行。
(5)當(dāng)控制文件(Run.txt)中的所有用例文件(*.xls)都已運(yùn)行完畢,則本次測試過程結(jié)束。
由上述可知,在對電信設(shè)備或軟件進(jìn)行測試的過程中,現(xiàn)有的關(guān)鍵字驅(qū)動技術(shù)有以下缺點(diǎn)(1)主要應(yīng)用于GUI自動化測試,并基于Rational公司的Robot工具平臺而實(shí)現(xiàn),(a)它的跨平臺(特指操作系統(tǒng))移植性比較弱,(b)跨工具平臺移植性也比較弱,(c)而且不適合應(yīng)用于通信設(shè)備類產(chǎn)品的自動化測試。
(2)缺少中心數(shù)據(jù)庫(CDB),AW(關(guān)鍵字)本身就是NKey(導(dǎo)航關(guān)鍵字),關(guān)鍵字、導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系在驅(qū)動腳本中實(shí)現(xiàn),并由驅(qū)動腳本完成關(guān)鍵字的導(dǎo)航,因此,新增關(guān)鍵字及其與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系時(shí),必須修改驅(qū)動模塊;同時(shí),如果關(guān)鍵字、導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系發(fā)生改變時(shí),也需要修改驅(qū)動模塊。從而會導(dǎo)致(a)自動化測試過程中的開發(fā)成本較高,(b)關(guān)鍵字將會有大量的冗余;(c)需要維護(hù)多個版本的驅(qū)動模塊,維護(hù)成本高。
(3)無法實(shí)現(xiàn)不同產(chǎn)品/版本間測試用例的移植;(4)關(guān)鍵字的實(shí)現(xiàn)方式只能通過腳本來實(shí)現(xiàn);無法通過其它編程語言如C、pascal等來實(shí)現(xiàn)。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的上述情況,本發(fā)明要解決的技術(shù)問題在于如何改進(jìn)AW(關(guān)鍵字)的導(dǎo)航方案,使得新增關(guān)鍵字時(shí)不必修改導(dǎo)航腳本。
為解決上述技術(shù)問題,本發(fā)明的方案是提供一種用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫的組建方法,其中包括以下步驟根據(jù)關(guān)鍵字驅(qū)動的要求確定至少一個關(guān)鍵字;根據(jù)關(guān)鍵字驅(qū)動的要求確定至少一個可適用于所有關(guān)鍵字的導(dǎo)航關(guān)鍵字;針對每一個關(guān)鍵字與每一個導(dǎo)航關(guān)鍵字的組合,根據(jù)關(guān)鍵字驅(qū)動的要求確定一個唯一對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);根據(jù)所述各個關(guān)鍵字、導(dǎo)航關(guān)鍵字、以及關(guān)鍵字驅(qū)動函數(shù)之間的關(guān)系,建立一個以關(guān)鍵字和導(dǎo)航關(guān)鍵字為索引的關(guān)鍵字驅(qū)動函數(shù)索引表;利用所述關(guān)鍵字驅(qū)動函數(shù)索引表的信息,建立一個用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫。
本發(fā)明中,由于在中心數(shù)據(jù)庫內(nèi)存儲有關(guān)鍵字、導(dǎo)航關(guān)鍵字、及關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的相互關(guān)系,在通過關(guān)鍵字驅(qū)動導(dǎo)航時(shí),可由靜態(tài)腳本完成中心數(shù)據(jù)庫的加載,并根據(jù)所需的關(guān)鍵字來創(chuàng)建相應(yīng)的動態(tài)腳本;再由所述動態(tài)腳本根據(jù)所述關(guān)鍵字和導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);同時(shí),所述動態(tài)腳本將測試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);通過執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),即可完成相應(yīng)的測試功能,并將結(jié)果返回給測試邏輯。
本發(fā)明中,可確定i個關(guān)鍵字,n個可適用于所有關(guān)鍵字的導(dǎo)航關(guān)鍵字,其中i、n為正整數(shù);對應(yīng)于其中任一個關(guān)鍵字與n個導(dǎo)航關(guān)鍵字的n種組合,有n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);對應(yīng)于i個關(guān)鍵字,則有i×n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù)。
采用本發(fā)明的方案之后,通過中心數(shù)據(jù)庫,在維護(hù)關(guān)鍵字及其與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系時(shí),只需修改中心數(shù)據(jù)庫即可,而不必再修改導(dǎo)航腳本,從而提高了關(guān)鍵字?jǐn)?shù)據(jù)驅(qū)動自動化測試的開發(fā)效率,并且降低了關(guān)鍵字驅(qū)動自動化測試的后續(xù)維護(hù)成本,同時(shí)可避免關(guān)鍵字的冗余,避免維護(hù)多個版本的導(dǎo)航腳本;另外,具有相同功能的測試工具或測試儀器的配置和控制也可定義一套相同的關(guān)鍵字來實(shí)現(xiàn)。
而且,由于采取了上述技術(shù)方案,通過導(dǎo)航關(guān)鍵字就可將關(guān)鍵字導(dǎo)航到不同測試工具或測試儀器的關(guān)鍵字實(shí)現(xiàn)函數(shù),也可將關(guān)鍵字導(dǎo)航到不同產(chǎn)品或同一產(chǎn)品的不同版本的關(guān)鍵字實(shí)現(xiàn)函數(shù),從而為測試腳本在不同產(chǎn)品或同一產(chǎn)品不同版本間的移植奠定了基礎(chǔ)。
另外,由于在本發(fā)明中的導(dǎo)航腳本是通過腳本語言(如TCL腳本語言、Python語言)來實(shí)現(xiàn)的,而腳本語言具備跨平臺(特指操作系統(tǒng))及跨工具平臺的特性,因此,本發(fā)明的方案能提高跨平臺移植性和跨工具平臺移植性,從而更適合應(yīng)用于通信設(shè)備類產(chǎn)品的自動化測試。
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是現(xiàn)有技術(shù)中關(guān)鍵字驅(qū)動技術(shù)的運(yùn)作機(jī)制示意圖;圖2是本發(fā)明中的導(dǎo)航腳本的結(jié)構(gòu)示意圖;圖3是本發(fā)明中導(dǎo)航腳本的初始化流程圖;圖4是本發(fā)明中測試邏輯的執(zhí)行過程示意圖。
具體實(shí)施例方式
本發(fā)明的實(shí)現(xiàn),是基于現(xiàn)有技術(shù)的各項(xiàng)發(fā)展,例如,腳本語言(如TCL、PYTHON等)的特性,如解釋執(zhí)行、可嵌入、可擴(kuò)展等特性,為自動化測試技術(shù)奠定了基礎(chǔ);同時(shí),各種產(chǎn)品(如電信設(shè)備或軟件)不僅提供圖形界面,同時(shí)也提供命令行接口或人機(jī)接口,也為產(chǎn)品的自動化測試技術(shù)奠定了基礎(chǔ)。
為便于對本發(fā)明的理解,下面對本文中使用的一些術(shù)語作一個簡單的介紹,具體如表二所示表二
由前述內(nèi)容可知,本發(fā)明的目的是要改進(jìn)現(xiàn)有的關(guān)鍵字的導(dǎo)航方案,使得新增關(guān)鍵字時(shí)不必修改導(dǎo)航腳本。
本發(fā)明的方案,是將AW(關(guān)鍵字)、NKey(導(dǎo)航關(guān)鍵字)、AW(關(guān)鍵字)實(shí)現(xiàn)函數(shù)的對應(yīng)關(guān)系從驅(qū)動腳本中剝離出來,通過CDB(中心數(shù)據(jù)庫)來實(shí)現(xiàn),使得新增或修改關(guān)鍵字及其與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系時(shí),只需修改中心數(shù)據(jù)庫即可,而不必修改驅(qū)動腳本。本發(fā)明中的驅(qū)動腳本的作用在于完成自動化測試執(zhí)行前的初始化工作如運(yùn)行參數(shù)的載入,測試用例的載入,導(dǎo)航腳本中靜態(tài)腳本的執(zhí)行、自動化測試執(zhí)行的啟動等等。
如圖2所示,本發(fā)明中,導(dǎo)航腳本由兩部分組成(1)一部分為靜態(tài)腳本,即初始化腳本,主要用于完成中心數(shù)據(jù)庫的加載,并通過腳本語言(如TCL)動態(tài)創(chuàng)建命令的特性,來創(chuàng)建導(dǎo)航腳本的動態(tài)腳本;(2)另一部分為動態(tài)腳本,即關(guān)鍵字函數(shù),它用于根據(jù)導(dǎo)航關(guān)鍵字來完成關(guān)鍵字的導(dǎo)航,執(zhí)行關(guān)鍵字實(shí)現(xiàn)函數(shù),并將結(jié)果返回給測試邏輯。具體實(shí)施時(shí),導(dǎo)航腳本可以通過腳本語言(如Python)或編譯語言(如C)來實(shí)現(xiàn)。
如圖3所示,導(dǎo)航腳本在初始化階段加載中心數(shù)據(jù)庫,并且根據(jù)中心數(shù)據(jù)庫內(nèi)定義的關(guān)鍵字以及關(guān)鍵字與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系,利用腳本語言(如TCL)的可以動態(tài)生成命令的特性,生成關(guān)鍵字函數(shù),即動態(tài)腳本;然后以關(guān)鍵字函數(shù)作為導(dǎo)航腳本的一部分,完成關(guān)鍵字到關(guān)鍵字實(shí)現(xiàn)函數(shù)的導(dǎo)航的功能。
如圖4所示,測試邏輯在執(zhí)行過程中由靜態(tài)腳本完成中心數(shù)據(jù)庫的加載,并根據(jù)所需的關(guān)鍵字來創(chuàng)建相應(yīng)的動態(tài)腳本;再由所述動態(tài)腳本根據(jù)所述關(guān)鍵字和導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);同時(shí),所述動態(tài)腳本將測試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);通過執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),即可完成相應(yīng)的測試功能,并將結(jié)果返回給測試邏輯。本文中的加載是指把中心數(shù)據(jù)庫所有內(nèi)容加載到計(jì)算機(jī)內(nèi)存中或連接到數(shù)據(jù)庫;查找是指在中心數(shù)據(jù)庫內(nèi)查找某條記錄。
具體實(shí)施時(shí),按以下步驟處理,先根據(jù)關(guān)鍵字驅(qū)動的要求確定i個關(guān)鍵字,再確定n個可適用于所有關(guān)鍵字的導(dǎo)航關(guān)鍵字,其中i、n均為正整數(shù);對應(yīng)于其中任一個關(guān)鍵字與n個導(dǎo)航關(guān)鍵字的n種組合,可確定n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);對應(yīng)于i個關(guān)鍵字,則可確定i×n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);然后,根據(jù)各個關(guān)鍵字、導(dǎo)航關(guān)鍵字、以及關(guān)鍵字驅(qū)動函數(shù)之間的關(guān)系,建立一個以關(guān)鍵字和導(dǎo)航關(guān)鍵字為索引的關(guān)鍵字驅(qū)動函數(shù)索引表;利用這個關(guān)鍵字驅(qū)動函數(shù)索引表的信息,就可建立一個用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫。
具體實(shí)施時(shí),中心數(shù)據(jù)庫的存儲是通過文本文件的方式來表示,具體由關(guān)鍵字、導(dǎo)航關(guān)鍵字、以及關(guān)鍵字實(shí)現(xiàn)函數(shù)組成。
中心數(shù)據(jù)庫的其中一種實(shí)施方式如下所示 NKey1=OriginFunc11NKey2=OriginFunc12NKey3=OriginFunc13……NKeyn=OriginFunc1n[AW2]NKey1=OriginFunc21NKey2=OriginFunc22NKey3=OriginFunc23……NKeyn=OriginFunc2n……[AWi]NKey1=OriginFunci1NKey2=OriginFunci2NKey3=OriginFunci3……NKeyn=OriginFuncin其中,方括號“[]”中的內(nèi)容表示第1、第2、...、第i個關(guān)鍵字,即AW1、AW2、AW3、...、AWi;每一個等號“=”左邊的內(nèi)容表示第1、第2、第3、...、第n個導(dǎo)航關(guān)鍵字,等號“=”右邊的內(nèi)容表示該關(guān)鍵字的第1、第2、第3、...、第n個關(guān)鍵字實(shí)現(xiàn)函數(shù)。
其中,關(guān)鍵字AW1有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),n為正整數(shù);通過導(dǎo)航關(guān)鍵字NKey1,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc11;通過導(dǎo)航關(guān)鍵字NKey2,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc12;通過導(dǎo)航關(guān)鍵字NKey3,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc13;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc1n。
同樣,關(guān)鍵字AW2有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc21;通過導(dǎo)航關(guān)鍵字NKey2,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc22;通過導(dǎo)航關(guān)鍵字NKey3,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc23;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc2n。
同樣,關(guān)鍵字AWi有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),其中i為正整數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AWi將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFuncil;通過導(dǎo)航關(guān)鍵字NKey2,AWi將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunci2;通過導(dǎo)航關(guān)鍵字NKey3,AWi將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunci3;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFuncin。
中心數(shù)據(jù)庫第二種實(shí)施方式如下所示[Class1]FIELDS,NKey1, NKey2, NKey3,......, NKeynAW1, OrigFun11,OrigFunc12,OrigFunc13,......,OrigFunc1nAW2, OrigFun21,OrigFunc22,OrigFunc23,......,OrigFunc2n[Class2]FIELDS,NKey1, NKey2, NKey3,......, NKeynAW3, OrigFun31,OrigFunc32,OrigFunc33,......,OrigFunc3nAW4, OrigFun41,OrigFunc42,OrigFunc43,......,OrigFunc4n……其中,方括號“[]”中的內(nèi)容僅用于表示分類,以便于后續(xù)中心數(shù)據(jù)庫的維護(hù),除此之外沒有其它含義;FIELDS是保留字;FIELDS所在的列(即第一列)表示關(guān)鍵字;FIELDS所在行表示導(dǎo)航關(guān)鍵字,導(dǎo)航關(guān)鍵字之間以逗號分隔;其他內(nèi)容表示關(guān)鍵字實(shí)現(xiàn)函數(shù)。
其中,關(guān)鍵字AW1有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc11;通過導(dǎo)航關(guān)鍵字NKey2,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc12;通過導(dǎo)航關(guān)鍵字NKey3,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc13;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW1將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFuncln。
同樣,關(guān)鍵字AW2有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc21;通過導(dǎo)航關(guān)鍵字NKey2,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc22;通過導(dǎo)航關(guān)鍵字NKey3,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc23;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW2將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc2n。
同樣,關(guān)鍵字AW3有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AW3將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc31;通過導(dǎo)航關(guān)鍵字NKey2,AW3將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc32;通過導(dǎo)航關(guān)鍵字NKey3,AW3將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc33;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW3將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc3n。
同樣,關(guān)鍵字AW4有n種關(guān)鍵字實(shí)現(xiàn)函數(shù),通過導(dǎo)航關(guān)鍵字NKey1,AW4將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc41;通過導(dǎo)航關(guān)鍵字NKey2,AW4將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc42;通過導(dǎo)航關(guān)鍵字NKey3,AW4將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc43;……;通過導(dǎo)航關(guān)鍵字NKeyn,AW4將導(dǎo)航到關(guān)鍵字實(shí)現(xiàn)函數(shù)OriginFunc4n;由上述具體實(shí)施方式
可知,通過中心數(shù)據(jù)庫,在維護(hù)關(guān)鍵字及其與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系時(shí),只需修改中心數(shù)據(jù)庫即可,而不必再修改導(dǎo)航腳本,從而提高了關(guān)鍵字?jǐn)?shù)據(jù)驅(qū)動自動化測試的開發(fā)效率,并且降低了關(guān)鍵字驅(qū)動自動化測試的后續(xù)維護(hù)成本,同時(shí)可避免關(guān)鍵字的冗余,避免維護(hù)多個版本的導(dǎo)航腳本;另外,具有相同功能的測試工具或測試儀器的配置和控制也可定義一套相同的關(guān)鍵字來實(shí)現(xiàn)。
而且,由上述具體實(shí)施方式
可知,通過導(dǎo)航關(guān)鍵字就可將關(guān)鍵字導(dǎo)航到不同測試工具或測試儀器的關(guān)鍵字實(shí)現(xiàn)函數(shù),也可將關(guān)鍵字導(dǎo)航到不同產(chǎn)品或同一產(chǎn)品的不同版本的關(guān)鍵字實(shí)現(xiàn)函數(shù),從而為測試腳本在不同產(chǎn)品或同一產(chǎn)品不同版本間的移植奠定了基礎(chǔ)。
具體實(shí)施時(shí),其中的中心數(shù)據(jù)庫可以通過關(guān)系數(shù)據(jù)庫來實(shí)現(xiàn),例如通過Oracle、Sybase、Sql Server等來實(shí)現(xiàn)。另外,對于中心數(shù)據(jù)庫內(nèi)的關(guān)鍵字、導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對應(yīng)關(guān)系,可通過關(guān)系數(shù)據(jù)庫內(nèi)的表格(或稱Table或View更妥)來實(shí)現(xiàn)。
權(quán)利要求
1.一種用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫的組建方法,其特征在于,包括以下步驟根據(jù)關(guān)鍵字驅(qū)動的要求確定至少一個關(guān)鍵字;根據(jù)關(guān)鍵字驅(qū)動的要求確定至少一個可適用于所有關(guān)鍵字的導(dǎo)航關(guān)鍵字;針對每一個關(guān)鍵字與每一個導(dǎo)航關(guān)鍵字的組合,根據(jù)關(guān)鍵字驅(qū)動的要求確定一個唯一對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);根據(jù)所述各個關(guān)鍵字、導(dǎo)航關(guān)鍵字、以及關(guān)鍵字驅(qū)動函數(shù)之間的關(guān)系,建立一個以關(guān)鍵字和導(dǎo)航關(guān)鍵字為索引的關(guān)鍵字驅(qū)動函數(shù)索引表;利用所述關(guān)鍵字驅(qū)動函數(shù)索引表的信息,建立一個用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中根據(jù)關(guān)鍵字驅(qū)動的要求確定i個關(guān)鍵字、n個可適用于所有關(guān)鍵字的導(dǎo)航關(guān)鍵字;對應(yīng)于任一個關(guān)鍵字與n個導(dǎo)航關(guān)鍵字的n種組合,有n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);對應(yīng)于i個關(guān)鍵字,則有i×n個對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);其中i、n均為正整數(shù)。
3.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述關(guān)鍵字驅(qū)動函數(shù)索引表的為如下形式[AW1]NKey1=OriginFunc11NKey2=OriginFunc12NKey3=OriginFunc13……NKeyn=OriginFunc1n[AW2]NKey1=OriginFunc21NKey2=OriginFunc22NKey3=OriginFunc23……NKeyn=OriginFunc2n……[AWi]NKey1=OriginFunci1NKey2=OriginFunci2NKey3=OriginFunci3……NKeyn=OriginFuncin其中,方括號中的內(nèi)容表示第1、第2、...、第i個關(guān)鍵字;等號左邊的內(nèi)容表示其所在關(guān)鍵字的第1、第2、第3、...、第n個導(dǎo)航關(guān)鍵字;等號右邊的內(nèi)容表示每一關(guān)鍵字的第1、第2、第3、...、第n個關(guān)鍵字實(shí)現(xiàn)函數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述關(guān)鍵字驅(qū)動函數(shù)索引表的為如下形式[Class1]FIELDS,NKey1,NKey2,NKey3,......,NKeynAW1,OrigFun11,OrigFunc12,OrigFunc13,......,OrigFunc1nAW2,OrigFun21,OrigFunc22,OrigFunc23,......,OrigFunc2n[Class2]FIELDS,NKey1,NKey2,NKey3,......,NKeynAW3,OrigFun31,OrigFunc32,OrigFunc33,......,OrigFunc3nAW4,OrigFun41,OrigFunc42,OrigFunc43,......,OrigFunc4n……其中,方括號中的內(nèi)容僅用于表示對關(guān)鍵字的分類;FIELDS是保留字;FIELDS所在的第一列表示關(guān)鍵字;FIELDS所在第一行表示導(dǎo)航關(guān)鍵字;其他內(nèi)容則表示關(guān)鍵字實(shí)現(xiàn)函數(shù)。
全文摘要
本發(fā)明涉及自動化測試技術(shù),為達(dá)到新增AW(關(guān)鍵字)時(shí)不必修改導(dǎo)航腳本的目的,本發(fā)明提供一種用于關(guān)鍵字驅(qū)動的中心數(shù)據(jù)庫的組建方法,其中采用由靜態(tài)腳本和動態(tài)腳本組成的導(dǎo)航腳本,并在中心數(shù)據(jù)庫內(nèi)存儲關(guān)鍵字、導(dǎo)航關(guān)鍵字、及關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的相互關(guān)系,然后,由靜態(tài)腳本完成中心數(shù)據(jù)庫的加載,并根據(jù)所需的關(guān)鍵字來創(chuàng)建相應(yīng)的動態(tài)腳本;再由所述動態(tài)腳本根據(jù)所述關(guān)鍵字和導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);同時(shí),所述動態(tài)腳本將測試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);通過執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),即可完成相應(yīng)的測試功能,并將結(jié)果返回給測試邏輯。本發(fā)明中的方法可提高開發(fā)效率,降低導(dǎo)航腳本的維護(hù)成本。
文檔編號G06F17/30GK1851695SQ20051010075
公開日2006年10月25日 申請日期2005年10月24日 優(yōu)先權(quán)日2005年10月24日
發(fā)明者林培興 申請人:華為技術(shù)有限公司