本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別是指一種基于Matlab/Simulink模型自動化測試方法和裝置。
背景技術(shù):
目前,在基于Matlab/Simulink快速原型開發(fā)的環(huán)境下,往往需要對所研發(fā)的算法進(jìn)行一定的測試,此測試過程是對控制策略穩(wěn)定性及功能性的一種保障,傳統(tǒng)采用HIL測試(硬件在環(huán)仿真測試),此測試過程優(yōu)點(diǎn)是比較真實(shí)且可靠,缺點(diǎn)是需要耗費(fèi)一定的物力及財力(需要根據(jù)測試需求搭建一套完整的HIL測試環(huán)境),且此測試過程耗費(fèi)時間較長。這樣會導(dǎo)致一個惡性循環(huán):用戶需要在一個特定的實(shí)驗(yàn)環(huán)境耗費(fèi)大量的時間去驗(yàn)證一個錯誤的算法。
具體來說,一般的測試方法是通過手動添加輸入激勵信號,再通過示波器或者工作空間存儲文檔對測試結(jié)果進(jìn)行分析。此過程存在四個不可避免的缺點(diǎn):①當(dāng)輸入激勵信號較多時,用戶需要在不同的時刻添加不同的激勵信號,此過程及其繁瑣;②當(dāng)輸出觀測信號較多時用戶同樣添加多個數(shù)據(jù)存儲文檔進(jìn)行觀測對比分析;③用戶需要手動對測試結(jié)果進(jìn)行對比分析,手動完成對測試結(jié)果對錯評估。④當(dāng)測試完成后需要手動編寫測試結(jié)果文檔及測試過程,并標(biāo)注對應(yīng)的測試日期。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種模型自動化測試方法和裝置,解決針對Matlab/Simulink的模型進(jìn)行測試耗時耗力,精確度差的問題。
基于上述目的本發(fā)明提供模型自動化測試方法,包括步驟:
加載所需測試的Simulink模型及標(biāo)定的參數(shù);
調(diào)用Excel測試文檔,按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例;
判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,若相同則該條測試用例通過并標(biāo)注PASS,否則該條測試用例未通過則被黃色區(qū)域覆蓋并標(biāo)注FALSE。
在本發(fā)明的一些實(shí)施例中,還包括:
判斷Excel測試文檔每頁是否測試完成;
根據(jù)判斷結(jié)果,若每頁測試完成則判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,否則繼續(xù)按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例。
在本發(fā)明的一些實(shí)施例中,所述調(diào)用Excel測試文檔,包括:
自動調(diào)用所需的Excel測試文檔;
通過importdata函數(shù)導(dǎo)入Excel測試文檔至工作空間,通過length函數(shù)獲取測試文檔Excel測試文檔的頁數(shù)。
在本發(fā)明的一些實(shí)施例中,判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,包括:
設(shè)置Simulink建立模型的預(yù)期值,在建立Excel測試表格時,寫入輸入值以及預(yù)期值;
Simulink建立的模型經(jīng)過測試后,將輸出的測試結(jié)果寫入到Excel測試表格中;
判斷輸出的測試結(jié)果與所述的預(yù)期值是否相同。
在本發(fā)明的一些實(shí)施例中,還包括:
將輸出的測試結(jié)果寫入Excel測試文檔中的新建匯總頁面中,并標(biāo)注出測試未通過的序列呈現(xiàn)。
在另一方面,本發(fā)明還提供了一種模型自動化測試方法和裝置,包括:
加載單元,用于加載所需測試的Simulink模型及標(biāo)定的參數(shù);
調(diào)用單元,用于調(diào)用Excel測試文檔;
測試單元,用于按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例;
判斷單元,用于判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,若相同則該條測試用例通過并標(biāo)注,否則該條測試用例未通過并標(biāo)注。
在本發(fā)明的一些實(shí)施例中,所述判斷單元,還用于:
判斷Excel測試文檔每頁是否測試完成;
根據(jù)判斷結(jié)果,若每頁測試完成則判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,否則繼續(xù)按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例。
在本發(fā)明的一些實(shí)施例中,所述調(diào)用單元,還用于:
自動調(diào)用所需的Excel測試文檔;
通過importdata函數(shù)導(dǎo)入Excel測試文檔至工作空間,通過length函數(shù)獲取測試文檔Excel測試文檔的頁數(shù)。
在本發(fā)明的一些實(shí)施例中,所述判斷單元判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,包括:
設(shè)置Simulink建立模型的預(yù)期值,在建立Excel測試表格時,寫入輸入值以及預(yù)期值;
Simulink建立的模型經(jīng)過測試后,將輸出的測試結(jié)果寫入到Excel測試表格中;
判斷輸出的測試結(jié)果與所述的預(yù)期值是否相同。
在本發(fā)明的一些實(shí)施例中,還包括:
輸出單元,用于將輸出的測試結(jié)果寫入Excel測試文檔中的新建匯總頁面中,并標(biāo)注出測試未通過的序列呈現(xiàn)。
從上面所述可以看出,本發(fā)明提供的基于Matlab/Simulink模型自動化測試方法和裝置,通過加載所需測試的Simulink模型及標(biāo)定的參數(shù);調(diào)用Excel測試文檔,按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例;判斷測試結(jié)果與對應(yīng)的Excel測試文檔中的期望值是否相同。從而,本發(fā)明能夠?qū)atlab、Simulink集成在一起,能快速對用戶搭建的算法進(jìn)行仿真測試,且仿真測試穩(wěn)定可靠,并生成測試結(jié)果報告,則可以大量節(jié)省研發(fā)人員開發(fā)算法的時間,且實(shí)驗(yàn)環(huán)境不受限制。
附圖說明
圖1為本發(fā)明實(shí)施例中模型自動化測試方法流程示意圖;
圖2為本發(fā)明實(shí)施例中輸入激勵模塊實(shí)現(xiàn)多種激勵輸入信號的復(fù)用流程示意圖;
圖3為本發(fā)明實(shí)施例中另一輸入激勵模塊實(shí)現(xiàn)多種激勵輸入信號的復(fù)用流程示意圖;
圖4為本發(fā)明實(shí)施例中模塊組合機(jī)制進(jìn)行測試運(yùn)行的流程示意圖;
圖5為本發(fā)明實(shí)施例中模型自動化測試裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明另一實(shí)施例模型自動化測試裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
需要說明的是,本發(fā)明實(shí)施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個相同名稱非相同的實(shí)體或者非相同的參量,可見“第一”“第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對此不再一一說明。
本發(fā)明涉及了一種針對Matlab/Simulink編譯環(huán)境對用戶開發(fā)的Simulink模型進(jìn)行快速仿真測試,并生成相應(yīng)的Excel測試結(jié)果報告文檔。其中,該測試方法或裝置可以集成在SIMULINK庫文件中,即在每次打開Matlab時無需再次添加該測試方法或裝置至Simulink庫。而且,用簡短的輸入輸出模塊代替復(fù)雜的輸入激勵信號和輸出存儲文件,操作簡單。還有,在測試過程中可以自動加載用戶所需測試模型,及與模型相關(guān)的標(biāo)定參數(shù),自動加載用戶自定義Excel測試用例。并且,嚴(yán)格按照用戶自定義Excel測試用例時間流來進(jìn)行逐條測試,并得出測試結(jié)果。另外,在測試完成后需要根據(jù)實(shí)際測試結(jié)果和用戶期望的結(jié)果進(jìn)行對比,并寫入Excel同一表格,在測試通過的步驟后面寫入PASS,反之寫入FALSE。并在不通過的測試結(jié)果處以黃色背景填入該表格,以警告方式提醒用戶。更進(jìn)一步,在測試結(jié)果Excel單獨(dú)新建一個“測試匯總”窗口,該窗口清晰顯示出每頁測試結(jié)果情況,并標(biāo)注測試日期,及本次測試結(jié)果最終通過或者失敗。進(jìn)一步地,MIL軟件數(shù)據(jù)結(jié)構(gòu)采用M語言定義的一維、二維數(shù)據(jù)結(jié)構(gòu),程序以事件觸發(fā)的形式調(diào)用各個數(shù)據(jù)庫。
在一個優(yōu)選地實(shí)施例中,該測試方法或裝置適用于MATLAB 2015a/2015b及之前所有版本。電腦軟件運(yùn)行環(huán)境:win7/win8/xp/windows 2000。電腦硬件運(yùn)行環(huán)境:32位/64位。更進(jìn)一步地,該測試方法或裝置是基于MATLAB的一種集成插件,會根據(jù)MATLAB版本不同而持續(xù)更新。
作為一個實(shí)施例,參閱圖1所示,為本發(fā)明實(shí)施例中基于Matlab/Simulink模型自動化測試方法流程示意圖,所述模型自動化測試方法包括:
步驟101,加載所需測試的Simulink模型及標(biāo)定的參數(shù)。
在實(shí)施例中,將Simulink模塊添加至Simulink庫中,即加載了所需測試的Simulink模型。較佳地,所述的Simulink模塊可以為自定義的。優(yōu)選地,自定義Simulink庫模塊方式與用戶Simulink模型無縫對接。其中,具體的實(shí)施包括:設(shè)置寫入的自定義Simulink模塊的文件名稱,例如:通過blkStruct.Name函數(shù),blkStruct為標(biāo)準(zhǔn)庫函數(shù),庫函數(shù)由名稱Name等等多種內(nèi)容構(gòu)成。設(shè)置寫入自定義Simulink庫模型名稱,例如blkStruct.OpenFcn。還有,設(shè)置寫入需要在Simulink庫文件下顯示的名稱,例如blkStruct.MaskDisplay。另外,在Simulink庫中打開所需測試的Simulink模型可通過open_system函數(shù)。
另外,自動加載相關(guān)標(biāo)定的參數(shù),具體地:通過函數(shù)run將標(biāo)定參數(shù)加載至工作空間。其中,所述的標(biāo)定是行業(yè)專業(yè)術(shù)語,例如:加速踏板通過傳感器采集信號,當(dāng)空踩的時候傳感器電壓為0.3V,0.3V并不是固定的值,不同傳感器、不同車型的參數(shù)都是需要標(biāo)定后才能確定的。這些標(biāo)定值通常會寫入到m文件中,在進(jìn)行測試時需要將這些標(biāo)定量也加載在工作空間,參與運(yùn)算。因此,標(biāo)定的參數(shù)通常包括幾十個,這些通常會給出經(jīng)驗(yàn)值,MIL測試完成后,根據(jù)開發(fā)流程,在實(shí)車測試階段進(jìn)行具體標(biāo)定。
步驟102,調(diào)用Excel測試文檔。
較佳地,采用讀寫Excel表格方式,首先將其表格數(shù)據(jù)讀入Matlab工作空間,再將工作數(shù)據(jù)寫入自定義函數(shù)中的方式實(shí)現(xiàn)數(shù)據(jù)與外部Excel進(jìn)行交換。優(yōu)選地,采用程序嵌套方式實(shí)現(xiàn)內(nèi)部函數(shù)的互相調(diào)用。具體的實(shí)施包括:自動調(diào)用所需的Excel測試文檔,通過importdata函數(shù)導(dǎo)入Excel測試文檔至工作空間,然后通過length函數(shù)獲取測試文檔Excel的頁數(shù)。
步驟103,按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例。
在實(shí)施例中,在執(zhí)行每條測試用例的過程中,如果Excel測試文檔中的某一條數(shù)據(jù)未滿足指定的格式,會直接提示某具體參數(shù)出錯,方便用戶檢查。較佳地,也可以根據(jù)用戶特定需求,比如修改Excel格式、修改輸入輸出接口等來適應(yīng)用戶需求。優(yōu)選地,在測試過程中將測試結(jié)果臨時存儲在一個特定文件中。
其中,根據(jù)Excel定義的時間流關(guān)系自動加載輸入的激勵信號。具體可以設(shè)置t為仿真過程中時間計時器,即根據(jù)此參數(shù)來追尋測試用例時間。sys為輸出的激勵信號,即此信號為待測試模型的輸入激勵信號。input1為輸入給MIL軟件測試的激勵信號名稱,data為所測試Excel表格數(shù)據(jù),name為該測試模型所有輸入激勵信號的名稱。在該實(shí)施例中,MIL測試的根本是使用Simulink調(diào)用Excel的數(shù)據(jù),如果SIMULINK建立了一個模型為A+B=C。那么在Excel中需要定義data,data包括輸入變量即A和B。Simulink模型中需要input,input定義為A和B,Simulink和Excel中的名稱必須保持一致,Simulink在t的時間內(nèi)重新計算A+B的值,如EXCLE中定義t=0時,A=1,B=2,那么MIL測試的結(jié)果為C=3,在t=1秒時,A=10,B=0,那么測試結(jié)果為C=10,Excel的名稱定義為name,進(jìn)行MIL測試時才能將Excel與Simulink聯(lián)合起來。
更進(jìn)一步,根據(jù)Excel定義的時間流關(guān)系自動記錄測試結(jié)果輸出信號。具體可以設(shè)置t為仿真過程中時間計時器,即根據(jù)此參數(shù)來追尋測試用例時間。u為輸出的測試結(jié)果信號,即此信號為待測試模型的輸出激勵信號。input1為輸入出MIL軟件測試的激勵信號名稱。data為所測試Excel表格期望結(jié)果數(shù)據(jù)。name為該測試模型所有輸入激勵信號的名稱。cvkl為臨時存儲測試結(jié)果的文件。
優(yōu)選地,本發(fā)明采用一個輸入激勵模塊實(shí)現(xiàn)多種激勵輸入信號的復(fù)用,如圖2所示。具體來說,首先檢測輸入的激勵信號是否在所測試的Excel中存在,如果不存在該激勵信號無效,退出該流程。如果存在則計算出該激勵信號在Excel表格中所處的位置,得知具體位置后,判斷測試Excel表格時間是否結(jié)束,是則退出該流程,否則該激勵信號就會隨著Excel表格的時間軸依次輸入給待測模型??梢钥闯?,最終根據(jù)激勵信號不同循環(huán)調(diào)用該流程,從而實(shí)現(xiàn)一個輸入激勵模塊多種激勵信號輸入的重復(fù)使用。值得說明的是,得知具體位置后,該激勵信號就會隨著Excel表格的時間軸依次輸入給待測模型時可以將該激勵信號就會隨著Excel表格的時間軸依次輸出臨時數(shù)據(jù)庫(如圖3所示)。
步驟104,判斷Excel測試文檔每頁是否測試完成,如果測試完成則進(jìn)行步驟105,否則返回步驟103。
步驟105,判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,若相同則進(jìn)行步驟106,若不相同則進(jìn)行步驟107。具體的實(shí)施過程包括:
步驟一:設(shè)置C為Simulink建立的模型的預(yù)期值,在建立Excel表格時,寫入輸入(input)值A(chǔ)和B,例如A=1,B=2。以及寫入預(yù)期值C,例如C=3。
步驟二:設(shè)置u為輸出的測試結(jié)果信號,經(jīng)過MIL(Model in Loop模型在環(huán)測試)測試時,將u再次寫入到EXCLE中。
步驟三:判斷Simulink輸出測試結(jié)果u與Excel中預(yù)期值C是否相同,若相同則進(jìn)行步驟106,否則進(jìn)行步驟107。
還需要說明的是,可以進(jìn)行一次測試運(yùn)算之后,將其結(jié)果寫入到S IMULINK的緩存空間中,最后將結(jié)果全部導(dǎo)入到Excel中。
步驟106,該條測試用例通過并標(biāo)注,進(jìn)行步驟108。
其中,可以在該條測試用例最后一列標(biāo)注PASS,表示該條測試用例通過。
步驟107,該條測試用例未通過并標(biāo)注,進(jìn)行步驟108。
其中,可以在該條測試用例最后一列標(biāo)注FALSE,并將該條測試用例中以黃色背景標(biāo)注。
步驟108,將輸出結(jié)果在Excel測試文檔中的新建匯總頁面中呈現(xiàn)。
其中,輸出的結(jié)果可以包括該Excel測試文檔通過和未通過測試用例的基本信息,以及每條測試用例的測試時間。
在實(shí)施例中,對輸出的結(jié)果進(jìn)行判斷并將測試結(jié)果寫入Excel測試文檔中的新建匯總頁面中,并以黃色標(biāo)注出測試未通過的序列。具體來說,首先通過函數(shù)Stabc確定Excel測試文檔中存儲的具體的列數(shù),即根據(jù)測試結(jié)果輸入對應(yīng)的存儲位置上。然后,在對應(yīng)的該條測試用例的確定列上通過函數(shù)xlswrite輸入測試結(jié)果,其中通過函數(shù)stm為以黃色標(biāo)記錯誤測試序列。
在一個較佳地實(shí)施例中,本發(fā)明采用模塊組合機(jī)制進(jìn)行測試運(yùn)行。如圖4所示,首先,啟動主函數(shù),該過程自動調(diào)用用戶所需測試的Excel測試文檔中的數(shù)據(jù)。其次,調(diào)用外部接口,讀取待測試的Excel數(shù)據(jù)。之后,對Excel測試文檔中的表格數(shù)據(jù)進(jìn)行分析,優(yōu)選地分析其數(shù)據(jù)是否符合基本格式要求(測試數(shù)據(jù)是否齊全),若不滿足則退出測試流程。若滿足則依次調(diào)用輸入接口函數(shù)及輸出接口函數(shù),對所測試模型進(jìn)行實(shí)時測試。最后,待模型運(yùn)行完成之后對所測試的數(shù)據(jù)進(jìn)行判斷,并將所述判斷結(jié)果寫入Excel測試文檔中。可以看出,在運(yùn)行時只需啟動主函數(shù)即可完成整個控制,中途不存在暫?;蛘呔o急停止。其中,運(yùn)行時間根據(jù)用戶所測試的Simulink模型復(fù)雜程度以及所執(zhí)行的Excel測試文檔共同決定,即當(dāng)Simulink模型復(fù)雜或者所執(zhí)行的Excel測試文檔存在很多輸入、輸出激勵信號時,測試過程所耗費(fèi)的時間較長,反之則較短。
在本發(fā)明的另一方面,還提供了一種基于Matlab/Simulink模型自動化測試裝置,如圖5所示,所述模型自動化測試裝置依次包括加載單元501、調(diào)用單元502、測試單元503以及判斷單元504。其中,加載單元501加載所需測試的Simulink模型及標(biāo)定的參數(shù),之后調(diào)用單元502調(diào)用Excel測試文檔。然后,測試單元503按照Excel測試文檔中定義的時間流關(guān)系依次執(zhí)行每條測試用例。最后,判斷單元504判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,若相同則該條測試用例通過并標(biāo)注,否則該條測試用例未通過并標(biāo)注。
作為一個實(shí)施例,加載單元501將Simulink模塊添加至Simulink庫中,即加載了所需測試的Simulink模型。較佳地,所述的Simulink模塊可以為自定義的。優(yōu)選地,自定義Simulink庫模塊方式與用戶Simulink模型無縫對接。其中,具體的實(shí)施包括:設(shè)置寫入的自定義Simulink模塊的文件名稱,例如:通過blkStruct.Name函數(shù),blkStruct為標(biāo)準(zhǔn)庫函數(shù),庫函數(shù)由名稱Name等等多種內(nèi)容構(gòu)成。設(shè)置寫入自定義Simulink庫模型名稱,例如blkStruct.OpenFcn。還有,設(shè)置寫入需要在SIMULINK庫文件下顯示的名稱,例如blkStruct.MaskDisplay。另外,在Simulink庫中打開所需測試Simulink模型可通過open_system函數(shù)。
另外,自動加載相關(guān)標(biāo)定的參數(shù),具體地:通過函數(shù)run將標(biāo)定參數(shù)加載至工作空間。
作為一個較佳地實(shí)施例,調(diào)用單元502可以采用讀寫Excel表格方式,首先將其表格數(shù)據(jù)讀入MATLAB工作空間,再將工作數(shù)據(jù)寫入自定義函數(shù)中的方式實(shí)現(xiàn)數(shù)據(jù)與外部Excel進(jìn)行交換。優(yōu)選地,采用程序嵌套方式實(shí)現(xiàn)內(nèi)部函數(shù)的互相調(diào)用。具體的實(shí)施包括:自動調(diào)用所需的Excel測試文檔,通過importdata函數(shù)導(dǎo)入Excel測試文檔至工作空間,然后通過length函數(shù)獲取測試文檔Excel的頁數(shù)。
作為另一個較佳地實(shí)施例,測試單元503根據(jù)Excel定義的時間流關(guān)系自動加載輸入的激勵信號。具體可以設(shè)置t為仿真過程中時間計時器,即根據(jù)此參數(shù)來追尋測試用例時間。sys為輸出的激勵信號,即此信號為待測試模型的輸入激勵信號。input1為輸入給MIL軟件測試的激勵信號名稱,data為所測試Excel表格數(shù)據(jù),name為該測試模型所有輸入激勵信號的名稱。在該實(shí)施例中,MIL測試的根本是使用Simulink調(diào)用EXCLE的數(shù)據(jù),如果Simulink建立了一個模型為A+B=C。那么在EXCLE中需要定義data,data包括輸入變量即A和B。Simulink模型中需要input,input定義為A和B,SIMULINK和EXCLE中的名稱必須保持一致,Simulink在t的時間內(nèi)重新計算A+B的值,如EXCLE中定義t=0時,A=1,B=2,那么MIL測試的結(jié)果為C=3,在t=1秒時,A=10,B=0,那么測試結(jié)果為C=10,Excel的名稱定義為name,進(jìn)行MIL測試時才能將EXCLE與S IMULINK聯(lián)合起來。
更進(jìn)一步,根據(jù)Excel定義的時間流關(guān)系自動記錄測試結(jié)果輸出信號。具體可以設(shè)置t為仿真過程中時間計時器,即根據(jù)此參數(shù)來追尋測試用例時間。u為輸出的測試結(jié)果信號,即此信號為待測試模型的輸出激勵信號。input1為輸入出MIL軟件測試的激勵信號名稱。data為所測試Excel表格期望結(jié)果數(shù)據(jù)。name為該測試模型所有輸入激勵信號的名稱。cvkl為臨時存儲測試結(jié)果的文件。
優(yōu)選地,可以采用一個輸入激勵模塊實(shí)現(xiàn)多種激勵輸入信號的復(fù)用,具體來說:首先檢測輸入的激勵信號是否在所測試的Excel中存在,如果不存在該激勵信號無效,退出該流程。如果存在則計算出該激勵信號在Excel表格中所處的位置,得知具體位置后,判斷測試Excel表格時間是否結(jié)束,是則退出該流程,否則該激勵信號就會隨著Excel表格的時間軸依次輸入給待測模型。可以看出,最終根據(jù)激勵信號不同循環(huán)調(diào)用該流程,從而實(shí)現(xiàn)一個輸入激勵模塊多種激勵信號輸入的重復(fù)使用。值得說明的是,得知具體位置后,該激勵信號就會隨著Excel表格的時間軸依次輸入給待測模型時可以將該激勵信號就會隨著Excel表格的時間軸依次輸出臨時數(shù)據(jù)庫。
在一個優(yōu)選地實(shí)施例中,判斷單元504判斷測試結(jié)果與對應(yīng)的Excel測試文件中的期望值是否相同,具體的實(shí)施過程包括:
步驟一:設(shè)置C為Simulink建立的模型的預(yù)期值,在建立EXCLE表格時,寫入輸入(input)值A(chǔ)和B,例如A=1,B=2。以及寫入預(yù)期值C,例如C=3。
步驟二:設(shè)置u為輸出的測試結(jié)果信號,經(jīng)過MIL(Model in Loop模型在環(huán)測試)測試時,將u再次寫入到EXCLE中。
步驟三:判斷Simulink輸出測試結(jié)果u與Excel中預(yù)期值C是否相同,若相同則進(jìn)行步驟106,否則進(jìn)行步驟107。
還需要說明的是,可以進(jìn)行一次測試運(yùn)算之后,將其結(jié)果寫入到S IMULINK的緩存空間中,最后將結(jié)果全部導(dǎo)入到EXCLE中。
在本發(fā)明所述裝置的另一個實(shí)施例中,如圖6所示,所述模型自動化測試裝置還可以包括輸出單元505。其中,所述的輸出單元505與判斷單元504連接,可以將輸出的測試結(jié)果寫入Excel測試文檔中的新建匯總頁面中,并標(biāo)注出測試未通過的序列呈現(xiàn)。另外,輸出的結(jié)果可以包括該Excel測試文檔通過和未通過測試用例的基本信息,以及每條測試用例的測試時間。
在實(shí)施例中,對輸出的結(jié)果進(jìn)行判斷并將測試結(jié)果寫入Excel測試文檔中的新建匯總頁面中,并以黃色標(biāo)注出測試未通過的序列。具體來說,首先通過函數(shù)Stabc確定Excel測試文檔中存儲的具體的列數(shù),即根據(jù)測試結(jié)果輸入對應(yīng)的存儲位置上。然后,在對應(yīng)的該條測試用例的確定列上通過函數(shù)xlswrite輸入測試結(jié)果,其中通過函數(shù)stm為以黃色標(biāo)記錯誤測試序列。
需要說明的是,在本發(fā)明所述的基于Matlab/Simulink模型自動化測試裝置的具體實(shí)施內(nèi)容,在上面所述的基于Matlab/Simulink模型自動化測試方法中已經(jīng)詳細(xì)說明了,故在此重復(fù)內(nèi)容不再說明。
綜上所述,本發(fā)明提供的基于Matlab/Simulink模型自動化測試方法和裝置,創(chuàng)造性地提供了根據(jù)用戶自定義測試用例自動完成模型的開環(huán)、閉環(huán)測試,并自動生成相應(yīng)測試結(jié)果報告,該報告能清晰呈現(xiàn)出測試模型通過與不通過的測試步驟;同時,本發(fā)明具有廣泛、重大的推廣意義;最后,整個所述的模型自動化測試方法和裝置緊湊,易于控制。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。
另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實(shí),即關(guān)于這些框圖裝置的實(shí)施方式的細(xì)節(jié)是高度取決于將要實(shí)施本發(fā)明的平臺的(即,這些細(xì)節(jié)應(yīng)當(dāng)完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細(xì)節(jié)(例如,電路)以描述本發(fā)明的示例性實(shí)施例的情況下,對本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下或者這些具體細(xì)節(jié)有變化的情況下實(shí)施本發(fā)明。因此,這些描述應(yīng)被認(rèn)為是說明性的而不是限制性的。
盡管已經(jīng)結(jié)合了本發(fā)明的具體實(shí)施例對本發(fā)明進(jìn)行了描述,但是根據(jù)前面的描述,這些實(shí)施例的很多替換、修改和變型對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例如,其它存儲器架構(gòu)(例如,動態(tài)RAM(DRAM))可以使用所討論的實(shí)施例。
本發(fā)明的實(shí)施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。