一種應(yīng)用于測試系統(tǒng)的代碼重用方法
【專利摘要】本發(fā)明公開了一種應(yīng)用于測試系統(tǒng)的代碼重用方法,選擇在測試框架代碼中重用的代碼的頭文件和相匹配的代碼文件;利用正則表達(dá)式自動解析頭文件并從中獲取符合格式要求的函數(shù);在圖形界面中顯示解析出的信息,在圖形界面中為函數(shù)配置調(diào)用的位置、返回值以及要傳遞給函數(shù)的參數(shù);完成配置后,自動對配置進(jìn)行合法性檢查;自動將函數(shù)的調(diào)用語句添加到選擇的位置,并且將對頭文件的包含語句添加到相應(yīng)的位置、將頭文件和代碼文件與生成的其他代碼文件一起編譯并生成可執(zhí)行程序。本發(fā)明根據(jù)測試需求自動生成函數(shù)調(diào)用語句并將其生成到需要的位置;可以自動解析代碼并獲取函數(shù)相關(guān)信息以便方便地利用圖形化界面操作的方式讓測試人員完成代碼重用的配置。
【專利說明】一種應(yīng)用于測試系統(tǒng)的代碼重用方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種應(yīng)用于測試系統(tǒng)的代碼重用方法,屬于嵌入式軟件測試技術(shù)領(lǐng) 域。
【背景技術(shù)】
[0002] 在測試過程中,測試人員經(jīng)常希望能夠重用以前的代碼。重用代碼一方面可以節(jié) 省大量的時間和成本,以便在最短的時間內(nèi)完成測試工作,另一方面利用經(jīng)過驗證的算法 和代碼模型進(jìn)行測試,可以提高測試過程本身的可靠性和安全性。
[0003] 當(dāng)前很多的測試系統(tǒng)都不具備完善的代碼重用功能,例如ADS2、dSPACE等等,或 者如GESTE、TestShell等測試系統(tǒng)雖然提供了部分代碼重用功能,但還有一定的缺陷。常 用的代碼重用方法有以下幾種:有的測試系統(tǒng)開放全部的測試框架代碼,可供測試人員修 改,測試人員可以通過手動修改代碼來完成代碼重用操作;有的測試系統(tǒng)只開放了一部分 關(guān)鍵代碼,例如,測試系統(tǒng)進(jìn)行數(shù)據(jù)傳輸之前和之后的代碼,以便測試人員在這些位置添加 自己的函數(shù)調(diào)用和代碼重用操作;有的測試系統(tǒng)能夠調(diào)用動態(tài)鏈接庫里的函數(shù),這也是代 碼重用功能的另一種體現(xiàn)。
[0004] 但是,這些實現(xiàn)代碼重用的方法都有一些缺陷。首先,如果測試系統(tǒng)重用的代碼是 以動態(tài)鏈接庫形式添加到系統(tǒng)中調(diào)用的,那么必然要損失一定的靈活性,重用的代碼必須 使用編譯器編譯好然后再由測試系統(tǒng)進(jìn)行調(diào)用,但是一般作為測試系統(tǒng)運行載體的計算機(jī) 不一定配備編譯器和開發(fā)環(huán)境,如果需要對重用的代碼做出修改需要到別的機(jī)器上修改代 碼并編譯完成后再將編譯好的動態(tài)鏈接庫拷貝到測試系統(tǒng)中,出于保密性的考慮這種方法 不可取。
[0005] 對于開放部分或全部測試框架代碼實現(xiàn)代碼重用的測試系統(tǒng),通常這些系統(tǒng)的測 試框架代碼都是提前編寫好或者是根據(jù)測試活動的要求自動生成的,這種測試系統(tǒng)一定會 配備代碼編輯器和編譯器,如果需要修改重用的代碼,測試人員只要在測試系統(tǒng)里直接修 改再進(jìn)行編譯即可。然而,這種實現(xiàn)代碼重用的方法也有自己的缺陷:首先,測試人員必須 打開要重用的代碼文件進(jìn)行閱讀才能了解其中代碼的特性;其次,測試人員手動修改、編寫 代碼不僅效率低而且易出錯,嚴(yán)重影響測試效率;再次,測試人員手動修改的代碼很難被測 試系統(tǒng)識別出來,測試人員對測試框架代碼做出修改后,如果因為某些原因必須重新生成 測試框架代碼,則必須在生成代碼后重新進(jìn)行代碼修改;最重要的是,測試人員必須對測試 系統(tǒng)生成的測試框架代碼足夠熟悉才可以通過修改代碼完成代碼重用操作,提高了測試人 員的技術(shù)門檻和測試成本。
[0006] 因此,需要一種方法,一方面可以根據(jù)測試需求自動生成函數(shù)調(diào)用語句并將其生 成到需要的位置,另一方面可以自動解析代碼并獲取函數(shù)相關(guān)信息以便方便地利用圖形化 界面操作的方式讓測試人員完成代碼重用的配置,并且在重新生成測試框架代碼后不需要 重新進(jìn)行代碼重用的配置或修改工作。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種應(yīng)用于測試系統(tǒng)的代碼重 用方法,一方面可以根據(jù)測試需求自動生成函數(shù)調(diào)用語句并將其生成到需要的位置;另一 方面可以自動解析代碼并獲取函數(shù)相關(guān)信息,以便方便地利用圖形化界面操作的方式讓測 試人員完成代碼重用的配置,并且在重新生成測試框架代碼后不需要重新進(jìn)行代碼重用的 配置或修改工作。
[0008] 本發(fā)明技術(shù)方案如下:
[0009] -種應(yīng)用于測試系統(tǒng)的代碼重用方法,能夠自動解析代碼的頭文件并且將頭文件 中的函數(shù)提取出來供測試人員通過圖形界面進(jìn)行配置并自動完成函數(shù)的調(diào)用:
[0010] 具體實現(xiàn)步驟:
[0011] (1)測試人員選擇要在測試框架代碼中重用的代碼的頭文件和相匹配的代碼文 件;所述測試框架代碼指測試系統(tǒng)為滿足代碼重用需求而開放出來的描述測試過程的代 碼,這些代碼由測試系統(tǒng)自動生成;
[0012] (2)利用正則表達(dá)式自動解析頭文件并從中獲取符合格式要求的函數(shù),并將函數(shù) 的函數(shù)名、返回值、參數(shù)等信息保存到數(shù)據(jù)容器中,數(shù)據(jù)容器可以使用數(shù)組、鏈表、容器、哈 希表等各種類型的數(shù)據(jù)容器,對方法本身的實現(xiàn)沒有影響;所述自動解析頭文件并從中獲 取符合格式要求的函數(shù)按照以下步驟進(jìn)行:
[0013] a)打開頭文件并且獲取一行內(nèi)容存入字符串,該字符串稱為"源字符串";
[0014] b)利用正則表達(dá)式判斷"源字符串"的內(nèi)容是否符合函數(shù)的標(biāo)準(zhǔn)形式,所述"函數(shù) 標(biāo)準(zhǔn)形式"指應(yīng)用本方法的測試系統(tǒng)所生成的測試框架代碼采用的編程語言中對"函數(shù)"的 形式所作的規(guī)定,隨著編程語言的不同,函數(shù)的標(biāo)準(zhǔn)形式和應(yīng)采用的正則表達(dá)式不同,但只 需能夠判斷"源字符串"是否符合函數(shù)的標(biāo)準(zhǔn)形式即可,對方法本身的實現(xiàn)沒有影響;
[0015] c)如果"源字符串"的內(nèi)容符合格式要求,也就是說,符合函數(shù)的標(biāo)準(zhǔn)形式,從其 中獲取函數(shù)的返回值、函數(shù)名以及調(diào)用函數(shù)需要傳遞的各參數(shù)保存到數(shù)據(jù)容器中并繼續(xù)解 析直至頭文件中的內(nèi)容全部解析完畢;如果不符合格式要求,獲取下一行內(nèi)容存入"源字符 串"中直至頭文件中的內(nèi)容全部解析完畢;
[0016] (3)在圖形界面中顯示步驟2)解析出的函數(shù)的信息,測試人員在圖形界面中為函 數(shù)配置調(diào)用的位置、返回值以及要傳遞給函數(shù)的參數(shù)以便完成代碼重用的配置,步驟(3) 執(zhí)行的條件是步驟(2)執(zhí)行完畢且獲得了符合格式要求的函數(shù),否則回到步驟1);
[0017] (4)完成代碼重用配置后,自動對測試人員的配置進(jìn)行合法性檢查,檢查按照以下 步驟進(jìn)行:
[0018] a)所選函數(shù)的參數(shù)是否全部配置;
[0019] b)所選函數(shù)是否有返回值,返回值是否配置;
[0020] c)函數(shù)的參數(shù)和返回值配置是否正確,類型是否匹配;
[0021] d)函數(shù)的調(diào)用位置是否正確配置;
[0022] (5)測試系統(tǒng)生成測試框架代碼的時候自動將函數(shù)的調(diào)用語句添加到測試人員選 擇的位置,并且將對頭文件的包含語句添加到相應(yīng)的位置、將頭文件和代碼文件與生成的 其他代碼文件一起編譯并生成可執(zhí)行程序;函數(shù)的調(diào)用語句生成的格式為"返回值=函數(shù) 名(參數(shù)1,參數(shù)2,……,參數(shù)η);",如果函數(shù)不包括返回值則生成的調(diào)用語句格式為"函 數(shù)名(參數(shù)1,參數(shù)2,......,參數(shù)η); ";
[0023] 步驟(1)中所述的代碼文件,包括擴(kuò)展名為.c或.cpp等形式的代碼文本文件 和.〇或.lib等形式的經(jīng)過編譯的代碼庫文件。
[0024] 步驟⑶中所述的傳遞給函數(shù)的參數(shù),可以選擇多種形式:常量、測試系統(tǒng)中的變 量以及測試人員自定義的變量;所述"測試系統(tǒng)中的變量"是指測試系統(tǒng)為實現(xiàn)測試數(shù)據(jù)記 錄、收集和方便區(qū)分管理測試過程中測試人員關(guān)心的關(guān)鍵數(shù)值和物理量所定義的變量,針 對不同的測試系統(tǒng)其名稱可能不同;自定義變量要以圖形界面的形式提供測試人員配置變 量作用域、初始值、變量數(shù)據(jù)類型以及變量名的功能;所述變量作用域指變量是全局變量還 是局部變量。
[0025] 步驟(3)中所述的函數(shù)調(diào)用的位置對應(yīng)于測試系統(tǒng)中的變量的各個階段,可以選 擇變量傳輸前和變量傳輸后、以及變量的初始化和銷毀階段;函數(shù)調(diào)用位置的選擇按照以 下原則進(jìn)行:
[0026] a)如果函數(shù)本身對調(diào)用位置有明確的要求,按照要求選擇;例如,函數(shù)要對變量 值進(jìn)行操作,則必須在變量初始化完成后調(diào)用;
[0027] b)如果函數(shù)本身對調(diào)用位置沒有明確的要求,按照函數(shù)的功能選擇;例如,測試 系統(tǒng)中的變量通常分為發(fā)送變量和接收變量,某函數(shù)的功能為按照某種算法計算校驗位, 則應(yīng)該在發(fā)送變量開始傳輸前調(diào)用;
[0028] 步驟(5)中所述的將對頭文件的包含語句添加到相應(yīng)的位置,將頭文件和代碼文 件與生成的其他代碼文件一起編譯包括自動解析測試人員選擇重用的頭文件和代碼文件, 找出文件中對其他頭文件的引用并進(jìn)一步查找這些頭文件中對其他頭文件的引用,將這些 直接、間接引用的頭文件自動拷貝到生成的測試框架代碼的路徑下以保證編譯正常進(jìn)行。
[0029] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:通過自動解析重用代碼中的函數(shù),測試系統(tǒng) 能夠?qū)⒑瘮?shù)的結(jié)構(gòu)通過圖形界面表達(dá)給測試人員且測試人員能夠方便地利用圖形化界面 操作的方式完成代碼重用的配置,一方面對重用的代碼進(jìn)行了更好的封裝、測試人員不必 打開代碼文件即可完成代碼重用的相關(guān)操作,另一方面利用圖形界面提高測試人員工作的 效率并對測試人員的配置進(jìn)行合法性檢查,可以在對代碼進(jìn)行編譯之前就檢查出測試系統(tǒng) 中存在的錯誤,提高測試過程本身的可靠性;此外,本發(fā)明所述的代碼重用方法支持將編譯 完成的庫文件重用到測試系統(tǒng)中,可以滿足有保密要求的測試活動。本發(fā)明所述方法可以 根據(jù)測試需求自動生成函數(shù)調(diào)用語句并將其生成到需要的位置,測試人員不必了解測試框 架代碼就可以完成代碼重用的配置工作,并且測試人員不需要手動修改測試框架代碼,避 免了由于人為原因造成錯誤;代碼重用的配置信息不受重新生成測試框架代碼的影響,所 以在重新生成測試框架代碼后不需要重新進(jìn)行代碼重用的配置或修改工作。
【專利附圖】
【附圖說明】
[0030] 圖1為本發(fā)明所述的一種應(yīng)用于測試系統(tǒng)的代碼重用方法的實現(xiàn)過程;
[0031] 圖2為本發(fā)明所述方法的實施例中代碼重用信息管理類的結(jié)構(gòu);
[0032] 圖3為本發(fā)明所述方法的實施例中函數(shù)信息管理類的結(jié)構(gòu);
[0033] 圖4為本發(fā)明所述方法的實施例中自定義變量信息管理類的結(jié)構(gòu)。
【具體實施方式】
[0034] 為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具 體實施例進(jìn)行詳細(xì)描述。
[0035] 本發(fā)明涉及一種應(yīng)用于測試系統(tǒng)的代碼重用方法,這種方法一方面可以根據(jù)測試 需求自動生成函數(shù)調(diào)用語句并將其生成到需要的位置;另一方面可以自動解析代碼并獲取 函數(shù)相關(guān)信息以便方便地利用圖形化界面操作的方式讓測試人員完成代碼重用的配置,并 且在重新生成測試框架代碼后不需要重新進(jìn)行代碼重用的配置或修改工作。
[0036] 如圖1所示,本發(fā)明在實施例中的具體步驟如下:
[0037] 步驟一:測試人員選擇要在測試框架代碼中重用的代碼的頭文件和相匹配的代碼 文件。所述的代碼文件,包括擴(kuò)展名為.C或.cpp等形式的代碼文本文件和.0或.lib等 形式的經(jīng)過編譯的代碼庫文件。在本實施例中,在測試系統(tǒng)中提供圖形界面以便測試人員 設(shè)置代碼重用文件的路徑和文件名,本實施例中應(yīng)用方法的系統(tǒng)基于VxWorks系統(tǒng),故測 試系統(tǒng)的支持添加.c和.〇形式的代碼文件。
[0038] 步驟二:利用正則表達(dá)式自動解析頭文件并從中獲取符合格式要求的函數(shù),并將 函數(shù)的函數(shù)名、返回值、參數(shù)等信息保存到數(shù)據(jù)容器中,數(shù)據(jù)容器可以使用數(shù)組、鏈表、容 器、哈希表等各種類型的數(shù)據(jù)容器,對方法本身的實現(xiàn)沒有影響。本發(fā)明所述方法自動解析 頭文件并從中獲取符合格式要求的函數(shù)按照以下步驟進(jìn)行:
[0039] a)打開頭文件并且獲取一行內(nèi)容存入字符串,該字符串稱為"源字符串";
[0040] b)利用正則表達(dá)式判斷"源字符串"的內(nèi)容是否符合函數(shù)的標(biāo)準(zhǔn)形式,所述"函數(shù) 標(biāo)準(zhǔn)形式"指應(yīng)用本方法的測試系統(tǒng)所生成的測試框架代碼采用的編程語言中對"函數(shù)"的 形式所作的規(guī)定,隨著編程語言的不同,函數(shù)的標(biāo)準(zhǔn)形式和應(yīng)采用的正則表達(dá)式不同,但只 需能夠判斷"源字符串"是否符合函數(shù)的標(biāo)準(zhǔn)形式即可,對方法本身的實現(xiàn)沒有影響;
[0041] c)如果"源字符串"的內(nèi)容符合格式要求,也就是說,符合函數(shù)的標(biāo)準(zhǔn)形式,從其 中獲取函數(shù)的返回值、函數(shù)名以及調(diào)用函數(shù)需要傳遞的各參數(shù)保存到數(shù)據(jù)容器中并繼續(xù)解 析直至頭文件中的內(nèi)容全部解析完畢;如果不符合格式要求,獲取下一行內(nèi)容存入"源字符 串"中直至頭文件中的內(nèi)容全部解析完畢;
[0042] 在本實施例中,使用類CCodeReUselnfo來管理代碼重用信息,類CCodeReUselnfo 的類圖見附圖2,它包含CHeadFilelnfo類的對象和CCodeFilelnfo類的對象,這兩個 對象分別用來記錄和管理測試人員選擇的頭文件的相關(guān)信息和代碼文件相關(guān)信息,其 中,CCodeFilelnfo類中包含STRING類型的成員變量m_strCodeFilePath,該變量用于 記錄測試人員選擇的代碼文件的路徑;CHeadFilelnfo包含STRING類型的成員變量m_ strHeadFilePath,該變量用于記錄測試人員選擇的頭文件的路徑;CHeadFilelnfo類還包 含一個key為STRING型,value為CFunctionlnfo類對象的map,用于記錄解析出的各函數(shù) 的信息以及測試人員對函數(shù)的配置信息,函數(shù)名作為key。CCodeReUselnfo類還包含一個 key為STRING型,value為⑶serVariablelnfo類對象的map,用于記錄測試人員定義的各 自定義變量的信息,其中,key為變量名。
[0043] 步驟三:在圖形界面中顯示步驟二解析出的函數(shù)的信息,測試人員在圖形界面中 為函數(shù)配置調(diào)用的位置、返回值以及要傳遞給函數(shù)的參數(shù),步驟三執(zhí)行的條件是步驟二執(zhí) 行完畢且獲得了符合格式要求的函數(shù),否則回到步驟一。
[0044] 所述的傳遞給函數(shù)的參數(shù),可以選擇多種形式:常量、測試系統(tǒng)中的變量以及測試 人員自定義的變量;所述"測試系統(tǒng)中的變量"是指測試系統(tǒng)為實現(xiàn)測試數(shù)據(jù)記錄、收集和 方便區(qū)分管理測試過程中測試人員關(guān)心的關(guān)鍵數(shù)值和物理量所定義的變量,針對不同的測 試系統(tǒng)其名稱可能不同;自定義變量要以圖形界面的形式提供測試人員配置變量作用域、 初始值、變量數(shù)據(jù)類型以及變量名的功能;所述變量作用域指變量是全局變量還是局部變 量。
[0045] 在本發(fā)明實施例中,函數(shù)的各項配置保存在類CFunctionlnf〇類的對象中, 該類類圖如附圖3,CFunctionlnfo類含有三個STRING類的成員變量:m_strName、m_ strReturnType和m_strReturnValue,分別用于記錄函數(shù)的名稱、返回值類型和測試人員 實際配置的接收返回值的變量;CFunctionlnfo類還包含一個CCallPosition類型的數(shù)組, 用于記錄函數(shù)的調(diào)用位置,CCallPosition類的兩個成員變量m_strBindingVar和m_pos 分別用于記錄函數(shù)的調(diào)用位置與哪個變量綁定以及函數(shù)的調(diào)用語句應(yīng)該生成在變量相關(guān) 代碼的哪個位置;CFunctionlnfo類還包含兩個STRING類型的數(shù)組,分別用于記錄函數(shù)參 數(shù)的類型以及測試人員實際配置的傳遞給函數(shù)的參數(shù),并且兩個數(shù)組里的內(nèi)容是一一對應(yīng) 的。
[0046] 測試人員自定義變量的各項配置信息保存在類⑶serVariablelnfo當(dāng)中,該類 類圖如附圖4,CUserVariablelnfo包含四個STRING類型的成員變量:m_strVarName、m_ strDataType、m_Type、m_DefValue,分別用于記錄測試人員自定義的變量的名稱、數(shù)據(jù)類 型、變量作用域、變量的初值。
[0047] 所述的函數(shù)調(diào)用的位置對應(yīng)于測試系統(tǒng)中的變量的各個階段,可以選擇變量傳輸 前和變量傳輸后、以及變量的初始化和銷毀階段。
[0048] 步驟四:完成配置后,自動對測試人員的配置進(jìn)行合法性檢查,檢查按照以下步驟 進(jìn)行:
[0049] a)所選函數(shù)的參數(shù)是否全部配置;
[0050] b)所選函數(shù)是否有返回值,返回值是否配置;
[0051] c)函數(shù)的參數(shù)和返回值配置是否正確,類型是否匹配;
[0052] d)函數(shù)的調(diào)用位置是否正確配置;
[0053] 步驟五:測試系統(tǒng)生成測試框架代碼的時候自動將函數(shù)的調(diào)用語句添加到測試人 員選擇的位置,并且將對頭文件的包含語句添加到相應(yīng)的位置、將頭文件和代碼文件與生 成的其他代碼文件一起編譯并生成可執(zhí)行程序。函數(shù)的調(diào)用語句生成的格式為"返回值= 函數(shù)名(參數(shù)1,參數(shù)2,……,參數(shù)η); ",如果函數(shù)不包括返回值則生成的調(diào)用語句格式 為"函數(shù)名(參數(shù)1,參數(shù)2,……,參數(shù)η); "。
[0054] 本發(fā)明未詳細(xì)闡述部分屬于本領(lǐng)域公知技術(shù)。
[0055] 以上所述,僅為本發(fā)明部分【具體實施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任 何熟悉本領(lǐng)域的人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在 本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種應(yīng)用于測試系統(tǒng)的代碼重用方法,其特征在于實現(xiàn)步驟如下: (1) 選擇要在測試框架代碼中重用的代碼的頭文件和相匹配的代碼文件;所述測試框 架代碼指測試系統(tǒng)為滿足代碼重用需求而開放出來的描述測試過程的代碼,這些代碼由測 試系統(tǒng)自動生成; (2) 利用正則表達(dá)式自動解析頭文件并從中獲取符合格式要求的函數(shù),并將函數(shù)的函 數(shù)名、返回值、參數(shù)信息保存到數(shù)據(jù)容器中;所述利用正則表達(dá)式自動解析頭文件并從中獲 取符合格式要求的函數(shù)按照以下步驟進(jìn)行: (21) 打開頭文件并且獲取一行內(nèi)容存入字符串,該字符串稱為"源字符串"; (22) 利用正則表達(dá)式判斷"源字符串"的內(nèi)容是否符合函數(shù)的標(biāo)準(zhǔn)形式,所述函數(shù)標(biāo)準(zhǔn) 形式指測試系統(tǒng)所生成的測試框架代碼采用的編程語言中對"函數(shù)"的形式所作的規(guī)定,隨 著編程語言的不同,函數(shù)的標(biāo)準(zhǔn)形式和應(yīng)采用的正則表達(dá)式不同,但只需能夠判斷"源字符 串"是否符合函數(shù)的標(biāo)準(zhǔn)形式即可,對方法本身的實現(xiàn)沒有影響; (23) 如果"源字符串"的內(nèi)容符合格式要求,即符合函數(shù)的標(biāo)準(zhǔn)形式,從"源字符串"中 獲取函數(shù)的返回值、函數(shù)名以及調(diào)用函數(shù)需要傳遞的各參數(shù)保存到數(shù)據(jù)容器中并繼續(xù)解析 直至頭文件中的內(nèi)容全部解析完畢;如果不符合格式要求,則獲取下一行內(nèi)容存入"源字符 串"中,直至頭文件中的內(nèi)容全部解析完畢; (3) 在圖形界面中顯示步驟(2)解析出的函數(shù)的信息,在圖形界面中為函數(shù)配置調(diào)用 的位置、返回值以及要傳遞給函數(shù)的參數(shù)以便完成代碼重用的配置,步驟(3)執(zhí)行的條件 是步驟(2)執(zhí)行完畢且獲得了符合格式要求的函數(shù),否則回到步驟(1); (4) 完成代碼重用的配置后,自動對測試人員的配置進(jìn)行合法性檢查,檢查按照以下步 驟進(jìn)行: (41) 所選函數(shù)的參數(shù)是否全部配置; (42) 所選函數(shù)是否有返回值,返回值是否配置; (43) 函數(shù)的參數(shù)和返回值配置是否正確,類型是否匹配; (44) 函數(shù)的調(diào)用位置是否正確配置; (5) 測試系統(tǒng)生成測試框架代碼的時候自動將函數(shù)的調(diào)用語句添加到選擇的位置,并 且將對頭文件的包含語句添加到相應(yīng)的位置、將頭文件和代碼文件與生成的其他代碼文件 一起編譯并生成可執(zhí)行程序,函數(shù)的調(diào)用語句生成的格式為"返回值=函數(shù)名(參數(shù)1,參 數(shù)2,……,參數(shù)η); ",如果函數(shù)不包括返回值則生成的調(diào)用語句格式為"函數(shù)名(參數(shù) 1,參數(shù)2,......,參數(shù)η); "。
2. 根據(jù)權(quán)利要求1所述的應(yīng)用于測試系統(tǒng)的代碼重用方法,其特征在于:所述步驟(1) 中,所述代碼文件包括擴(kuò)展名為.c或.cpp形式的代碼文本文件和.〇或.lib形式的經(jīng)過 編譯的代碼庫文件。
3. 根據(jù)權(quán)利要求1所述的應(yīng)用于測試系統(tǒng)的代碼重用方法,其特征在于:所述步驟(3) 中所述的傳遞給函數(shù)的參數(shù)選擇多種形式:常量、測試系統(tǒng)中的變量以及測試人員自定義 的變量;所述測試系統(tǒng)中的變量是指測試系統(tǒng)為實現(xiàn)測試數(shù)據(jù)記錄、收集和方便區(qū)分管理 測試過程中測試人員關(guān)心的關(guān)鍵數(shù)值和物理量所定義的變量,針對不同的測試系統(tǒng)其名稱 可能不同;自定義變量要以圖形界面的形式提供測試人員配置變量作用域、初始值、變量數(shù) 據(jù)類型以及變量名的功能;所述變量作用域指變量是全局變量還是局部變量。
4. 根據(jù)權(quán)利要求1所述的應(yīng)用于測試系統(tǒng)的代碼重用方法,其特征在于:所述步驟(3) 中所述的函數(shù)調(diào)用的位置對應(yīng)于測試系統(tǒng)中的變量的各個階段,可以選擇變量傳輸前和變 量傳輸后、以及變量的初始化和銷毀階段;函數(shù)調(diào)用位置的選擇按照以下原則進(jìn)行: (31) 如果函數(shù)本身對調(diào)用位置有明確的要求,按照要求選擇; (32) 如果函數(shù)本身對調(diào)用位置沒有明確的要求,按照函數(shù)的功能選擇。
5. 根據(jù)權(quán)利要求1所述的應(yīng)用于測試系統(tǒng)的代碼重用方法,其特征在于:所述步驟(5) 中所述的將對頭文件的包含語句添加到相應(yīng)的位置,將頭文件和代碼文件與生成的其他代 碼文件一起編譯包括自動解析測試人員選擇重用的頭文件和代碼文件,找出文件中對其他 頭文件的引用并進(jìn)一步查找這些頭文件中對其他頭文件的引用,將這些直接、間接引用的 頭文件自動拷貝到生成的測試框架代碼的路徑下以保證編譯正常進(jìn)行。
【文檔編號】G06F9/44GK104156314SQ201410400355
【公開日】2014年11月19日 申請日期:2014年8月14日 優(yōu)先權(quán)日:2014年8月14日
【發(fā)明者】楊順昆, 劉斌, 司維 申請人:北京航空航天大學(xué)