本發(fā)明涉及測試技術(shù)領(lǐng)域,尤其涉及一種整車控制器的接口自動(dòng)化測試方法及裝置。
背景技術(shù):
純電動(dòng)汽車以CAN(Controller Area Network,控制器局域網(wǎng)絡(luò))為主網(wǎng)對(duì)數(shù)據(jù)進(jìn)行傳輸,控制電池管理系統(tǒng)、電機(jī)控制器和整車控制器等主要模塊,CAN總線以報(bào)文為單位進(jìn)行數(shù)據(jù)傳送,因此對(duì)CAN報(bào)文正確的解析、打包至關(guān)重要。然而在針對(duì)數(shù)以千計(jì)的CAN報(bào)文的操作過程中,出錯(cuò)無法避免,于是需要配置專門針對(duì)整車控制器軟件的接口測試平臺(tái)。傳統(tǒng)的接口測試需要多步驟手動(dòng)修改.dbc文件(數(shù)據(jù)庫容器文件)、手動(dòng)匹配軟件接口及.dbc文件中涉及的變量,同時(shí)還需要手動(dòng)搭建測試環(huán)境,其工作量大且操作復(fù)雜。具體過程如圖1所示,工作人員手動(dòng)修改.dbc文件,獲取CAN報(bào)文解析、打包的相關(guān)信息,包括變量名、精度、偏移等,然后配置文件路徑,執(zhí)行步驟102生成測試初始化文件、步驟103生成測試用例文件、步驟104生成打印測試結(jié)果文件、步驟105生成.dbc變量列表文件以及步驟106獲取軟件接口定義文件,根據(jù)步驟105和步驟106的結(jié)果進(jìn)行手動(dòng)關(guān)聯(lián),然后執(zhí)行步驟107生成打印測試結(jié)果文件,根據(jù)步驟102、步驟103、步驟104、步驟107的執(zhí)行結(jié)果,以及步驟108從原程序中篩選測試需要文件,執(zhí)行步驟109搭建、配置、調(diào)試測試工程,然后執(zhí)行步驟110運(yùn)行并輸出測試結(jié)果。
針對(duì)不同車型進(jìn)行整車控制器軟件開發(fā)時(shí),為避免由于CAN報(bào)文解析或打包的錯(cuò)誤而引起對(duì)整車策略的誤判斷,一旦網(wǎng)絡(luò)協(xié)議變更,涉及更改的軟件均需進(jìn)行接口測試,從而保障數(shù)據(jù)接收與發(fā)送的準(zhǔn)確性。然而解析.dbc文件、搭建測試環(huán)境及調(diào)試測試環(huán)境的時(shí)間往往遠(yuǎn)大于程序本身的開發(fā)時(shí)間,無法高效的實(shí)現(xiàn)數(shù)據(jù)接收與發(fā)送的準(zhǔn)確性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種整車控制器的接口自動(dòng)化測試方法及裝置,解決現(xiàn)有技術(shù)中由于出現(xiàn)網(wǎng)絡(luò)協(xié)議變更,需要重新搭建、調(diào)試測試環(huán)境造成的耗時(shí)問題。
本發(fā)明實(shí)施例提供一種整車控制器的接口自動(dòng)化測試方法,所述方法包括:
獲取數(shù)據(jù)庫容器文件,根據(jù)所述數(shù)據(jù)庫容器文件生成測試用例、測試輸出文件;
獲取軟件接口定義文件,建立所述軟件接口定義文件和所述數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系;
獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,根據(jù)所述測試用例、所述測試輸出文件以及所述對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行所述待測程序,生成針對(duì)所述待測程序的測試結(jié)果;
其中所述測試用例包括:所述數(shù)據(jù)庫容器文件的CAN報(bào)文中包含的每一變量在取值區(qū)間內(nèi)的N個(gè)物理值;以及所有變量針對(duì)N個(gè)物理值對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行組合后的二進(jìn)制數(shù)組。
本發(fā)明可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
其中,根據(jù)所述數(shù)據(jù)庫容器文件生成測試用例的步驟包括:
對(duì)所述數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表;
獲取所述CAN報(bào)文屬性配置表中的CAN報(bào)文中包含的所有變量在取值區(qū)間內(nèi)的N個(gè)物理值作為所述測試用例。
其中,根據(jù)所述數(shù)據(jù)庫容器文件生成測試用例的步驟包括:
對(duì)所述數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表,所述CAN報(bào)文屬性配置表包括:每一變量的N個(gè)物理值、變量精度、偏移量、終止位和信號(hào)長度,其中變量的個(gè)數(shù)為M;
針對(duì)每一變量,計(jì)算N個(gè)物理值與相應(yīng)的變量精度的比值,得到N個(gè)第一參考值;
針對(duì)每一變量,計(jì)算N個(gè)第一參考值與相應(yīng)的偏移量之差對(duì)應(yīng)的二進(jìn)制數(shù)值;
針對(duì)每一變量,將得到的N個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到N個(gè)第二參考值;
對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合,得到NM個(gè)二進(jìn)制組合,根據(jù)NM個(gè)二進(jìn)制組合生成8行NM列形式的二進(jìn)制數(shù)組作為所述測試用例。
其中,所述針對(duì)每一變量,將得到的N個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到N個(gè)第二參考值的步驟包括:
針對(duì)每一變量,計(jì)算終止位與信號(hào)長度之差獲得相應(yīng)的起始位;
針對(duì)每一變量,將N個(gè)二進(jìn)制數(shù)值分別向右偏移相應(yīng)的起始位,獲得N個(gè)第二參考值。
其中,所述對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合的步驟包括:
針對(duì)每一變量獲取一個(gè)第二參考值,并根據(jù)獲取的M個(gè)第二參考值進(jìn)行組合。
其中,所述軟件接口定義文件中存儲(chǔ)有與所述數(shù)據(jù)庫容器文件中的第一信息子文件內(nèi)容相同但名稱區(qū)別的第二信息子文件;
所述建立所述軟件接口定義文件和所述數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系的步驟包括:
根據(jù)所述第一信息子文件的注釋查找與所述第一信息子文件內(nèi)容相同的第二信息子文件;
建立所述第一信息子文件與相應(yīng)的所述第二信息子文件的對(duì)應(yīng)關(guān)系。
其中,在進(jìn)行寫操作時(shí),所述針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行所述待測程序,生成針對(duì)所述待測程序的測試結(jié)果的步驟包括:
將二進(jìn)制數(shù)組作為參考輸入信息,經(jīng)過所述待測程序的運(yùn)行,獲取針對(duì)第一變量運(yùn)行后的N個(gè)參考物理值;
將N個(gè)參考物理值與所述測試用例中的所述第一變量對(duì)應(yīng)的N個(gè)物理值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)所述待測程序的測試結(jié)果。
其中,在進(jìn)行讀操作時(shí),所述針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行所述待測程序,生成針對(duì)所述待測程序的測試結(jié)果的步驟包括:
將第二變量的N個(gè)物理值作為參考輸入信息,經(jīng)過所述待測程序的運(yùn)行,獲取針對(duì)所述第二變量的參考二進(jìn)制數(shù)值;
將參考二進(jìn)制數(shù)值與所述測試用例的二進(jìn)制數(shù)組中的所述第二變量對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)所述待測程序的測試結(jié)果。
本發(fā)明實(shí)施例還提供一種整車控制器的接口自動(dòng)化測試裝置,所述裝置包括:
生成模塊,用于獲取數(shù)據(jù)庫容器文件,根據(jù)所述數(shù)據(jù)庫容器文件生成測試用例、測試輸出文件;
建立模塊,用于獲取軟件接口定義文件,建立所述軟件接口定義文件和所述數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系;
處理模塊,用于獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,根據(jù)所述測試用例、所述測試輸出文件以及所述對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行所述待測程序,生成針對(duì)所述待測程序的測試結(jié)果;
其中所述測試用例包括:所述數(shù)據(jù)庫容器文件的CAN報(bào)文中包含的每一變量在取值區(qū)間內(nèi)的N個(gè)物理值;以及所有變量針對(duì)N個(gè)物理值對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行組合后的二進(jìn)制數(shù)組。
其中,所述生成模塊包括:
第一生成子模塊,用于對(duì)所述數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表;
第一獲取子模塊,用于獲取所述CAN報(bào)文屬性配置表中的CAN報(bào)文中包含的所有變量在取值區(qū)間內(nèi)的N個(gè)物理值作為所述測試用例。
其中,所述生成模塊包括:
第二生成子模塊,對(duì)所述數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表,所述CAN報(bào)文屬性配置表包括:每一變量的N個(gè)物理值、變量精度、偏移量、終止位和信號(hào)長度,其中變量的個(gè)數(shù)為M;
第一計(jì)算子模塊,用于針對(duì)每一變量,計(jì)算N個(gè)物理值與相應(yīng)的變量精度的比值,得到N個(gè)第一參考值;
第二計(jì)算子模塊,用于針對(duì)每一變量,計(jì)算N個(gè)第一參考值與相應(yīng)的偏移量之差對(duì)應(yīng)的二進(jìn)制數(shù)值;
第三計(jì)算子模塊,用于針對(duì)每一變量,將得到的N個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到N個(gè)第二參考值;
處理子模塊,用于對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合,得到NM個(gè)二進(jìn)制組合,根據(jù)NM個(gè)二進(jìn)制組合生成8行NM列形式的二進(jìn)制數(shù)組作為所述測試用例。
其中,所述第三計(jì)算子模塊包括:
計(jì)算單元,用于針對(duì)每一變量,計(jì)算終止位與信號(hào)長度之差獲得相應(yīng)的起始位;
獲取單元,用于針對(duì)每一變量,將N個(gè)二進(jìn)制數(shù)值分別向右偏移相應(yīng)的起始位,獲得N個(gè)第二參考值。
其中,所述處理子模塊進(jìn)一步用于:
針對(duì)每一變量獲取一個(gè)第二參考值,并根據(jù)獲取的M個(gè)第二參考值進(jìn)行組合。
其中,所述軟件接口定義文件中存儲(chǔ)有與所述數(shù)據(jù)庫容器文件中的第一信息子文件內(nèi)容相同但名稱區(qū)別的第二信息子文件;
所述建立模塊包括:
查找子模塊,用于根據(jù)所述第一信息子文件的注釋查找與所述第一信息子文件內(nèi)容相同的第二信息子文件;
建立子模塊,用于建立所述第一信息子文件與相應(yīng)的所述第二信息子文件的對(duì)應(yīng)關(guān)系。
其中,在進(jìn)行寫操作時(shí),所述處理模塊包括:
第二獲取子模塊,用于將二進(jìn)制數(shù)組作為參考輸入信息,經(jīng)過所述待測程序的運(yùn)行,獲取針對(duì)第一變量運(yùn)行后的N個(gè)參考物理值;
第三生成子模塊,用于將N個(gè)參考物理值與所述測試用例中的所述第一變量對(duì)應(yīng)的N個(gè)物理值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)所述待測程序的測試結(jié)果。
其中,在進(jìn)行讀操作時(shí),所述處理模塊包括:
第三獲取子模塊,用于將第二變量的N個(gè)物理值作為參考輸入信息,經(jīng)過所述待測程序的運(yùn)行,獲取針對(duì)所述第二變量的參考二進(jìn)制數(shù)值;
第四生成子模塊,用于將參考二進(jìn)制數(shù)值與所述測試用例的二進(jìn)制數(shù)組中的所述第二變量對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)所述待測程序的測試結(jié)果。
本發(fā)明實(shí)施例技術(shù)方案的有益效果至少包括:
本發(fā)明技術(shù)方案,通過獲取數(shù)據(jù)庫容器文件并生成測試用例和測試輸出文件,建立獲取的軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,生成針對(duì)待測程序的測試結(jié)果,可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
附圖說明
圖1表示現(xiàn)有技術(shù)整車控制器的接口測試流程圖;
圖2表示本發(fā)明實(shí)施例一的整車控制器的接口自動(dòng)化測試方法流程圖;
圖3表示本發(fā)明實(shí)施例二的整車控制器的接口自動(dòng)化測試方法流程圖;
圖4表示本發(fā)明實(shí)施例三的整車控制器的接口自動(dòng)化測試方法流程圖;
圖5表示本發(fā)明實(shí)施例四的整車控制器的接口自動(dòng)化測試裝置示意圖一;
圖6表示本發(fā)明實(shí)施例四的整車控制器的接口自動(dòng)化測試裝置示意圖二;
圖7表示本發(fā)明實(shí)施例四的整車控制器的接口自動(dòng)化測試裝置示意圖三;
圖8表示本發(fā)明實(shí)施例四的整車控制器的接口自動(dòng)化測試裝置示意圖四;
圖9表示本發(fā)明實(shí)施例四的整車控制器的接口自動(dòng)化測試裝置示意圖五。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
實(shí)施例一
如圖2所示,本發(fā)明實(shí)施例一提供的整車控制器的接口自動(dòng)化測試方法包括:
步驟201、獲取數(shù)據(jù)庫容器文件,根據(jù)數(shù)據(jù)庫容器文件生成測試用例、測試輸出文件。
本發(fā)明以WinForm為基礎(chǔ),在獲取數(shù)據(jù)庫容器文件之后,采用CAN報(bào)文解析算法生成測試用例,并根據(jù)數(shù)據(jù)庫容器文件生成測試輸出文件。其中在生成測試用例之前,需要針對(duì)數(shù)據(jù)庫容器文件進(jìn)行處理生成CAN報(bào)文屬性配置表,其中CAN報(bào)文屬性配置表中主要包括CAN報(bào)文的ID、信號(hào)長度、終止位、變量精度、偏移量、物理意義上的最大值和最小值、發(fā)送接收情況,以及CAN ID包含的報(bào)文數(shù)量。測試用例包括:數(shù)據(jù)庫容器文件的CAN報(bào)文中包含的每一變量在取值區(qū)間內(nèi)的N個(gè)物理值;以及所有變量針對(duì)N個(gè)物理值對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行組合后的二進(jìn)制數(shù)組。
在對(duì)數(shù)據(jù)庫容器文件進(jìn)行處理生成CAN報(bào)文屬性配置表之后,基于CAN報(bào)文屬性配置表采用CAN報(bào)文解析算法生成測試用例。其中獲取數(shù)據(jù)庫容器文件時(shí)是通過導(dǎo)入的方式獲取的。
在生成測試用例以及測試輸出文件之后,執(zhí)行步驟202。
步驟202、獲取軟件接口定義文件,建立軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系。
在生成測試用例和測試輸出文件之后,獲取軟件接口定義文件,需要說明的是軟件接口定義文件中存儲(chǔ)的內(nèi)容與數(shù)據(jù)庫容器文件中存儲(chǔ)的內(nèi)容相同,但名稱不同,需要建立軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,從而可以將數(shù)據(jù)庫容器文件與面向?qū)ο蟮木幊陶Z言相結(jié)合,實(shí)現(xiàn)通過WinForm與用戶進(jìn)行交互。
步驟203、獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測程序,生成針對(duì)待測程序的測試結(jié)果。
在獲取測試用例、測試輸出文件以及軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系之后,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái)。在獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序之后,針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測程序,生成針對(duì)待測程序的測試結(jié)果。這里的參考輸入信息可以是二進(jìn)制數(shù)組,也可以是變量的N個(gè)物理值。在參考輸入信息為二進(jìn)制數(shù)組時(shí),確定當(dāng)前需要進(jìn)行寫操作,在參考輸入信息為變量的N個(gè)物理值時(shí),確定當(dāng)前需要進(jìn)行讀操作。
其中,數(shù)據(jù)庫容器文件、軟件接口定義文件以及待測項(xiàng)目工程都是通過導(dǎo)入的方式來獲取的,接收用戶輸入的待測接口名稱,然后在待測項(xiàng)目工程中獲取與待測接口關(guān)聯(lián)的待測程序。
本發(fā)明實(shí)施例一,通過獲取數(shù)據(jù)庫容器文件并生成測試用例和測試輸出文件,建立獲取的軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,生成針對(duì)待測程序的測試結(jié)果,可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
實(shí)施例二
如圖3所示,本發(fā)明實(shí)施例二提供的整車控制器的接口自動(dòng)化測試方法包括:
步驟301、獲取數(shù)據(jù)庫容器文件。
步驟302、對(duì)數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表,根據(jù)CAN報(bào)文屬性配置表生成測試輸出文件和測試用例。
對(duì)數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表,其中CAN報(bào)文屬性配置表包括:每一變量的N個(gè)物理值、變量精度、偏移量、終止位和信號(hào)長度,其中變量的個(gè)數(shù)為M。然后根據(jù)CAN報(bào)文屬性配置表生成測試輸出文件。
獲取CAN報(bào)文屬性配置表中的CAN報(bào)文中包含的所有變量在取值區(qū)間內(nèi)的N個(gè)物理值作為測試用例,此時(shí)的測試用例的形式為變量物理值。其中這里的N個(gè)物理值可以為每一變量在取值區(qū)間內(nèi)的最大物理值、中間物理值和最小物理值。
其中,測試用例還包括二進(jìn)制數(shù)組形式,在生成二進(jìn)制數(shù)組形式的測試用例時(shí),具體的過程為:
針對(duì)每一變量,計(jì)算N個(gè)物理值與相應(yīng)的變量精度的比值,得到N個(gè)第一參考值;針對(duì)每一變量,計(jì)算N個(gè)第一參考值與相應(yīng)的偏移量之差對(duì)應(yīng)的二進(jìn)制數(shù)值;針對(duì)每一變量,將得到的N個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到N個(gè)第二參考值;對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合,得到NM個(gè)二進(jìn)制組合,根據(jù)NM個(gè)二進(jìn)制組合生成8行NM列形式的二進(jìn)制數(shù)組作為測試用例。
具體的,針對(duì)CAN報(bào)文屬性配置表中的每一個(gè)變量,需要計(jì)算當(dāng)前變量的N個(gè)物理值與相應(yīng)的變量精度的比值,得到N個(gè)第一參考值。其中針對(duì)同一變量而言,變量精度為一個(gè)確定的值。這里的N個(gè)物理值是在取值區(qū)間內(nèi)獲得的,優(yōu)選為當(dāng)前變量在取值區(qū)間內(nèi)的最大物理值、最小物理值和中間物理值。針對(duì)當(dāng)前變量的最大物理值、最小物理值和中間物理值,分別計(jì)算最大物理值與變量精度的比值、最小物理值與變量精度的比值、中間物理值與變量精度的比值,得到三個(gè)第一參考值。
針對(duì)同一變量而言,偏移量為一個(gè)確定的物理值。針對(duì)當(dāng)前變量的三個(gè)第一參考值,分別計(jì)算每一參考值與相應(yīng)的偏移量之差,對(duì)所得到的差值取對(duì)應(yīng)的二進(jìn)制數(shù)值,獲得三個(gè)二進(jìn)制數(shù)值。
在獲取二進(jìn)制數(shù)值之后,針對(duì)每一變量而言,將當(dāng)前變量的3個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到3個(gè)第二參考值。針對(duì)同一變量而言,預(yù)設(shè)長度為一個(gè)確定的二進(jìn)制數(shù)值。針對(duì)當(dāng)前變量的3個(gè)二進(jìn)制數(shù)值,分別計(jì)算二進(jìn)制數(shù)值向右偏移預(yù)設(shè)長度后的第二參考值。
需要說明的是,每一變量的預(yù)設(shè)長度與終止位和信號(hào)長度有關(guān),在對(duì)變量的二進(jìn)制數(shù)值進(jìn)行偏移的過程中:
針對(duì)每一變量,計(jì)算終止位與信號(hào)長度之差獲得相應(yīng)的起始位;
針對(duì)每一變量,將N個(gè)二進(jìn)制數(shù)值分別向右偏移相應(yīng)的起始位,獲得N個(gè)第二參考值。
在針對(duì)每一變量得到3個(gè)第二參考值之后,需要對(duì)M個(gè)變量分別對(duì)應(yīng)的3個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合,得到3M個(gè)二進(jìn)制組合,根據(jù)3M個(gè)二進(jìn)制組合生成8行3M列形式的二進(jìn)制數(shù)組作為測試用例。
其中,在對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合時(shí),需要針對(duì)每一變量獲取一個(gè)第二參考值,并根據(jù)獲取的M個(gè)第二參考值進(jìn)行組合。可以得到NM個(gè)二進(jìn)制組合,根據(jù)這些組合生成8行NM列形式的二進(jìn)制數(shù)組,此時(shí)的測試用例即為8行NM列形式的二進(jìn)制數(shù)組。
步驟303、獲取軟件接口定義文件,建立軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系。
在獲取測試用例之后,需要獲取軟件接口定義文件,其中軟件接口定義文件中存儲(chǔ)有與數(shù)據(jù)庫容器文件中的第一信息子文件內(nèi)容相同但名稱區(qū)別的第二信息子文件;在建立軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系時(shí):根據(jù)第一信息子文件的注釋查找與第一信息子文件內(nèi)容相同的第二信息子文件;建立第一信息子文件與相應(yīng)的第二信息子文件的對(duì)應(yīng)關(guān)系。
其中,數(shù)據(jù)庫容器文件中的第一信息子文件的數(shù)目為多個(gè),軟件接口定義文件中存儲(chǔ)的第二信息子文件的數(shù)目也為多個(gè)。第一信息子文件和第二信息子文件中的內(nèi)容相同,但是內(nèi)容的形式與文件的名稱不同,需要根據(jù)相關(guān)的注釋來建立第一信息子文件與第二信息子文件的對(duì)應(yīng)關(guān)系,進(jìn)而可以形成軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系。
步驟304、根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái)。
步驟305、獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序。
步驟306、判斷當(dāng)前狀態(tài)需要執(zhí)行讀操作還是寫操作。若當(dāng)前狀態(tài)需要執(zhí)行寫操作則執(zhí)行步驟307和步驟308,若當(dāng)前狀態(tài)需要執(zhí)行讀操作則執(zhí)行步驟309和步驟310。
步驟307、將二進(jìn)制數(shù)組作為參考輸入信息,經(jīng)過待測程序的運(yùn)行,獲取針對(duì)第一變量運(yùn)行后的N個(gè)參考物理值。
步驟308、將N個(gè)參考物理值與測試用例中的第一變量對(duì)應(yīng)的N個(gè)物理值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)待測程序的測試結(jié)果。
在進(jìn)行寫操作時(shí),需要以二進(jìn)制數(shù)組作為參考輸入信息,使得待測程序針對(duì)二進(jìn)制數(shù)組進(jìn)行運(yùn)行,獲取第一變量對(duì)應(yīng)的N個(gè)參考物理值。然后將獲取的N個(gè)參考物理值與第一變量對(duì)應(yīng)的N個(gè)物理值進(jìn)行匹配,如果兩者相匹配,則證明待測程序正常,即待測接口處于正常狀態(tài),如果兩者不匹配,則表明待測接口處于非正常狀態(tài)。其中,針對(duì)二進(jìn)制數(shù)組運(yùn)行待測程序、獲取第一變量的N個(gè)參考物理值的過程可以理解為:獲取當(dāng)前變量的N個(gè)二進(jìn)制數(shù)值,針對(duì)當(dāng)前變量的N個(gè)二進(jìn)制數(shù)值分別確定對(duì)應(yīng)的十進(jìn)制數(shù)值,然后計(jì)算十進(jìn)制數(shù)值與對(duì)應(yīng)的偏移量之和,將得到的和值與對(duì)應(yīng)的變量精度相乘獲取當(dāng)前變量對(duì)應(yīng)的N個(gè)物理值。
步驟309、將第二變量的N個(gè)物理值作為參考輸入信息,經(jīng)過待測程序的運(yùn)行,獲取針對(duì)第二變量的參考二進(jìn)制數(shù)值。
步驟310、將參考二進(jìn)制數(shù)值與測試用例的二進(jìn)制數(shù)組中的第二變量對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)待測程序的測試結(jié)果。
在進(jìn)行讀操作時(shí),需要第二變量的N個(gè)物理值作為參考輸入信息,使得待測程序針對(duì)第二變量的N個(gè)物理值來運(yùn)行,獲取第二變量的N個(gè)參考二進(jìn)制數(shù)值,然后在二進(jìn)制數(shù)組中獲取第二變量對(duì)應(yīng)的N個(gè)二進(jìn)制數(shù)值,將兩者進(jìn)行匹配,如果兩者相匹配,則證明待測接口處于正常狀態(tài),如果兩者不匹配,則表明待測接口處于非正常狀態(tài)。
本發(fā)明實(shí)施例二,通過獲取數(shù)據(jù)庫容器文件并生成測試用例和測試輸出文件,建立獲取的軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,生成針對(duì)待測程序的測試結(jié)果,可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
實(shí)施例三
如圖4所示,本發(fā)明實(shí)施例三提供的整車控制器的接口自動(dòng)化測試方法包括:
步驟401、導(dǎo)入數(shù)據(jù)庫容器文件。
步驟402、根據(jù)數(shù)據(jù)庫容器文件生成CAN報(bào)文屬性配置表。
步驟403、根據(jù)CAN報(bào)文屬性配置表采用CAN報(bào)文解析算法生成測試用例。
步驟404、根據(jù)CAN報(bào)文屬性配置生成測試輸出文件。
步驟405、獲取數(shù)據(jù)庫容器文件中的第一信息子文件。
步驟406、導(dǎo)入軟件接口定義文件。
步驟407、導(dǎo)入待測項(xiàng)目工程。
步驟408、獲取軟件接口定義文件中的第二信息子文件,并建立第一信息子文件與第二信息子文件的對(duì)應(yīng)匹配關(guān)系。
軟件接口定義文件中存儲(chǔ)有與數(shù)據(jù)庫容器文件中的第一信息子文件內(nèi)容相同但名稱區(qū)別的第二信息子文件。
步驟409、根據(jù)測試用例、測試輸出文件、第一信息子文件與第二信息子文件的對(duì)應(yīng)匹配關(guān)系以及待測項(xiàng)目工程生成測試工程。
步驟410、運(yùn)行測試工程輸出測試結(jié)果。然后結(jié)束流程。
本發(fā)明實(shí)施例三,通過獲取數(shù)據(jù)庫容器文件并生成測試用例和測試輸出文件,建立獲取的軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,生成針對(duì)待測程序的測試結(jié)果,可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
實(shí)施例四
本發(fā)明實(shí)施例四提供一種整車控制器的接口自動(dòng)化測試裝置,如圖5所示,包括:
生成模塊10,用于獲取數(shù)據(jù)庫容器文件,根據(jù)數(shù)據(jù)庫容器文件生成測試用例、測試輸出文件;
建立模塊20,用于獲取軟件接口定義文件,建立軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系;
處理模塊30,用于獲取待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測程序,生成針對(duì)待測程序的測試結(jié)果;
其中測試用例包括:數(shù)據(jù)庫容器文件的CAN報(bào)文中包含的每一變量在取值區(qū)間內(nèi)的N個(gè)物理值;以及所有變量針對(duì)N個(gè)物理值對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行組合后的二進(jìn)制數(shù)組。
其中,如圖6所示,生成模塊10包括:
第一生成子模塊11,用于對(duì)數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表;
第一獲取子模塊12,用于獲取CAN報(bào)文屬性配置表中的CAN報(bào)文中包含的所有變量在取值區(qū)間內(nèi)的N個(gè)物理值作為測試用例。
其中,生成模塊10包括:
第二生成子模塊13,對(duì)數(shù)據(jù)庫容器文件進(jìn)行編譯轉(zhuǎn)換生成CAN報(bào)文屬性配置表,CAN報(bào)文屬性配置表包括:每一變量的N個(gè)物理值、變量精度、偏移量、終止位和信號(hào)長度,其中變量的個(gè)數(shù)為M;
第一計(jì)算子模塊14,用于針對(duì)每一變量,計(jì)算N個(gè)物理值與相應(yīng)的變量精度的比值,得到N個(gè)第一參考值;
第二計(jì)算子模塊15,用于針對(duì)每一變量,計(jì)算N個(gè)第一參考值與相應(yīng)的偏移量之差對(duì)應(yīng)的二進(jìn)制數(shù)值;
第三計(jì)算子模塊16,用于針對(duì)每一變量,將得到的N個(gè)二進(jìn)制數(shù)值分別向右偏移對(duì)應(yīng)的預(yù)設(shè)長度,得到N個(gè)第二參考值;
處理子模塊17,用于對(duì)M個(gè)變量分別對(duì)應(yīng)的N個(gè)第二參考值進(jìn)行M個(gè)第二參考值之間的組合,得到NM個(gè)二進(jìn)制組合,根據(jù)NM個(gè)二進(jìn)制組合生成8行NM列形式的二進(jìn)制數(shù)組作為測試用例。
其中,如圖7所示,第三計(jì)算子模塊16包括:
計(jì)算單元161,用于針對(duì)每一變量,計(jì)算終止位與信號(hào)長度之差獲得相應(yīng)的起始位;
獲取單元162,用于針對(duì)每一變量,將N個(gè)二進(jìn)制數(shù)值分別向右偏移相應(yīng)的起始位,獲得N個(gè)第二參考值。
其中,處理子模塊17進(jìn)一步用于:
針對(duì)每一變量獲取一個(gè)第二參考值,并根據(jù)獲取的M個(gè)第二參考值進(jìn)行組合。
其中,軟件接口定義文件中存儲(chǔ)有與數(shù)據(jù)庫容器文件中的第一信息子文件內(nèi)容相同但名稱區(qū)別的第二信息子文件;
如圖8所示,建立模塊20包括:
查找子模塊21,用于根據(jù)第一信息子文件的注釋查找與第一信息子文件內(nèi)容相同的第二信息子文件;
建立子模塊22,用于建立第一信息子文件與相應(yīng)的第二信息子文件的對(duì)應(yīng)關(guān)系。
其中,在進(jìn)行寫操作時(shí),如圖9所示,處理模塊30包括:
第二獲取子模塊31,用于將二進(jìn)制數(shù)組作為參考輸入信息,經(jīng)過待測程序的運(yùn)行,獲取針對(duì)第一變量運(yùn)行后的N個(gè)參考物理值;
第三生成子模塊32,用于將N個(gè)參考物理值與測試用例中的第一變量對(duì)應(yīng)的N個(gè)物理值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)待測程序的測試結(jié)果。
其中,在進(jìn)行讀操作時(shí),處理模塊30包括:
第三獲取子模塊33,用于將第二變量的N個(gè)物理值作為參考輸入信息,經(jīng)過待測程序的運(yùn)行,獲取針對(duì)第二變量的參考二進(jìn)制數(shù)值;
第四生成子模塊34,用于將參考二進(jìn)制數(shù)值與測試用例的二進(jìn)制數(shù)組中的第二變量對(duì)應(yīng)的二進(jìn)制數(shù)值進(jìn)行匹配,根據(jù)匹配結(jié)果生成針對(duì)待測程序的測試結(jié)果。
本發(fā)明實(shí)施例四,通過獲取數(shù)據(jù)庫容器文件并生成測試用例和測試輸出文件,建立獲取的軟件接口定義文件和數(shù)據(jù)庫容器文件的對(duì)應(yīng)匹配關(guān)系,根據(jù)測試用例、測試輸出文件以及對(duì)應(yīng)匹配關(guān)系搭建測試平臺(tái),針對(duì)一參考輸入信息利用測試平臺(tái)運(yùn)行待測項(xiàng)目工程中與待測接口關(guān)聯(lián)的待測程序,生成針對(duì)待測程序的測試結(jié)果,可以實(shí)現(xiàn)在傳統(tǒng)接口測試平臺(tái)基礎(chǔ)上進(jìn)行優(yōu)化,將手動(dòng)環(huán)節(jié)優(yōu)化為自動(dòng)生成,自動(dòng)搭建測試環(huán)境,縮短測試周期,同時(shí)保障CAN報(bào)文解析、打包的準(zhǔn)確性,提高整車控制器軟件的質(zhì)量。
需要說明的是,本發(fā)明實(shí)施例提供的整車控制器的接口自動(dòng)化測試裝置應(yīng)用上述方法的裝置,則上述方法的所有實(shí)施例均適用于該裝置,且均能達(dá)到相同或相似的有益效果。
以上所述的是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出對(duì)于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也在本發(fā)明的保護(hù)范圍內(nèi)。