專利名稱:一種關(guān)鍵字驅(qū)動(dòng)的導(dǎo)航方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自動(dòng)化測(cè)試技術(shù),更具體地說,涉及一種關(guān)鍵字驅(qū)動(dòng)的導(dǎo)航方法。
背景技術(shù):
在對(duì)電信設(shè)備或軟件進(jìn)行測(cè)試的過程中,通常是使用Key-Word Driven(關(guān)鍵字驅(qū)動(dòng))技術(shù),它是基于Rational公司的Robot工具平臺(tái)而實(shí)現(xiàn)的,通常應(yīng)用于GUI(圖形用戶界面)的自動(dòng)化測(cè)試中。
在關(guān)鍵字驅(qū)動(dòng)技術(shù)中,測(cè)試人員會(huì)使用類似Excel工作表的表格,以輸入關(guān)鍵字(Key-Word)的方式來建立測(cè)試用例。這個(gè)方法的整個(gè)過程(包含功能)都是由關(guān)鍵字驅(qū)動(dòng)的,關(guān)鍵字控制了整個(gè)測(cè)試過程。
表一所示是一個(gè)示例性的測(cè)試用例。
表一
其中,第一列是關(guān)鍵字,用于說明要執(zhí)行的動(dòng)作;第二到第四列,是執(zhí)行第一列的動(dòng)作所必需的參數(shù);第五列用于表示該步驟是否通過。
如圖1所示,關(guān)鍵字驅(qū)動(dòng)技術(shù)的運(yùn)作機(jī)制如下(1)測(cè)試人員以Excel建立如表一所示的測(cè)試用例文件,例如可命名為KeyWords_Web.xls;測(cè)試用例文件由關(guān)鍵字(如Enter、Action、Verify等)及其參數(shù)組成。
(2)測(cè)試用例運(yùn)行時(shí),驅(qū)動(dòng)腳本(Drive TSL script)會(huì)運(yùn)行初始化腳本(LogonTSL script),為整個(gè)測(cè)試作初始化工作,并載入控制文件(Run.txt),以獲取當(dāng)前要運(yùn)行的測(cè)試用例(*.xls,例如KeyWords_Web.xls)。
(3)驅(qū)動(dòng)腳本(Drive TSL script)在初始化工作完成后,啟動(dòng)控制腳本(Controller TSL script),由控制腳本來負(fù)責(zé)解析整個(gè)測(cè)試用例文件的關(guān)鍵字,例如Enter、Action、Verify等,并根據(jù)這些關(guān)鍵字來調(diào)用與之對(duì)應(yīng)的實(shí)現(xiàn)腳本(User Defined TSL script)。
(4)Utility腳本(即實(shí)現(xiàn)TSL腳本)實(shí)際執(zhí)行每個(gè)測(cè)試動(dòng)作,并且使用其它列作為參數(shù),執(zhí)行完后將結(jié)果回傳給控制腳本。當(dāng)控制腳本執(zhí)行到最后一行,整個(gè)測(cè)試用例就結(jié)束執(zhí)行。
(5)當(dāng)控制文件(Run.txt)中的所有用例文件(*.xls)都已運(yùn)行完畢,則本次測(cè)試過程結(jié)束。
由上述可知,在對(duì)電信設(shè)備或軟件進(jìn)行測(cè)試的過程中,關(guān)鍵字驅(qū)動(dòng)技術(shù)有以下缺點(diǎn)(1)主要應(yīng)用于GUI自動(dòng)化測(cè)試,并基于Rational公司的Robot工具平臺(tái)而實(shí)現(xiàn),(a)它的跨平臺(tái)(特指操作系統(tǒng))移植性比較弱,(b)跨工具平臺(tái)移植性也比較弱,(c)而且不適合應(yīng)用于通信設(shè)備類產(chǎn)品的自動(dòng)化測(cè)試。
(2)缺少中心數(shù)據(jù)庫(CDB),AW(關(guān)鍵字)本身就是NKey(導(dǎo)航關(guān)鍵字),關(guān)鍵字的導(dǎo)航直接在驅(qū)動(dòng)模塊中實(shí)現(xiàn),通常是通過編程語言提供的case語句或if語句來實(shí)現(xiàn)的,如圖2所示,因此,如果新增一個(gè)關(guān)鍵字,則必須修改驅(qū)動(dòng)模塊;其結(jié)果將導(dǎo)致(a)自動(dòng)化測(cè)試過程中開發(fā)成本增加,(b)關(guān)鍵字將會(huì)有大量的冗余,(c)需同時(shí)維護(hù)多個(gè)版本的驅(qū)動(dòng)模塊。
(3)無法實(shí)現(xiàn)不同產(chǎn)品/版本間測(cè)試用例的移植。
(4)關(guān)鍵字的實(shí)現(xiàn)方式只能通過腳本來實(shí)現(xiàn),無法通過其它編程語言如C、Pascal等來實(shí)現(xiàn)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的上述缺陷,本發(fā)明要解決的技術(shù)問題在于如何改進(jìn)關(guān)鍵字的導(dǎo)航技術(shù),使得新增關(guān)鍵字時(shí)不必修改導(dǎo)航腳本。
為解決上述技術(shù)問題,本發(fā)明的方案是提供一種關(guān)鍵字驅(qū)動(dòng)的導(dǎo)航方法,采用靜態(tài)腳本和動(dòng)態(tài)腳本組成導(dǎo)航腳本,包括以下步驟(S1)由所述靜態(tài)腳本完成中心數(shù)據(jù)庫的加載,并創(chuàng)建相應(yīng)的動(dòng)態(tài)腳本;(S2)所述動(dòng)態(tài)腳本根據(jù)所述關(guān)鍵字和與之對(duì)應(yīng)的導(dǎo)航關(guān)鍵字,獲取對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù)。
為了實(shí)現(xiàn)測(cè)試的目的,本發(fā)明中還包括(S3)所述動(dòng)態(tài)腳本將測(cè)試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);(S4)執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),以完成相應(yīng)的測(cè)試功能。
本發(fā)明中,在所述中心數(shù)據(jù)庫內(nèi)存儲(chǔ)有關(guān)于關(guān)鍵字、導(dǎo)航關(guān)鍵字以及關(guān)鍵字實(shí)現(xiàn)函數(shù)之間相互關(guān)系的信息;在所述步驟(S1)中,所述靜態(tài)腳本完成中心數(shù)據(jù)庫的加載后,根據(jù)所需的關(guān)鍵字來創(chuàng)建相應(yīng)的動(dòng)態(tài)腳本;在所述步驟(S2)中,所述動(dòng)態(tài)腳本根據(jù)所述關(guān)鍵字和與之對(duì)應(yīng)的導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù)。
本發(fā)明中,所述導(dǎo)航腳本可通過腳本語言或編譯語言實(shí)現(xiàn)。所述靜態(tài)腳本為初始化腳本;在所述步驟(S1)中,所述靜態(tài)腳本可通過腳本語言動(dòng)態(tài)創(chuàng)建命令的特性來創(chuàng)建所述動(dòng)態(tài)腳本。所述腳本語言可為工具命令語言(TCL)。
采用本發(fā)明的方案之后,通過中心數(shù)據(jù)庫,在維護(hù)關(guān)鍵字及其與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對(duì)應(yīng)關(guān)系時(shí),只需修改中心數(shù)據(jù)庫即可,而不必再修改導(dǎo)航腳本,從而提高了關(guān)鍵字?jǐn)?shù)據(jù)驅(qū)動(dòng)自動(dòng)化測(cè)試的開發(fā)效率,并且降低了關(guān)鍵字驅(qū)動(dòng)自動(dòng)化測(cè)試的后續(xù)維護(hù)成本,同時(shí)可避免關(guān)鍵字的冗余,避免維護(hù)多個(gè)版本的導(dǎo)航腳本;另外,具有相同功能的測(cè)試工具或測(cè)試儀器的配置和控制也可定義一套相同的關(guān)鍵字來實(shí)現(xiàn)。
而且,由采取了上述技術(shù)方案,通過導(dǎo)航關(guān)鍵字就可將關(guān)鍵字導(dǎo)航到不同測(cè)試工具或測(cè)試儀器的關(guān)鍵字實(shí)現(xiàn)函數(shù),也可將關(guān)鍵字導(dǎo)航到不同產(chǎn)品或同一產(chǎn)品的不同版本的關(guān)鍵字實(shí)現(xiàn)函數(shù),從而為測(cè)試腳本在不同產(chǎn)品或同一產(chǎn)品不版本間的移植奠定了基礎(chǔ)。
另外,由于在本發(fā)明中中的導(dǎo)航腳本是通過腳本語言(如TCL腳本語言、Python語言)來實(shí)現(xiàn)的,而腳本語言具備跨平臺(tái)(特指操作系統(tǒng))及跨工具平臺(tái)的特性,因此,本發(fā)明的方案能提高跨平臺(tái)移植性和跨工具平臺(tái)移植性,從而更適合應(yīng)用于通信設(shè)備類產(chǎn)品的自動(dòng)化測(cè)試。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是現(xiàn)有技術(shù)中關(guān)鍵字驅(qū)動(dòng)技術(shù)的的動(dòng)作機(jī)制示意圖;圖2是現(xiàn)有技術(shù)中新增關(guān)鍵字時(shí)的流程示意圖;圖3是本發(fā)明中的導(dǎo)航腳本的結(jié)構(gòu)示意圖;圖4是本發(fā)明中導(dǎo)航腳本的初始化流程圖;圖5是本發(fā)明中測(cè)試邏輯的執(zhí)行過程示意圖。
具體實(shí)施例方式
本發(fā)明的實(shí)現(xiàn),是基于現(xiàn)有技術(shù)的各項(xiàng)發(fā)展,例如,腳本語言(如TCL、PYTHON等)的特性,如解釋執(zhí)行、可嵌入、可擴(kuò)展等特性,為自動(dòng)化測(cè)試技術(shù)奠定了基礎(chǔ);同時(shí),各種產(chǎn)品(如電信設(shè)備或軟件)不僅提供圖形界面,同時(shí)也提供命令行接口或人機(jī)接口,也為產(chǎn)品的自動(dòng)化測(cè)試技術(shù)奠定了基礎(chǔ);此外,申請(qǐng)人經(jīng)過多年的自動(dòng)化測(cè)試實(shí)踐,總結(jié)了一整套自動(dòng)化測(cè)試腳本設(shè)計(jì)模式,包括線性測(cè)試腳本設(shè)計(jì)模式、結(jié)構(gòu)化測(cè)試腳本設(shè)計(jì)模式、共享測(cè)試腳本設(shè)計(jì)模式、數(shù)據(jù)驅(qū)動(dòng)測(cè)試腳本設(shè)計(jì)模式、關(guān)鍵字驅(qū)動(dòng)測(cè)試腳本設(shè)計(jì)模式等。
為便于對(duì)本發(fā)明的理解,下面對(duì)本文中使用的一些術(shù)語作一個(gè)簡單的介紹,具體如表二所示
表二
由前述內(nèi)容可知,本發(fā)明的目的是要改進(jìn)關(guān)鍵字的導(dǎo)航方案,使得新增關(guān)鍵字時(shí)不必修改導(dǎo)航腳本。
如圖3所示,本發(fā)明中,導(dǎo)航腳本由兩部分組成(1)一部分為靜態(tài)腳本,即初始化腳本,主要用于完成中心數(shù)據(jù)庫的加載,并通過腳本語言(如TCL)動(dòng)態(tài)創(chuàng)建命令的特性,來創(chuàng)建導(dǎo)航腳本的動(dòng)態(tài)腳本;(2)另一部分為動(dòng)態(tài)腳本,即關(guān)鍵字函數(shù),它根據(jù)導(dǎo)航關(guān)鍵字(NKey)來完成關(guān)鍵字的導(dǎo)航,執(zhí)行關(guān)鍵字實(shí)現(xiàn)函數(shù),并將結(jié)果返回給測(cè)試邏輯。具體實(shí)施時(shí),導(dǎo)航腳本可以通過腳本語言(如Python)或編譯語言(如C)來實(shí)現(xiàn)。
如圖4所示,導(dǎo)航腳本在初始化階段加載中心數(shù)據(jù)庫,并且根據(jù)中心數(shù)據(jù)庫中定義的關(guān)鍵字以及關(guān)鍵字與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)之間的對(duì)應(yīng)關(guān)系,利用腳本語言(如TCL)的可以動(dòng)態(tài)生成命令的特性,生成關(guān)鍵字函數(shù),即動(dòng)態(tài)腳本;然后以關(guān)鍵字函數(shù)作為導(dǎo)航腳本的一部分,完成關(guān)鍵字到關(guān)鍵字實(shí)現(xiàn)函數(shù)的導(dǎo)航的功能。
如圖5所示,測(cè)試邏輯在執(zhí)行過程中(1)關(guān)鍵字將觸發(fā)關(guān)鍵字函數(shù),轉(zhuǎn)而執(zhí)行關(guān)鍵字函數(shù),即執(zhí)行導(dǎo)航腳本中的動(dòng)態(tài)腳本;(2)關(guān)鍵字函數(shù)根據(jù)關(guān)鍵字及與之對(duì)應(yīng)的導(dǎo)航關(guān)鍵字,查找中心數(shù)據(jù)庫,以獲取與關(guān)鍵字對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);本文中的加載是指把中心數(shù)據(jù)庫所有內(nèi)容加載到計(jì)算機(jī)內(nèi)存中或連接到數(shù)據(jù)庫;查找是指在中心數(shù)據(jù)庫中查找某條記錄;(3)導(dǎo)航腳本中的動(dòng)態(tài)腳本將測(cè)試邏輯中的關(guān)鍵字的參數(shù)也同時(shí)傳給關(guān)鍵字實(shí)現(xiàn)函數(shù),然后執(zhí)行關(guān)鍵字實(shí)現(xiàn)函數(shù),以完成相應(yīng)的測(cè)試功能;(4)將結(jié)果返回給測(cè)試邏輯,并確定測(cè)試邏輯是否繼續(xù)執(zhí)行下一個(gè)關(guān)鍵字,如果為否則結(jié)束整個(gè)流程。
可見,本發(fā)明中,由于新增加的關(guān)鍵字與導(dǎo)航關(guān)鍵字、關(guān)鍵字實(shí)現(xiàn)函數(shù)的對(duì)應(yīng)關(guān)系,只需要修改中心數(shù)據(jù)庫,不必修改導(dǎo)航腳本,所以提高了開發(fā)效率,降低了導(dǎo)航腳本的維護(hù)成本。其中的導(dǎo)航腳本可以通過腳本語言(如Python)或編譯語言(如C)來實(shí)現(xiàn)。
權(quán)利要求
1.一種關(guān)鍵字驅(qū)動(dòng)的導(dǎo)航方法,其特征在于,采用靜態(tài)腳本和動(dòng)態(tài)腳本組成導(dǎo)航腳本,包括以下步驟(S1)由所述靜態(tài)腳本完成中心數(shù)據(jù)庫的加載,并創(chuàng)建相應(yīng)的動(dòng)態(tài)腳本;(S2)所述動(dòng)態(tài)腳本根據(jù)所述關(guān)鍵字和與之對(duì)應(yīng)的導(dǎo)航關(guān)鍵字,獲取對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括以下步驟(S3)所述動(dòng)態(tài)腳本將測(cè)試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);(S4)執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),以完成相應(yīng)的測(cè)試功能。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述中心數(shù)據(jù)庫內(nèi)存儲(chǔ)有關(guān)于關(guān)鍵字、導(dǎo)航關(guān)鍵字以及關(guān)鍵字實(shí)現(xiàn)函數(shù)之間相互關(guān)系的信息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述步驟(S1)中,所述靜態(tài)腳本完成中心數(shù)據(jù)庫的加載后,根據(jù)所需的關(guān)鍵字來創(chuàng)建相應(yīng)的動(dòng)態(tài)腳本。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述步驟(S2)中,所述動(dòng)態(tài)腳本根據(jù)所述關(guān)鍵字和與之對(duì)應(yīng)的導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù)。
6.根據(jù)權(quán)利要求1-5中任一項(xiàng)所述的方法,其特征在于,所述導(dǎo)航腳本是通過腳本語言或編譯語言實(shí)現(xiàn)的。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述靜態(tài)腳本為初始化腳本;在所述步驟(S1)中,所述靜態(tài)腳本通過腳本語言動(dòng)態(tài)創(chuàng)建命令的特性來創(chuàng)建所述動(dòng)態(tài)腳本。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述腳本語言為工具命令語言(TCL)。
全文摘要
本發(fā)明涉及自動(dòng)化測(cè)試技術(shù),為達(dá)到新增AW(關(guān)鍵字)時(shí)不必修改導(dǎo)航腳本的目的,本發(fā)明提供一種關(guān)鍵字驅(qū)動(dòng)的導(dǎo)航方法,其中采用由靜態(tài)腳本和動(dòng)態(tài)腳本組成的導(dǎo)航腳本,并在中心數(shù)據(jù)庫內(nèi)存儲(chǔ)關(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)的動(dòng)態(tài)腳本;再由所述動(dòng)態(tài)腳本根據(jù)所述關(guān)鍵字和導(dǎo)航關(guān)鍵字,通過查找所述中心數(shù)據(jù)庫來獲取對(duì)應(yīng)的關(guān)鍵字實(shí)現(xiàn)函數(shù);同時(shí),所述動(dòng)態(tài)腳本將測(cè)試邏輯中的關(guān)鍵字的參數(shù)傳給所述關(guān)鍵字實(shí)現(xiàn)函數(shù);通過執(zhí)行所述關(guān)鍵字實(shí)現(xiàn)函數(shù),即可完成相應(yīng)的測(cè)試功能,并將結(jié)果返回給測(cè)試邏輯。本發(fā)明中的方法可提高開發(fā)效率,降低導(dǎo)航腳本的維護(hù)成本。
文檔編號(hào)G06F11/36GK1851664SQ20051003718
公開日2006年10月25日 申請(qǐng)日期2005年9月8日 優(yōu)先權(quán)日2005年9月8日
發(fā)明者林培興 申請(qǐng)人:華為技術(shù)有限公司