一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法
【專利摘要】本發(fā)明公開了一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,包括如下步驟:步驟一:定義語法;步驟二:對(duì)語義進(jìn)行分析;步驟三:生成目標(biāo)腳本。本發(fā)明使用測(cè)試用例與目標(biāo)腳本分離、一次測(cè)試用例編寫對(duì)應(yīng)多個(gè)目標(biāo)腳本的技術(shù),從測(cè)試用例到目標(biāo)代碼的生成只需要幾秒鐘,后期目標(biāo)代碼的維護(hù)也極為簡(jiǎn)單,只需修改測(cè)試用例重新轉(zhuǎn)換即可。
【專利說明】一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,具體涉及一種將測(cè)試人員利用熟悉的載體、并按簡(jiǎn)單的、一定的規(guī)則編寫的測(cè)試用例自動(dòng)轉(zhuǎn)換成目標(biāo)機(jī)可執(zhí)行的腳本文件的方法,本發(fā)明屬于軟件驗(yàn)證測(cè)試領(lǐng)域。
【背景技術(shù)】
[0002]隨著軟件規(guī)模的擴(kuò)大,軟件開發(fā)中出現(xiàn)錯(cuò)誤或缺陷的機(jī)會(huì)越來越多,市場(chǎng)對(duì)軟件質(zhì)量重要性的認(rèn)識(shí)逐漸增強(qiáng)。軟件測(cè)試在軟件項(xiàng)目實(shí)施過程中的重要性日益突出,自動(dòng)化測(cè)試作為軟件測(cè)試中重要的一塊,對(duì)測(cè)試人員的要求也有所提高,除了要使用自動(dòng)化測(cè)試工具外,還需要熟悉不同的腳本語言。
[0003]腳本文件編寫過程便是具體的測(cè)試用例的腳本轉(zhuǎn)化。初學(xué)的自動(dòng)化測(cè)試人員均會(huì)使用錄制腳本到修改腳本的過程。但專業(yè)化的建議是以錄制為參考,以編寫腳本為主要行為,以避免錄制腳本帶來的冗余、公用元素的不可調(diào)用、腳本的調(diào)試復(fù)雜等問題。
[0004]自動(dòng)化腳本文件的編寫要求測(cè)試人員具有一定的目標(biāo)腳本語言開發(fā)能力,通常一個(gè)測(cè)試團(tuán)隊(duì)里只有I到2名,而對(duì)于規(guī)模較大的測(cè)試用例編寫任務(wù),需要大部分測(cè)試人員參與,由于測(cè)試人員水平或者習(xí)慣不同導(dǎo)致了某些測(cè)試腳本文件質(zhì)量不高,甚至隱藏了錯(cuò)誤,影響測(cè)試結(jié)果的判斷。
【發(fā)明內(nèi)容】
[0005]為解決現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法。
[0006]為了實(shí)現(xiàn)上述目標(biāo),本發(fā)明采用如下的技術(shù)方案:
一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,包括如下步驟:
步驟一:定義語法;
步驟二:對(duì)語義進(jìn)行分析;
步驟三:生成目標(biāo)腳本。
[0007]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟一包括:
步驟Ia:分析被測(cè)系統(tǒng)的特點(diǎn);
步驟Ib:根據(jù)語法規(guī)則定義語句。
[0008]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述被測(cè)系統(tǒng)的特點(diǎn)包括被測(cè)系統(tǒng)所處環(huán)境,被測(cè)系統(tǒng)中的元素,被測(cè)系統(tǒng)中的屬性,被測(cè)系統(tǒng)的操作方法。
[0009]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述語句包括對(duì)象、屬性、操作方法、操作參數(shù)。
[0010]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟二包括:
步驟2a:利用所述語句編寫測(cè)試用例;
步驟2b:將測(cè)試用例導(dǎo)入,并根據(jù)已經(jīng)定義好的規(guī)則生成語義樹。
[0011]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟2b包括: 步驟2bl:順序讀取測(cè)試用例文件,此過程因測(cè)試用例文件類型不同而調(diào)用不同讀取接口函數(shù);
步驟2b2:根據(jù)當(dāng)前語法類型選擇調(diào)用不同的分析子過程,對(duì)于簡(jiǎn)單語法規(guī)則能夠一次性分析完成的,直接進(jìn)入步驟2b3 ;對(duì)于非一次性完成的語法規(guī)則,調(diào)用棧來臨時(shí)存儲(chǔ),只有在得到當(dāng)前語法規(guī)則的完成標(biāo)志后,才進(jìn)行步驟2b3 ;
步驟2b3:將步驟2b2獲取的結(jié)果加到全局語義樹中。
[0012]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟2b2獲取的結(jié)果即一個(gè)樹節(jié)點(diǎn)順序。
[0013]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟三包括:根據(jù)用戶選定的目標(biāo)腳本語言,將步驟2b3取得的語義樹轉(zhuǎn)換成目標(biāo)腳本代碼,并生成文件。
[0014]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述目標(biāo)腳本語言為Python、Perl 或 TK/Tcl。
[0015]前述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,步驟三包括:開發(fā)目標(biāo)代碼庫(kù),代碼庫(kù)覆蓋語法定義規(guī)則中的全部?jī)?nèi)容,語法規(guī)則中的每一個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)可執(zhí)行代碼塊;開發(fā)公用初始化代碼庫(kù)來連接被測(cè)系統(tǒng)。
[0016]本發(fā)明的有益之處在于:本發(fā)明使用測(cè)試用例與目標(biāo)腳本分離、一次測(cè)試用例編寫對(duì)應(yīng)多個(gè)目標(biāo)腳本的技術(shù),從測(cè)試用例到目標(biāo)代碼的生成只需要幾秒鐘,后期目標(biāo)代碼的維護(hù)也極為簡(jiǎn)單,只需修改測(cè)試用例重新轉(zhuǎn)換即可。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法的流程圖;
圖2是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法中語義樹生成過程圖;
圖3是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法中語義樹存儲(chǔ)圖;
圖4是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法中程序自動(dòng)轉(zhuǎn)換流程圖。
【具體實(shí)施方式】
[0018]以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作具體的介紹。
[0019]參照?qǐng)D1所示,本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,需要分為4個(gè)步驟:定義語法,對(duì)語義進(jìn)行分析,生成腳本代碼。
[0020]第一部分:定義語法。
[0021]首先要分析被測(cè)系統(tǒng)的特點(diǎn),在什么環(huán)境下,有什么元素,有哪些屬性,有哪些方法,根據(jù)一定的規(guī)則定義一些語句。一個(gè)完整的語句通常包括:對(duì)象、屬性、操作方法、操作參數(shù)等。例如:
Set Objective “Test PosX of SysI” ; //此處設(shè)置測(cè)試目標(biāo),用于測(cè)試過程中顯示給用戶;
Set Sysl.PosX 1000 ;//此處設(shè)置系統(tǒng)Sysl的屬性PosX的值為1000 ;
Load APPl ;//此語句啟動(dòng)應(yīng)用程序APPl
Get Sysl.PosX Temp//此處獲取系統(tǒng)Sysl的屬性PosX的值,并
存儲(chǔ)到臨時(shí)變量Temp ; 當(dāng)某些操作會(huì)被經(jīng)常使用,我們便可以編寫一個(gè)公用函數(shù)塊,以方便其它用例的調(diào)用。
[0022]語法規(guī)則是有限的,但是可擴(kuò)展的,不受限于目標(biāo)代碼要求。
[0023]第二部分:對(duì)語義進(jìn)行分析。
[0024]在語法規(guī)則定義完成之后就可以進(jìn)行測(cè)試用例的編寫了,測(cè)試用例可以保存在Txt文件、XML文件、Excel文件等。
[0025]當(dāng)用戶利用第一部分定義好的語句編寫完測(cè)試用例,就可以將測(cè)試用例導(dǎo)入,并根據(jù)已經(jīng)定義好的規(guī)則生成語義樹。圖2是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法中語義樹生成過程圖;圖3是本發(fā)明一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法中語義樹存儲(chǔ)圖;整個(gè)導(dǎo)入過程主要有以下幾個(gè)步驟:
步驟1:順序讀取測(cè)試用例文件,此過程因測(cè)試用例文件類型不同而調(diào)用不同讀取接口函數(shù);
步驟2:根據(jù)當(dāng)前語法類型選擇調(diào)用不同的分析子過程,對(duì)于簡(jiǎn)單語法規(guī)則可以一次性分析完成的,直接進(jìn)入步驟3 ;對(duì)于非一次性完成的語法規(guī)則,需要調(diào)用棧來臨時(shí)存儲(chǔ),只有在得到當(dāng)前語法規(guī)則的完成標(biāo)志后,才進(jìn)行步驟3,此過程涉及到嵌套問題,因此輸出結(jié)果也可能是一個(gè)多層級(jí)的樹;
步驟3:將步驟2獲取的結(jié)果即一個(gè)樹節(jié)點(diǎn)順序加到全局語義樹中。
[0026]語義分析實(shí)現(xiàn)了從文件數(shù)據(jù)到內(nèi)存數(shù)據(jù)的轉(zhuǎn)變,并以順序存儲(chǔ)的方式在多叉樹中。
[0027]執(zhí)行語句框代表一個(gè)或者多個(gè)其它基本功能點(diǎn),理論上支持3層以上的嵌套。
[0028]第三部分:生成目標(biāo)腳本。
[0029]根據(jù)用戶選定的目標(biāo)腳本語言,如Python、Perl、TK/Tcl等,將第二部分取得的語義樹轉(zhuǎn)換成目標(biāo)腳本代碼,并生成文件。此處需要預(yù)先開發(fā)目標(biāo)代碼庫(kù),代碼庫(kù)應(yīng)該覆蓋語法定義規(guī)則中的全部?jī)?nèi)容,語法規(guī)則中的每一個(gè)點(diǎn)都對(duì)應(yīng)了一個(gè)可執(zhí)行代碼塊。且為實(shí)現(xiàn)用戶接口內(nèi)容,還需要開發(fā)一些公用初始化代碼庫(kù)來連接被測(cè)系統(tǒng)。整個(gè)過程如下圖4所
/Jn ο
[0030]由此,本發(fā)明實(shí)現(xiàn)了以下幾點(diǎn):1.以預(yù)定義、有限、可擴(kuò)展的規(guī)則表示自動(dòng)化測(cè)試程序;2.以多叉樹的形式保存自動(dòng)化測(cè)試程序數(shù)據(jù),支持多層級(jí)嵌套3.根據(jù)選擇的目標(biāo)代碼自動(dòng)生成最終的可執(zhí)行目標(biāo)代碼即自動(dòng)化測(cè)試腳本文件4.目標(biāo)腳本文件可擴(kuò)展,方便移植,而無須重新編寫測(cè)試用例。
[0031]本發(fā)明使用測(cè)試用例與目標(biāo)腳本分離、一次測(cè)試用例編寫對(duì)應(yīng)多個(gè)目標(biāo)腳本的技術(shù),從測(cè)試用例到目標(biāo)代碼的生成只需要幾秒鐘,后期目標(biāo)代碼的維護(hù)也極為簡(jiǎn)單,只需修改測(cè)試用例重新轉(zhuǎn)換即可。
[0032]本發(fā)明的使用,使普通測(cè)試人員也能編寫自動(dòng)化測(cè)試用例,專業(yè)自動(dòng)化開發(fā)人員負(fù)責(zé)編寫目標(biāo)代碼庫(kù)即可。從而加快自動(dòng)化測(cè)試用例的編寫與維護(hù),縮短測(cè)試用例開發(fā)周期,提升了效率,節(jié)約了成本。
[0033]以上顯示和描述了本發(fā)明的基本原理、主要特征和優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,上述實(shí)施例不以任何形式限制本發(fā)明,凡采用等同替換或等效變換的方式所獲得的技術(shù)方案,均落在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,包括如下步驟: 步驟一:定義語法; 步驟二:對(duì)語義進(jìn)行分析; 步驟三:生成目標(biāo)腳本。
2.根據(jù)權(quán)利要求1所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟一包括: 步驟Ia:分析被測(cè)系統(tǒng)的特點(diǎn); 步驟Ib:根據(jù)語法規(guī)則定義語句。
3.根據(jù)權(quán)利要求2所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述被測(cè)系統(tǒng)的特點(diǎn)包括被測(cè)系統(tǒng)所處環(huán)境,被測(cè)系統(tǒng)中的元素,被測(cè)系統(tǒng)中的屬性,被測(cè)系統(tǒng)的操作方法。
4.根據(jù)權(quán)利要求3所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述語句包括對(duì)象、屬性、操作方法、操作參數(shù)。
5.根據(jù)權(quán)利要求1所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟二包括: 步驟2a:利用所述語句編寫測(cè)試用例; 步驟2b:將測(cè)試用例導(dǎo)入,并根據(jù)已經(jīng)定義好的規(guī)則生成語義樹。
6.根據(jù)權(quán)利要求5所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟2b包括: 步驟2bl:順序讀取測(cè)試用例文件,此過程因測(cè)試用例文件類型不同而調(diào)用不同讀取接口函數(shù); 步驟2b2:根據(jù)當(dāng)前語法類型選擇調(diào)用不同的分析子過程,對(duì)于簡(jiǎn)單語法規(guī)則能夠一次性分析完成的,直接進(jìn)入步驟2b3 ;對(duì)于非一次性完成的語法規(guī)則,調(diào)用棧來臨時(shí)存儲(chǔ),只有在得到當(dāng)前語法規(guī)則的完成標(biāo)志后,才進(jìn)行步驟2b3 ; 步驟2b3:將步驟2b2獲取的結(jié)果加到全局語義樹中。
7.根據(jù)權(quán)利要求6所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟2b2獲取的結(jié)果即一個(gè)樹節(jié)點(diǎn)順序。
8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述步驟三包括:根據(jù)用戶選定的目標(biāo)腳本語言,將步驟2b3取得的語義樹轉(zhuǎn)換成目標(biāo)腳本代碼,并生成文件。
9.根據(jù)權(quán)利要求8所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,所述目標(biāo)腳本語言為 Python、Perl 或 TK/Tcl。
10.根據(jù)權(quán)利要求9所述的一種測(cè)試程序自動(dòng)轉(zhuǎn)換方法,其特征在于,步驟三包括:開發(fā)目標(biāo)代碼庫(kù),代碼庫(kù)覆蓋語法定義規(guī)則中的全部?jī)?nèi)容,語法規(guī)則中的每一個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)可執(zhí)行代碼塊;開發(fā)公用初始化代碼庫(kù)來連接被測(cè)系統(tǒng)。
【文檔編號(hào)】G06F11/36GK103942140SQ201310702911
【公開日】2014年7月23日 申請(qǐng)日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】蘭積錢, 夏高明, 薛郝, 湯挺, 周明珠 申請(qǐng)人:江蘇銳天信息科技有限公司