發(fā)動機控制器軟件診斷模塊測試方法及測試系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及汽車電子領域,特別是涉及一種通過NI公司(Nat1nal Instruments美國國家儀器公司)的USB-CAN網(wǎng)絡通信設備,結合NI公司的汽車診斷指令集工具,在普通工控機上進行發(fā)動機控制器軟件診斷模塊測試的方法。本發(fā)明還涉及一種采用所述測試方法形成的發(fā)動機控制器軟件診斷模塊測試系統(tǒng)。
【背景技術】
[0002]目前通常以人工編輯通信數(shù)據(jù)幀和手工控制診斷數(shù)據(jù)幀收發(fā)的方式,對各種版本的發(fā)動機控制器軟件的診斷模塊進行測試。
[0003]這種測試方式需要使用大量的人力資源,而且測試過程也非常的復雜。一套發(fā)動機控制器軟件的診斷模塊測試用例會包含至少幾十條測試項。以傳統(tǒng)的人工方式輸入診斷數(shù)據(jù)幀存在以下幾個弊端:
[0004]1、測試的工作效率極其低下,有經(jīng)驗的工程師測試一套發(fā)動機控制器軟件診斷模塊,需要耗費I至2個小時的工作量;
[0005]2、測試過程中人工輸入過多,非常容易誤操作;
[0006]3、對于安全訪問這樣的診斷服務,需要根據(jù)種子計算密鑰,然后獲得診斷請求數(shù)據(jù)幀,用戶無法在診斷通信協(xié)議規(guī)定的、非常短的時間內(nèi)獲得密鑰,因此會導致需要安全訪問的測試用例無法執(zhí)行,或者失去測試的意義;
[0007]4、判斷測試結果的步驟十分復雜,需用從發(fā)動機控制器返回的診斷響應數(shù)據(jù)幀中選取相應的字節(jié)或位,然后進行換算,判斷過程冗長而且容易出錯;
[0008]5、由于上述弊端4,對于測試中的異常結果無法及時響應,無法判斷后續(xù)測試用例是否有執(zhí)行的必要,往往要等到測試結束后才能發(fā)現(xiàn)測試的過程中發(fā)生的異常,導致整個測試結果失去意義。
【發(fā)明內(nèi)容】
[0009]本發(fā)明要解決的技術問題是提供一種能提高發(fā)動機控制器軟件診斷模塊測試工作的測試效率和測試質(zhì)量的發(fā)動機控制器軟件診斷模塊測試方法。本發(fā)明還提供了一種采用所述測試方法形成的發(fā)動機控制器軟件診斷模塊測試系統(tǒng)。
[0010]為解決上述技術問題,本發(fā)明提供的基于NI公司USB-CAN網(wǎng)絡通信設備和汽車診斷指令集工具的發(fā)動機控制器軟件診斷模塊測試方法,其特征是,包括以下步驟:
[0011]1、設計基于Excel的診斷軟件測試模板文件;
[0012]A、定義測試模板至少包括以下字段:
[0013]al、平臺,發(fā)動機控制器系統(tǒng)平臺;
[0014]a2、項目號,發(fā)動機控制器系統(tǒng)項目號;
[0015]a3、軟件名,發(fā)動機控制器軟件名稱;
[0016]所述平臺、項目號和軟件名用于顯示以及在測試報告中注明,也能用于校驗用戶是否正確選擇了與發(fā)動機控制器軟件所匹配的測試模板;
[0017]a4、診斷類型,指定診斷通信的方式“CAN”或“K” ;
[0018]a5、請求ID,十六進制表示的診斷服務請求方數(shù)據(jù)鏈路層標識符;
[0019]a6、應答ID,十六進制表示的診斷服務應答方數(shù)據(jù)鏈路層標識符;
[0020]a7、波特率,十進制表示的數(shù)據(jù)通信速率,單位為bps ;
[0021]a8、幀格式,CAN網(wǎng)絡通信數(shù)據(jù)幀的格式,能采用“標準幀”、“遠程幀”或“擴展幀”;
[0022]B、定義測試用例至少包括以下字段:
[0023]bl、測試序號,每個測試用例都有一個唯一的測試序號作為索引的主鍵,以字母“I”加自然數(shù)組成;
[0024]b2、服務請求,診斷服務的應用層請求報文,為十六進制字節(jié)組成的字符串,每兩個字節(jié)之間以半角英文逗號“,”分隔;
[0025]b3、描述信息,用于提示工程師該測試項診斷服務的意義,除了提示作用以外,在實際測試和程序運行過程中沒有其它意義;
[0026]b4、測試條件,已確定的發(fā)動機控制器測試工況的枚舉,系統(tǒng)軟件需要在發(fā)送該測試項的診斷服務請求之前,對通過發(fā)動機控制器測試工況設置接口,按“測試條件”中列明的內(nèi)容,對發(fā)動機控制器測試工況進行設置;
[0027]b5、預期應答,發(fā)動機控制器應該對診斷服務請求應答的應用層報文,為十六進制字節(jié)組成的字符串,每兩個字節(jié)之間以半角英文逗號“,”分隔;
[0028]b6、判斷方式,測試結果的判斷方式采用枚舉,有“不需判斷”、“相等”、“范圍”、“頻率”共4種;
[0029]b6.1、對于要求判斷相等的,要求物理數(shù)值等于目標數(shù)值;
[0030]b6.2、對于要求是否在某范圍內(nèi),要求物理數(shù)值在目標數(shù)值所要求的范圍內(nèi);
[0031]b6.3、對于頻率信號,需要檢測物理數(shù)值是否翻轉了相應的頻率,即目標數(shù)值。
[0032]b7、物理數(shù)值,測試用例的“數(shù)據(jù)域”及其換算方法;
[0033]b8、目標數(shù)值,根據(jù)不同的“判斷方式”所定義的比較目標值;
[0034]b9、出錯處理,當測試用例的測試不符合期望,或者測試過程中發(fā)生異常時,跳轉到下一條執(zhí)行的測試用例的“測試序號”索引,或者以“break”關鍵字表示中止當前測試;
[0035]2、根據(jù)測試模板編寫符合測試模板格式的診斷軟件測試用例;
[0036]3、根據(jù)用戶指定的測試模板文件和模板名稱,解析測試模板文件中的測試模板,生成用于描述測試模板項測試用例和控制整個測試過程的數(shù)據(jù)結構;
[0037]4、控制測試流程,從測試模板文件中的首個測試項開始,測試通過則執(zhí)行模板中下一行測試項、測試不通過則跳轉至“出錯處理”列所指定的測試用例或“BREAK”中斷,直至執(zhí)行完模板中的最后一個測試項或因指向關鍵字“BREAK”而終止;
[0038]5、模擬工況解析,獲取測試前工況的描述信息,通過與測試環(huán)境接口的數(shù)據(jù)交互,設置模擬測試環(huán)境滿足當前測試項中定義的“測試條件”;
[0039]生成診斷通訊數(shù)據(jù)幀:根據(jù)測試模板中的“診斷類型”、“請求ID”、“響應ID”、“波特率”、“幀格式”的描述,結合IS014230或IS015765定義的診斷通訊規(guī)范,將測試模板中“服務請求”和“預期應答”列的內(nèi)容解析并生成符合上述診斷通訊協(xié)議的數(shù)據(jù)幀格式;
[0040]7、通訊數(shù)據(jù)幀收發(fā),通過驅動指定的硬件設備,根據(jù)特定的診斷規(guī)范將診斷請求數(shù)據(jù)幀發(fā)送至發(fā)動機控制器,并接收發(fā)動機控制器返回的診斷響應數(shù)據(jù)幀;
[0041]8、判斷測試結果,驗證接收到發(fā)動機控制器的診斷響應數(shù)據(jù)幀、診斷響應數(shù)據(jù)幀是否符合診斷協(xié)議的規(guī)范、診斷響應數(shù)據(jù)幀中的關鍵字節(jié)是否符合預設的期望數(shù)值、根據(jù)“判斷方式”列的定義,對比“物理數(shù)值”列的描述,是否符合“目標數(shù)值”列的期望數(shù)值;
[0042]9、實現(xiàn)與發(fā)動機控制器工況環(huán)境交互,根據(jù)“測試條件”列的內(nèi)容設置發(fā)動機控制器的虛擬工況,根據(jù)“物理數(shù)值”列中可能包含的發(fā)動機控制器內(nèi)部變量名,實現(xiàn)對相關變量值的獲?。?br>[0043]10、測試報告輸出,在測試結束后輸出能夠體現(xiàn)測試過程和測試結果的測試報生P=I ;
[0044]11、日志文件輸出,記錄每一步測試步驟中和發(fā)動機控制器的診斷通信數(shù)據(jù)幀。
[0045]一種基于NI公司USB-CAN網(wǎng)絡通信設備和汽車診斷指令集工具的發(fā)動機控制器軟件診斷模塊測試系統(tǒng),包括:
[0046]測試環(huán)境開啟模塊,依次執(zhí)行發(fā)動機控制器測試環(huán)境上電、開啟CCP或INCA、調(diào)用主測試程序、初始化外圍硬件4個步驟,初始化測試環(huán)境和發(fā)動機控制器內(nèi)部變量獲取通道;
[0047]測試模板文件解析模塊,用于測試模板文件的解析,測試模板文件中測試項的獲取、測試用例成員的獲取,將多個不同內(nèi)容的測試模板,通過同一個測試模板文件解析函數(shù),轉換為系統(tǒng)運行周期內(nèi)通用的標準.NET類的實例;生成測試用例的時候,每獲得Excel中一個有效數(shù)據(jù)行,就生成一個測試項實例,
[0048]測試流程控制模塊,用于管理整個測試過程;
[0049]測試用例執(zhí)行模塊,從最初測試項的輸入到最終測試結果輸出通過組合調(diào)用其他模塊來實現(xiàn)測試用例的執(zhí)行的功能;
[0050]工況分析設置模塊,通過解析.NET測試用例實例的成員測試條件字符串的值獲取工況,并調(diào)用發(fā)動機控制器工況設置過程;
[0051]如果不需要設置工況,則跳過LabVIEW中設置工況的調(diào)用步驟。
[0052]診斷協(xié)議解析模塊,用于解析診斷通信協(xié)議;
[0053]診斷數(shù)據(jù)通信模塊,CAN診斷模式下通過調(diào)用NI CAN通信設備底層VI在線診斷模式下通過RS232-K-Line通信設備實現(xiàn)。
[0054]測試結果分析模塊,用于判斷測試用例的執(zhí)行結果;
[0055]日志文件記錄模塊,保存日志文件;
[0056]測試報告輸出模塊,用于在測試終了時,輸出一個反映測試情況的測試報告;
[0057]測試環(huán)境關閉模塊,負責在測試完成后關閉發(fā)動機控制器工況和電源;
[0058]輔助函數(shù)模塊,不屬于任何一個具體的功能模塊,但是包含每個模塊都會調(diào)用的底層功能的函數(shù),包括數(shù)據(jù)類型的轉換、字符串解析、數(shù)組操作、數(shù)學運算和邏輯運算。
[0059]本發(fā)明的方法能減少測試過程中的人工操作,杜絕人為因素引起的測試失效,提高測試效率,大幅度縮減測試所耗費的工時及人力成本;通