專利名稱:一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法及系統(tǒng)。
背景技術(shù):
TTCN3 (Testing and Test Control Notation vesion3,測試及測試控制表示法第 3版)作為一種標(biāo)準(zhǔn)化的測試描述和測試實施的測試腳本語言,已經(jīng)廣泛的應(yīng)用于各種電信協(xié)議和互聯(lián)網(wǎng)協(xié)議測試領(lǐng)域中,如可包括一致性測試、互操作測試、單元測試等。由于編解碼模塊是TTCN3系統(tǒng)中重要的軟件功能,因此,在進(jìn)行測試系統(tǒng)開發(fā)時,開發(fā)人員需要首先根據(jù)不同的測試平臺設(shè)置相應(yīng)的編解碼模塊,并基于設(shè)置的編解碼模塊對相應(yīng)的被測系統(tǒng)進(jìn)行后續(xù)的開發(fā)工作。TTCN3是一種描述性的腳本語言,不能直接用于驅(qū)動被測系統(tǒng),只有將TTCN3轉(zhuǎn)化成可執(zhí)行指令(可以是二進(jìn)制的可執(zhí)行指令)之后才能實現(xiàn)對被測系統(tǒng)的控制;因此,在運行TTCN3腳本語言之前需要對TTCN3腳本語言進(jìn)行編解碼,即將TTCN3腳本語言轉(zhuǎn)換成可執(zhí)行指令;而在對TTCN3腳本語言進(jìn)行編解碼過程中所使用到的TTCN3編解碼則顯得尤為重要。目前,生成TTCN3編解碼的方式,主要通過開發(fā)人員手動生成,具體包括以下步驟步驟1、開發(fā)人員針對當(dāng)前TTCN3測試腳本,梳理出該TTCN3測試腳本所需要的所有測試原語。步驟2、開發(fā)人員針對梳理出的每一條測試原語,分析該測試原語在TTCN3測試腳本中所采用的數(shù)據(jù)結(jié)構(gòu),并結(jié)合使用的編譯工具,確定出對該條測試原語進(jìn)行編解碼所需要使用的API (Application Programming hterface,應(yīng)用程序編程接口)函數(shù)。步驟3、開發(fā)人員確定出每條測試原語在當(dāng)前測試系統(tǒng)中所對應(yīng)的控制接口(控制接口是指編解碼對應(yīng)的控制碼流)。步驟4、開發(fā)人員針對每條測試原語,采用編譯工具根據(jù)該條測試原語對應(yīng)的控制接口、數(shù)據(jù)結(jié)構(gòu)以及API函數(shù)對相應(yīng)軟件程序進(jìn)行編譯,生成與該條測試原語相對應(yīng)的 TTCN3編解碼。采用現(xiàn)有的生成TTCN3編解碼的方式,存在以下技術(shù)缺陷(1)能否成功生成TTCN3編解碼較大的依賴于開發(fā)人員的自身素質(zhì),如需要開發(fā)人員不僅了解TTCN3測試腳本語法,還需要了解API函數(shù)對應(yīng)的編程語言等。(2)梳理、分析測試原語與當(dāng)前的測試系統(tǒng)的規(guī)模有緊密聯(lián)系,測試系統(tǒng)越復(fù)雜, 需要梳理、分析的測試原語數(shù)量越多,工作量越大、越繁瑣;在實際的開發(fā)工程中,往往可能會由于前期梳理、分析工作的遺漏或錯誤,將給后期的開發(fā)工作帶來較大的修正、增補等工作。(3)當(dāng)在測試系統(tǒng)中增加新的測試原語時,還需要技術(shù)人員對新增加的測試原語進(jìn)行上述(1)和( 的工作,當(dāng)新增加的測試原語較多時,通過該種人工生成編解碼的方式工作量大、效率低,從整體上來說不利于對測試系統(tǒng)的開發(fā)、升級等。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法及系統(tǒng),以提高將測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的速度、效率和成功率。一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法,包括接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。較佳地,所述對應(yīng)關(guān)系為當(dāng)前運行所述待轉(zhuǎn)換測試腳本的測試系統(tǒng)所對應(yīng)的對應(yīng)關(guān)系。較佳地,上述方法,在接收到所述轉(zhuǎn)換請求之前,還可包括步驟從所有的測試腳本源文件中提取出控制原語;針對每個測試系統(tǒng),從提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系并存儲。較佳地,上述方法中,從測試腳本源文件中提取控制原語,可包括從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。較佳地,上述方法中,生成分別與選取的控制原語相對應(yīng)的編解碼,可包括步驟 針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API 接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。較佳地,所述待轉(zhuǎn)換測試腳本的語言為測試及測試控制表示法第3版TTCN3語言。基于前述方法,本發(fā)明實施例還提供一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的系統(tǒng),該系統(tǒng)包括接收裝置,用于接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;控制原語確定裝置,用于從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;編解碼確定裝置,用于從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;轉(zhuǎn)換裝置,用于采用所述編解碼確定裝置確定出的編解碼對所述控制原語確定單元確定出的控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。較佳地,所述對應(yīng)關(guān)系為當(dāng)前運行所述待轉(zhuǎn)換測試腳本的測試系統(tǒng)所對應(yīng)的對應(yīng)關(guān)系。較佳地,上述系統(tǒng)還可包括
編解碼生成裝置,用于在所述接收裝置接收到所述轉(zhuǎn)換請求之前,從所有的測試腳本源文件中提取出控制原語;針對每個測試系統(tǒng),從提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語,生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系并存儲。較佳地,可將上述編碼生成裝置劃分為控制原語查找單元,用于從所有的測試腳本源文件中提取出控制原語;控制原語裁剪單元,用于針對每個測試系統(tǒng),從所述控制原語查找單元提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;編解碼生成單元,用于針對每個測試系統(tǒng),生成分別與所述測試系統(tǒng)對應(yīng)的選取控制原語相對應(yīng)的編解碼;存儲單元,用于建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,并存儲所述對應(yīng)關(guān)系。較佳地,所述控制原語查找單元,具體用于從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。較佳地,所述編解碼生成單元,具體用于針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。本發(fā)明實施例還提供一種應(yīng)用于測試腳本語言轉(zhuǎn)換過程中的編解碼生成裝置,該編解碼生成裝置可包括控制原語查找單元,用于從所有的測試腳本源文件中提取出控制原語;控制原語裁剪單元,用于針對每個測試系統(tǒng),從所述控制原語查找單元提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;編解碼生成單元,用于針對每個測試系統(tǒng),生成分別與所述測試系統(tǒng)對應(yīng)的選取控制原語相對應(yīng)的編解碼;存儲單元,用于建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,并存儲所述對應(yīng)關(guān)系。較佳地,所述控制原語查找單元,具體用于從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。較佳地,所述編解碼生成單元,具體用于針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。
本發(fā)明實施例中,在接收到攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求時,從該待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語,并從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼,然后再采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。采用本發(fā)明技術(shù)方案,在對待轉(zhuǎn)換測試腳本中的控制原語進(jìn)行編碼時,所采用的編解碼可直接從預(yù)存的控制原語與編解碼的對應(yīng)關(guān)系中獲取,相對于現(xiàn)有技術(shù)中針對每條控制原語需要通過技術(shù)人員人為的進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員對應(yīng)的API接口、采用相應(yīng)的編譯工具對各數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯等操作得到與該控制原語對應(yīng)的編解碼而言,本發(fā)明技術(shù)方案從一定程度上提高了獲取控制原語對應(yīng)的編解碼的速度,從而提高了將控制原語轉(zhuǎn)換成可執(zhí)行指令的速度,繼而從整體上提高了將測試腳本語言轉(zhuǎn)化成可執(zhí)行指令的速度和效率,在控制原語較多的情況下顯得尤為明顯;另外,本發(fā)明技術(shù)方案不需要依賴于技術(shù)人員的技術(shù)程度,因此,在一定程度上降低了人為因素而導(dǎo)致將控制原語轉(zhuǎn)換成可執(zhí)行指令失敗的問題,以提高將控制原語轉(zhuǎn)換成可執(zhí)行指令的成功率,人為因素如分析控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu)不準(zhǔn)確、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員的API接口不準(zhǔn)確、編譯錯誤等。
圖1為本發(fā)明實施例中實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法流程圖;圖2為本發(fā)明實施例中預(yù)設(shè)控制原語與編解碼的對應(yīng)關(guān)系的方法流程圖;圖3為本發(fā)明實施例中從所有測試腳本源文件中查找控制原語的方法流程圖;圖4為本發(fā)明實施例中實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的系統(tǒng)的結(jié)構(gòu)示意圖之一;圖5為本發(fā)明實施例中實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的系統(tǒng)的結(jié)構(gòu)示意圖之二;圖6為本發(fā)明實施例中編解碼生成裝置的結(jié)構(gòu)示意圖。
具體實施例方式針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明實施例提供一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法及系統(tǒng),以提高將測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的速度、效率和成功率。實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法,包括接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。采用本發(fā)明技術(shù)方案,在對待轉(zhuǎn)換測試腳本中的控制原語進(jìn)行編碼時,所采用的編解碼可直接從預(yù)存的控制原語與編解碼的對應(yīng)關(guān)系中獲取,相對于現(xiàn)有技術(shù)中針對每條控制原語需要通過技術(shù)人員人為的進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員對應(yīng)的API接口、采用相應(yīng)的編譯工具對各數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯等操作得到與該控制原語對應(yīng)的編解碼而言,本發(fā)明技術(shù)方案從一定程度上提高了獲取控制原語對應(yīng)的編解碼的速度,從而提高了將控制原語轉(zhuǎn)換成可執(zhí)行指令的速度,繼而從整體上提高了將測試腳本語言轉(zhuǎn)化成可執(zhí)行指令的速度和效率,在控制原語較多的情況下顯得尤為明顯;另外,本發(fā)明技術(shù)方案不需要依賴于技術(shù)人員的技術(shù)程度,因此,在一定程度上降低了人為因素而導(dǎo)致將控制原語轉(zhuǎn)換成可執(zhí)行指令失敗的問題, 以提高將控制原語轉(zhuǎn)換成可執(zhí)行指令的成功率,人為因素如分析控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu)不準(zhǔn)確、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員的API接口不準(zhǔn)確、編譯錯誤等。下面結(jié)合說明書附圖對本發(fā)明技術(shù)方案進(jìn)行詳細(xì)的描述。參見圖1,為本發(fā)明實施例中實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法流程圖, 該方法可包括步驟步驟101、接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求。步驟102、從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語。步驟103、從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼。步驟104、采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。較佳地,本發(fā)明實施例中,可預(yù)先針對所有的測試腳本源文件,從該測試腳本源文件中提取出控制原語(從各測試腳本源文件中提取出的控制原語可構(gòu)成控制原語集合), 并針對提取出的控制原語生成相對應(yīng)的編解碼,并建立各控制原語與編解碼之間的對應(yīng)關(guān)系并存儲,以便為后續(xù)對待轉(zhuǎn)換測試腳本中的控制原語進(jìn)行編碼時直接獲取控制原語對應(yīng)的編解碼。優(yōu)選地,由于同一個測試腳本可以應(yīng)用于不同的測試系統(tǒng),而不同的測試系統(tǒng)可能需要的控制原語和使用的編譯工具不同,因此,為適應(yīng)不同的測試系統(tǒng),以便在測試系統(tǒng)中運行還測試腳本能夠準(zhǔn)確的控制該測試系統(tǒng),本發(fā)明實施例中,針對每個測試系統(tǒng),可從控制原語集合中選取與所述測試系統(tǒng)相對應(yīng)的控制原語,并生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,即每個測試系統(tǒng)對應(yīng)于一個控制原語與相應(yīng)編解碼的對應(yīng)關(guān)系;即在測試腳本在當(dāng)前測試系統(tǒng)中運行時,對該測試腳本中的控制原語進(jìn)行編碼的編解碼是根據(jù)該當(dāng)前測試系統(tǒng)對應(yīng)的控制原語與編解碼的對應(yīng)關(guān)系確定出的,從而使得對測試腳本中的控制原語進(jìn)行編碼得到的可執(zhí)行指令更符合當(dāng)前測試系統(tǒng),運行該可執(zhí)行指令能夠更加準(zhǔn)確的對當(dāng)前測試系統(tǒng)進(jìn)行控制?;谏鲜鰞?nèi)容,本發(fā)明實施例中,在上述方法流程之前還包括控制源碼與相應(yīng)編解碼的對應(yīng)關(guān)系的預(yù)設(shè)流程,該預(yù)設(shè)流程如圖2所示,可包括步驟步驟201、從所有的測試腳本源文件中提取出控制原語。步驟202、針對每個測試系統(tǒng),從步驟201提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語。步驟203、針對步驟202中涉及到的測試系統(tǒng),為該測試系統(tǒng)對應(yīng)的每條控制原語生成對應(yīng)的編解碼;并建立該測試系統(tǒng)對應(yīng)的控制原語與其相應(yīng)編解碼的對應(yīng)關(guān)系。較佳地,本發(fā)明實施例中,為實現(xiàn)準(zhǔn)確的對當(dāng)前測試系統(tǒng)進(jìn)行控制,上述方法流程中的步驟103中使用的對應(yīng)關(guān)系是與當(dāng)前測試系統(tǒng)相對應(yīng)的對應(yīng)關(guān)系。較佳地,在測試系統(tǒng)中,可能會有很多的控制原語,但并不是測試腳本中所有的原語都需要編碼,開發(fā)的編解碼僅需要針對測試腳本中控制輸出端口的結(jié)構(gòu)定義符涉及的原語進(jìn)行編碼即可;因此,上述步驟201中,具體的實現(xiàn)方式如下針對每個測試腳本源文件, 從該測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要從該測試腳本源文件中提取出的控制原語。從所有的測試腳本源文件中提取控制原語的方式,具體的流程可如圖3所示。本發(fā)明實施例中的待轉(zhuǎn)換測試腳本的語言可以是TTCN3或TTCN2,由于待轉(zhuǎn)換測試腳本具有自身的特定語法(即TTCN語法),比如 如何定義結(jié)構(gòu)、如何定義Union、如何定義Port(即前述控制輸出端口);因此,上述方法流程的步驟103中,可通過查找與詞法分析,從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語。詞法分析主要是根據(jù)TTCN語法在測試腳本源文件中查找對應(yīng)的定義并記錄,如需要查找所有的Port,則在源文件中查找“Type port port名稱message {} ”的字符串(即前述的結(jié)構(gòu)定義符)即可。較佳地,上述方法流程中的步驟203中,針對每個測試系統(tǒng)對應(yīng)的每條控制原語, 生成與該控制原語對應(yīng)的編解碼,包括針對每條控制原語,根據(jù)該控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程 API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。參見圖3,為本發(fā)明實施例中從所有的測試腳本源文件中提取控制原語的方法流程圖,該方法包括步驟301、從當(dāng)前測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符,該當(dāng)前測試腳本源文件為當(dāng)前沒有進(jìn)行控制輸出端口的結(jié)構(gòu)定義符查找操作的腳本測試源文件中的其中一個。步驟302、記錄從該當(dāng)前測試腳本源文件中查找到的控制輸出端口的結(jié)構(gòu)定義符。步驟303、判斷是否已經(jīng)對所有的測試腳本文件進(jìn)行了控制輸出端口結(jié)構(gòu)定義符的查找,若是則執(zhí)行步驟304,否則對下一個未進(jìn)行控制輸出端口的結(jié)構(gòu)定義符查找操作的腳本測試源文件執(zhí)行步驟301。步驟304、從步驟302中記錄的控制輸出端口的結(jié)構(gòu)定義符中選取待分析的結(jié)構(gòu)定義符,并對該待分析的結(jié)構(gòu)定義符對應(yīng)的控制原語進(jìn)行分析,得到與該控制原語涉及到的數(shù)據(jù)結(jié)構(gòu),若該數(shù)據(jù)結(jié)構(gòu)包含子結(jié)構(gòu)的,還得到該數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),所述當(dāng)前控制輸出端口為步驟302中記錄中當(dāng)前還沒有進(jìn)行控制原語分析的控制輸出端口中的其中一個。步驟305、記錄步驟304對當(dāng)前控制輸出端口的結(jié)構(gòu)定義符對應(yīng)的控制原語進(jìn)行分析得到的對應(yīng)的數(shù)據(jù)結(jié)構(gòu)及其子結(jié)構(gòu)。步驟306、判斷是否對步驟302記錄的所有控制輸出端口的結(jié)構(gòu)定義符對應(yīng)的控制原語進(jìn)行了分析,若是則執(zhí)行步驟307,否則對下一個未進(jìn)行控制原語分析的控制輸出端口的結(jié)構(gòu)定義符執(zhí)行步驟304。步驟307、結(jié)束流程。較佳地,為了更進(jìn)一步的減少冗余信息,確??刂茰y試系統(tǒng)的精準(zhǔn)性,以減少測試系統(tǒng)的傳輸負(fù)荷,上述步驟202中,選取與測試系統(tǒng)相對應(yīng)的控制原語,具體如下根據(jù)測試系統(tǒng)所要實現(xiàn)的功能,根據(jù)選取用于實現(xiàn)各功能對應(yīng)的控制原語;將各控制原語轉(zhuǎn)換成可執(zhí)行指令,并設(shè)定各可執(zhí)行指令所需要的比特數(shù)?;谇笆龇椒鞒蹋景l(fā)明實施例還提供一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的系統(tǒng),該系統(tǒng)的結(jié)構(gòu)可如圖4所示,包括接收裝置41,用于接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;
控制原語確定裝置42,用于從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;編解碼確定裝置43,用于從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;轉(zhuǎn)換裝置44,用于采用編解碼確定裝置43確定出的編解碼對控制原語確定單元 42確定出的控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。較佳地,所述對應(yīng)關(guān)系為當(dāng)前運行所述待轉(zhuǎn)換測試腳本的測試系統(tǒng)所對應(yīng)的對應(yīng)關(guān)系。較佳地,上述系統(tǒng)還可包括編解碼生成裝置45,可如圖5所示編解碼生成裝置45,用于在接收裝置41接收到所述轉(zhuǎn)換請求之前,從所有的測試腳本源文件中提取出控制原語;針對每個測試系統(tǒng),從提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語,生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系并存儲。較佳地,本發(fā)明實施例還可對編解碼生成裝置45進(jìn)行劃分,如圖6所示劃分為控制原語查找單元451、控制原語裁剪單元452、編解碼生成單元453、存儲單元454,其中控制原語查找單元451,用于從所有的測試腳本源文件中提取出控制原語;控制原語裁剪單元452,用于針對每個測試系統(tǒng),從所述控制原語查找單元提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;編解碼生成單元453,用于針對每個測試系統(tǒng),生成分別與所述測試系統(tǒng)對應(yīng)的選取控制原語相對應(yīng)的編解碼;存儲單元454,用于建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,并存儲所述對應(yīng)關(guān)系。較佳地,控制原語查找單元451,具體用于從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。較佳地,編解碼生成單元453,具體用于針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。本發(fā)明實施例還提供一種應(yīng)用于測試腳本語言轉(zhuǎn)換過程中的編解碼生成裝置,該編解碼生成裝置的結(jié)構(gòu)如圖6所示,包括控制原語查找單元451、控制原語裁剪單元452、編解碼生成單元453、存儲單元454,各單元的功能如前所述,在此不再贅述。本發(fā)明實施例中,一方面,在對待轉(zhuǎn)換測試腳本中的控制原語進(jìn)行編碼時,所采用的編解碼可直接從預(yù)存的控制原語與編解碼的對應(yīng)關(guān)系中獲取,相對于現(xiàn)有技術(shù)中針對每條控制原語需要通過技術(shù)人員人為的進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員對應(yīng)的API接口、采用相應(yīng)的編譯工具對各數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯等操作得到與該控制原語對應(yīng)的編解碼而言,本發(fā)明技術(shù)方案從一定程度上提高了獲取控制原語對應(yīng)的編解碼的速度,從而提高了將控制原語轉(zhuǎn)換成可執(zhí)行指令的速度,繼而從整體上提高了將測試腳本語言轉(zhuǎn)化成可執(zhí)行指令的速度和效率,在控制原語較多的情況下顯得尤為明顯;另外,本發(fā)明技術(shù)方案不需要依賴于技術(shù)人員的技術(shù)程度,因此,在一定程度上降低了人為因素而導(dǎo)致將控制原語轉(zhuǎn)換成可執(zhí)行指令失敗的問題,以提高將控制原語轉(zhuǎn)換成可執(zhí)行指令的成功率,人為因素如分析控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu)不準(zhǔn)確、確定數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)成員的API接口不準(zhǔn)確、編譯錯誤等;另一方面,在預(yù)先設(shè)置控制原語與編解碼的對應(yīng)關(guān)系時, 針對不同的測試系統(tǒng)設(shè)置相應(yīng)的對應(yīng)關(guān)系,即在測試腳本在當(dāng)前測試系統(tǒng)中運行時,對該測試腳本中的控制原語進(jìn)行編碼的編解碼是根據(jù)該當(dāng)前測試系統(tǒng)對應(yīng)的控制原語與編解碼的對應(yīng)關(guān)系確定出的,從而使得對測試腳本中的控制原語進(jìn)行編碼得到的可執(zhí)行指令更符合當(dāng)前測試系統(tǒng),運行該可執(zhí)行指令能夠更加準(zhǔn)確的對當(dāng)前測試系統(tǒng)進(jìn)行控制;再一方面,在針對每個測試系統(tǒng)預(yù)設(shè)控制原語與編解碼的對應(yīng)關(guān)系時,是對選取出的與該測試系統(tǒng)對應(yīng)的控制原語生成相應(yīng)的編解碼并存儲對應(yīng)關(guān)系,因此不需要對測試系統(tǒng)不對應(yīng)的控制原語生成相應(yīng)的編解碼操作,因此,不僅提高了編解碼生成速度,而且還更進(jìn)一步的減少冗余信息,以減少測試系統(tǒng)的傳輸負(fù)荷。 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法,其特征在于,包括接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。
2.如權(quán)利要求1所述的方法,其特征在于,所述對應(yīng)關(guān)系為當(dāng)前運行所述待轉(zhuǎn)換測試腳本的測試系統(tǒng)所對應(yīng)的對應(yīng)關(guān)系。
3.如權(quán)利要求2所述的方法,其特征在于,在接收到所述轉(zhuǎn)換請求之前,還包括從所有的測試腳本源文件中提取出控制原語;針對每個測試系統(tǒng),從提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語; 生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系并存儲。
4.如權(quán)利要求3所述的方法,其特征在于,從測試腳本源文件中提取控制原語,包括從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。
5.如權(quán)利要求4所述的方法,其特征在于,所述生成分別與選取的控制原語相對應(yīng)的編解碼,包括針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。
6.如權(quán)利要求1 5任一項所述的方法,其特征在于,所述待轉(zhuǎn)換測試腳本的語言為測試及測試控制表示法第3版TTCN3語言。
7.一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的系統(tǒng),其特征在于,包括接收裝置,用于接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;控制原語確定裝置,用于從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;編解碼確定裝置,用于從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;轉(zhuǎn)換裝置,用于采用所述編解碼確定裝置確定出的編解碼對所述控制原語確定單元確定出的控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述對應(yīng)關(guān)系為當(dāng)前運行所述待轉(zhuǎn)換測試腳本的測試系統(tǒng)所對應(yīng)的對應(yīng)關(guān)系。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,還包括編解碼生成裝置,用于在所述接收裝置接收到所述轉(zhuǎn)換請求之前,從所有的測試腳本源文件中提取出控制原語;針對每個測試系統(tǒng),從提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語,生成分別與選取的控制原語相對應(yīng)的編解碼,并建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系并存儲。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述編解碼生成裝置包括 控制原語查找單元,用于從所有的測試腳本源文件中提取出控制原語;控制原語裁剪單元,用于針對每個測試系統(tǒng),從所述控制原語查找單元提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;編解碼生成單元,用于針對每個測試系統(tǒng),生成分別與所述測試系統(tǒng)對應(yīng)的選取控制原語相對應(yīng)的編解碼;存儲單元,用于建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,并存儲所述對應(yīng)關(guān)系。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述控制原語查找單元,具體用于從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。
12.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述編解碼生成單元,具體用于針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。
13.一種應(yīng)用于測試腳本語言轉(zhuǎn)換過程中的編解碼生成裝置,其特征在于,包括 控制原語查找單元,用于從所有的測試腳本源文件中提取出控制原語;控制原語裁剪單元,用于針對每個測試系統(tǒng),從所述控制原語查找單元提取出的控制原語中選取與所述測試系統(tǒng)相對應(yīng)的控制原語;編解碼生成單元,用于針對每個測試系統(tǒng),生成分別與所述測試系統(tǒng)對應(yīng)的選取控制原語相對應(yīng)的編解碼;存儲單元,用于建立選取的控制原語與相應(yīng)的編解碼的對應(yīng)關(guān)系,并存儲所述對應(yīng)關(guān)系。
14.如權(quán)利要求13所述的裝置,其特征在于,所述控制原語查找單元,具體用于從所述測試腳本源文件中查找控制輸出端口對應(yīng)的結(jié)構(gòu)定義符;將查找到的結(jié)構(gòu)定義符對應(yīng)的原語確定為需要提取的控制原語。
15.如權(quán)利要求13所述的裝置,其特征在于,所述編解碼生成單元,具體用于針對每條選取的控制原語,根據(jù)選取的控制原語對應(yīng)的控制輸出端口的結(jié)構(gòu)定義符分析出所述控制原語對應(yīng)的數(shù)據(jù)結(jié)構(gòu),并確定出所述數(shù)據(jù)結(jié)構(gòu)中每個數(shù)據(jù)成員對應(yīng)的應(yīng)用程序編程API接口 ;采用所述測試系統(tǒng)對應(yīng)的編譯工具對所述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)成員對應(yīng)的API接口進(jìn)行編譯,得到的編譯結(jié)果即為選取的控制原語所對應(yīng)的編解碼。
全文摘要
本發(fā)明公開了一種實現(xiàn)測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的方法及系統(tǒng),以提高將測試腳本語言轉(zhuǎn)換成可執(zhí)行指令的速度、效率和成功率。方法包括接收攜帶有待轉(zhuǎn)換測試腳本的轉(zhuǎn)換請求;從所述待轉(zhuǎn)換測試腳本中確定出待轉(zhuǎn)換控制原語;從存儲的控制原語與編解碼的對應(yīng)關(guān)系中,確定出與所述待轉(zhuǎn)換控制原語對應(yīng)的編解碼;采用確定出的編解碼對所述待轉(zhuǎn)換控制原語進(jìn)行編碼,形成相應(yīng)的可執(zhí)行指令。本發(fā)明技術(shù)方案從一定程度上提高了獲取控制原語對應(yīng)的編解碼的速度,從而提高了將控制原語轉(zhuǎn)換成可執(zhí)行指令的速度,繼而從整體上提高了將測試腳本語言轉(zhuǎn)化成可執(zhí)行指令的速度和效率,在控制原語較多的情況下顯得尤為明顯。
文檔編號G06F9/45GK102426534SQ201110342190
公開日2012年4月25日 申請日期2011年11月2日 優(yōu)先權(quán)日2011年11月2日
發(fā)明者崔瀟揚 申請人:大唐移動通信設(shè)備有限公司