本發(fā)明涉及應(yīng)用于Quick Test Professional測(cè)試工具的軟件測(cè)試框架技術(shù)領(lǐng)域,特別涉及一種基于五層框架的自動(dòng)化測(cè)試框架及方法。
背景技術(shù):
目前,大部分軟件公司不敢于執(zhí)行自動(dòng)化測(cè)試,首先自動(dòng)化測(cè)試需要錄入龐大的測(cè)試用例,工作量大造成人手不足;單一的功能錄入比較容易實(shí)現(xiàn),但大量的功能一層一層遞歸組合,會(huì)使測(cè)試用例幾何級(jí)增長(zhǎng)的同時(shí),復(fù)雜度也不斷提高。再加上軟件功能的修改,會(huì)使原來(lái)錄入的自動(dòng)化測(cè)試腳本失效,造成不可預(yù)知的風(fēng)險(xiǎn)。沒(méi)有一套成熟的自動(dòng)化測(cè)試框架,付出的測(cè)試成本高,達(dá)到目標(biāo)的成功率非常低。
針對(duì)現(xiàn)實(shí)中一個(gè)完整的測(cè)試系統(tǒng),測(cè)試用例到底應(yīng)該如何組織呢?在Quick Test Professional中建立多個(gè)Case,每個(gè)Case對(duì)應(yīng)實(shí)際功能組,在每個(gè)Case中,通過(guò)Action組織測(cè)試用例。例如一個(gè)軟件的Edit菜單下面有Find功能,F(xiàn)ind功能下面又有Find Next功能和Count All功能,對(duì)于Find Next功能的每一種情況,各個(gè)CheckBox選中或者不選中,又分別進(jìn)行測(cè)試。如果將Find Next歸類為一個(gè)Action,Count All歸類為一個(gè)Action,然后都放到同一個(gè)Case里面,這樣會(huì)綁得太死,其它功能就不能共享調(diào)用。如果將Find Next歸類為一個(gè)Action,Count All歸類為一個(gè)Action,然后放到不同Case里面,雖然解決前面的問(wèn)題,但這樣功能下面的CheckBox就沒(méi)法細(xì)化執(zhí)行。如果將每一個(gè)CheckBox歸類為一個(gè)Action,這樣測(cè)試腳本又太多,而且會(huì)出現(xiàn)很多重復(fù)的腳本。如果僅僅是對(duì)單個(gè)功能的錄制,不考慮大型的軟件系統(tǒng),錄制腳本是一個(gè)簡(jiǎn)單的事情。當(dāng)考慮整個(gè)軟件系統(tǒng)的大量功能組合,與窮盡的測(cè)試用例,這樣一個(gè)測(cè)試設(shè)計(jì)思想與及組織管理方案就變得相當(dāng)重要了。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于,提供一種基于五層框架的自動(dòng)化測(cè)試框架及方法,使自動(dòng)化測(cè)試框架減低了測(cè)試的工作量、降低測(cè)試的復(fù)雜度以及提高測(cè)試的成功率。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案:一種基于五層框架的自動(dòng)化測(cè)試框架,包括:函數(shù)庫(kù)模塊、邏輯控制腳本模塊、功能控制腳本模塊、對(duì)象庫(kù)模塊以及數(shù)據(jù)庫(kù)模塊;其中
所述函數(shù)庫(kù)模塊應(yīng)用于所述邏輯控制腳本模塊和功能控制腳本模塊,所述對(duì)象庫(kù)模塊、數(shù)據(jù)庫(kù)模塊引用功能控制腳本模塊,所述邏輯控制腳本模塊調(diào)用功能控制腳本模塊,形成五層框架而層層關(guān)聯(lián);
所述函數(shù)庫(kù)將重復(fù)代碼封裝成函數(shù),減少代碼的工作量;
所述邏輯控制腳本模塊利用VBScript語(yǔ)言編寫(xiě)的外部腳本,將Quick Test Professional中錄制的腳本整合成一個(gè)程序;
所述功能控制腳本為Quick Test Professional錄制的腳本;
所述對(duì)象庫(kù)模塊是處理Quick Test Professional錄制過(guò)程中無(wú)法識(shí)別的對(duì)象以及重復(fù)使用的對(duì)象,在不同的Case中重復(fù)使用;
所述數(shù)據(jù)庫(kù)模塊是用Excel表動(dòng)態(tài)傳送參數(shù),減少因代碼造成的重新錄制腳本的重復(fù)工作。
進(jìn)一步地,所述函數(shù)庫(kù)模塊封裝有數(shù)據(jù)庫(kù)表,獲取所述數(shù)據(jù)庫(kù)表的功能腳本通過(guò)調(diào)用函數(shù)庫(kù)模塊的通用函數(shù)去獲取數(shù)據(jù)庫(kù)表的數(shù)據(jù)。
本發(fā)明另一目的是提供一種基于五層框架的自動(dòng)化測(cè)試方法,包括以下步驟:
(1)創(chuàng)建通用函數(shù)GetData,作為所有Case共享調(diào)用;
(2)使用Quick Test Professional自動(dòng)化測(cè)試工具,新建Case,在Case中新建空白Action,用空白Action錄制功能控制腳本;
(3)在錄制功能控制腳本過(guò)程中,若出現(xiàn)不能識(shí)別的控件,則利用對(duì)象庫(kù)進(jìn)行識(shí)別;將識(shí)別并生成的對(duì)象導(dǎo)出到指定的工作目錄,提供給其它Case使用;
(4)功能控制腳本錄制完成后,獲取數(shù)據(jù)庫(kù)表格中的存放測(cè)試用例,調(diào)用通用函數(shù)GetData,獲取數(shù)據(jù)庫(kù)表格中的數(shù)據(jù);
(5)每個(gè)Case對(duì)應(yīng)一個(gè)功能,將多個(gè)Case利用樹(shù)型組織結(jié)構(gòu),合并成一個(gè)大的功能;編寫(xiě)邏輯控制腳本獲取Case的所在的目錄路徑,把多個(gè)大功能,合并成一個(gè)程序。
進(jìn)一步地,所述步驟(3),使用Quick Test Professional工具object repository點(diǎn)擊Add Objectto Local進(jìn)行對(duì)象添加并調(diào)入Action中調(diào)整腳本,啟動(dòng)Action運(yùn)行驗(yàn)證腳本是否通過(guò),若通過(guò)則表示為識(shí)別并生成的對(duì)象。
進(jìn)一步地,所述步驟(4)中,利用Excel數(shù)據(jù)表格避免每個(gè)測(cè)試用例錄制一個(gè)腳本的情況,所述Excel數(shù)據(jù)表格的每一行數(shù)據(jù)對(duì)應(yīng)一個(gè)測(cè)試用例。
采用上述技術(shù)方案后,本發(fā)明至少具有如下有益效果:
1、本發(fā)明對(duì)象庫(kù)中的對(duì)象,只要在其中一個(gè)Action錄入一次,所有Action都可以共用。
2、本發(fā)明的函數(shù)庫(kù),設(shè)計(jì)一個(gè)通用的獲取數(shù)據(jù)函數(shù)GetData,所有Action都可以調(diào)用這個(gè)函數(shù),不用重復(fù)編寫(xiě)獲取數(shù)據(jù)的腳本代碼。
3、本發(fā)明的數(shù)據(jù)庫(kù),以錄入用戶張三、李四作為不同的用戶登錄系統(tǒng)為例,即使增加其他更多的用戶,也不用修改測(cè)試腳本。
4、本發(fā)明的功能控制腳本,大部份由Quick Test Professional自動(dòng)錄入,只有很少用到手動(dòng)錄入。
5、本發(fā)明的邏輯控制腳本,可以直接點(diǎn)擊運(yùn)行,不用打開(kāi)和配置Quick Test Professional。
附圖說(shuō)明
圖1為本發(fā)明基于五層框架的自動(dòng)化測(cè)試框架的結(jié)構(gòu)圖;
圖2為本發(fā)明實(shí)施例自動(dòng)化測(cè)試框架的主界面圖;
圖3為本發(fā)明實(shí)施例中組織結(jié)構(gòu)圖;
圖4為本發(fā)明實(shí)施例中通用函數(shù)GetData腳本代碼;
圖5為本發(fā)明實(shí)施例中會(huì)議室預(yù)訂系統(tǒng)Case 1.登錄的功能控制腳本及數(shù)據(jù)庫(kù)表圖;
圖6為本發(fā)明實(shí)施例中會(huì)議室預(yù)訂系統(tǒng)Case 1.1.普通預(yù)訂的功能控制腳本及數(shù)據(jù)庫(kù)表實(shí)例圖;
圖7為本發(fā)明實(shí)施例中Quick Test Professional對(duì)象庫(kù)識(shí)別窗口實(shí)例圖;
圖8為本發(fā)明實(shí)施例中會(huì)議室預(yù)訂系統(tǒng)邏輯控制腳本實(shí)例圖;
圖9為本發(fā)明實(shí)施例中通用權(quán)限系統(tǒng)應(yīng)用本方案錄制的組織結(jié)構(gòu)實(shí)例圖。
具體實(shí)施方式
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互結(jié)合,下面結(jié)合附圖和具體實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例
在圖1中,函數(shù)庫(kù)可以應(yīng)用于邏輯控制腳本和功能控制腳本,對(duì)象庫(kù)和數(shù)據(jù)庫(kù)引用功能控制腳。在組織結(jié)構(gòu)時(shí),邏輯控制腳本又調(diào)用功能控制腳本,五層框架,層層關(guān)聯(lián)。
(1)首先創(chuàng)建通用函數(shù),作為所有Case共享調(diào)用。
(2)在Quick Test Professional自動(dòng)化測(cè)試工具,新建一個(gè)Case,在Case中新建一個(gè)Action,然后用這個(gè)空白Action錄制功能控制腳本。
(3)錄制過(guò)程中可能會(huì)有不能識(shí)別的控件,利用對(duì)象庫(kù)進(jìn)行識(shí)別,已識(shí)別并生成的對(duì)象可以導(dǎo)出到指定的工作目錄,以便其它Case使用時(shí)進(jìn)行共享,下次不用重新識(shí)別對(duì)象。
(4)功能腳本錄制完成后,要考慮多個(gè)測(cè)試用例共用一個(gè)測(cè)試腳本的情況,為了避免每個(gè)測(cè)試用例錄制一個(gè)腳本,就要利用到Excel數(shù)據(jù)表格,表格的每一行數(shù)據(jù)對(duì)應(yīng)一個(gè)測(cè)試用例。在功能腳本中調(diào)用剛才在第1步在函數(shù)庫(kù)中已創(chuàng)建好的通用函數(shù)GetData,獲取數(shù)據(jù)表格中的數(shù)據(jù)。因?yàn)椴煌挠美颊{(diào)用相同的函數(shù),所有對(duì)于不同的數(shù)據(jù),功能腳本是相同,實(shí)現(xiàn)了面向?qū)ο缶幊獭?/p>
(5)每個(gè)Case對(duì)應(yīng)一個(gè)功能,將多個(gè)Case利用樹(shù)型組織結(jié)構(gòu),合并成一個(gè)大的功能。編寫(xiě)邏輯控制腳本獲取Case的所在的目錄路徑,把多個(gè)大功能,合并成一個(gè)程序。
在圖2中所示的實(shí)施例子中,我們以會(huì)議室預(yù)訂系統(tǒng)作為例子,進(jìn)一步講解利用本方案設(shè)計(jì)自動(dòng)化測(cè)試的實(shí)際操作步驟。該軟件系統(tǒng)的功能包括:登錄、修改密碼、普通會(huì)議室預(yù)訂管理、固定會(huì)議室預(yù)訂管理、查詢預(yù)訂詳情等。
圖3所示的實(shí)施例子:
(1)首先創(chuàng)建一個(gè)登錄的Case,命名為“1.登錄”,因?yàn)樗械能浖δ芏家瘸晒δ艿卿浵到y(tǒng)才能操作,所以“1.登錄”是樹(shù)型組織結(jié)構(gòu)的根。
(2)成功登錄后,我們創(chuàng)建下一個(gè)Case,實(shí)現(xiàn)會(huì)議室普通預(yù)訂功能,因?yàn)樵摴δ苁堑卿浌δ艿囊粋€(gè)分支,所以命名為“1.1.普通預(yù)訂”,1.1為1下面的第一個(gè)分支。
(3)成功進(jìn)行會(huì)議室普通預(yù)訂后,我們創(chuàng)建下一個(gè)Case,實(shí)現(xiàn)會(huì)議室普通預(yù)訂的修改功能,因?yàn)槭菚?huì)議室普通預(yù)訂功能的一個(gè)分支,所以命名為“1.1.1.普通預(yù)訂修改”,1.1.1為1.1下面的第一個(gè)分支。
(4)我們?cè)賱?chuàng)建下一個(gè)Case,實(shí)現(xiàn)會(huì)議室普通預(yù)訂的刪除功能,因?yàn)槭菚?huì)議室普通預(yù)訂功能的另一個(gè)分支,所以命名為“1.1.2.普通預(yù)訂刪除”,1.1.2為1.1下面的第二個(gè)分支。
(5)按上面的步驟,如此類推,生成所有功能。
在圖4中所示的實(shí)施例子中,我們?cè)诤瘮?shù)庫(kù)中創(chuàng)建一個(gè)通用函數(shù)GetData,用于獲取數(shù)據(jù)表中的數(shù)據(jù)。這個(gè)函數(shù)需輸入一個(gè)參數(shù)名稱,函數(shù)的功能作用是實(shí)現(xiàn)循環(huán)整個(gè)數(shù)據(jù)表,然后返回一個(gè)對(duì)應(yīng)這個(gè)參數(shù)名稱的數(shù)據(jù)值。所有的測(cè)試Case都可以共享調(diào)用這個(gè)通用函數(shù)。
在圖5中所示的實(shí)施例子中,功能控制腳本都是通過(guò)Quick Test Professional的錄制功能去生成的。從圖的下面還可以看到,有一個(gè)存儲(chǔ)數(shù)據(jù)的Excel數(shù)據(jù)表格。里面存儲(chǔ)了兩條測(cè)試用例數(shù)據(jù),每條測(cè)試用例都對(duì)應(yīng)一個(gè)登錄用戶,但執(zhí)行的都是同一個(gè)功能腳本,因?yàn)樗鼈兌际钦{(diào)用通用函數(shù)GetData獲取數(shù)據(jù)。
在圖6中所示的實(shí)施例子中,從圖左邊的樹(shù)可以看到,它直接調(diào)用了Case“1.登錄”的功能腳本,對(duì)于登錄部分不用重復(fù)編寫(xiě)。其中有一個(gè)控件名稱叫"四月2015",這是一個(gè)圖片形的日期控制,因?yàn)镼uick Test Professional無(wú)法識(shí)別,所有利用了對(duì)象庫(kù)技術(shù)。
在圖7中所示的實(shí)施例子中,對(duì)象庫(kù)識(shí)別窗口可以生成無(wú)法識(shí)別的對(duì)象。生成后還可以進(jìn)行導(dǎo)出,然后再導(dǎo)進(jìn)其它Case進(jìn)行共享。
在圖8中所示的實(shí)施例子中,當(dāng)圖3中的所有Case功能完成后,可以通過(guò)圖8中的邏輯控制腳本將所有Case功能組合成一個(gè)程序的腳本文件,點(diǎn)擊這個(gè)腳本文件就可以自動(dòng)執(zhí)行整個(gè)程序。
在圖9中所示的實(shí)施例子中,利用本方案實(shí)現(xiàn)了通用權(quán)限系統(tǒng)的自動(dòng)化測(cè)試。通過(guò)實(shí)踐證明本測(cè)試方案都能取得成功。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以理解的是,在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例進(jìn)行多種等效的變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同范圍限定。