高效的汽車電子測試――種貫穿HIL仿真到診斷的測試
這種測試的一個(gè)重要基礎(chǔ)是殘余總線仿真。理想情況下這種仿真并非由手工建立,而是從系統(tǒng)的描述數(shù)據(jù)庫中自動(dòng)生成和參數(shù)化的。實(shí)際工作由所謂的建模DLL(比如交互層、網(wǎng)絡(luò)管理等)完成,它們是隨工具一起提供的或者是由Vector作為OEM專用建模包提供的。殘余總線仿真為模擬節(jié)點(diǎn)提供的信號(hào)可以直接從測試腳本中獲取,也可以手工方式激勵(lì)或添加。
與測試階段中系統(tǒng)化的計(jì)劃、執(zhí)行和歸檔活動(dòng)相比,伴隨開發(fā)的測試通常省略了正式的執(zhí)行和歸檔。然而,這些測試對(duì)提高整體質(zhì)量做出了實(shí)質(zhì)性貢獻(xiàn),因?yàn)樗麄冑x予了開發(fā)者為后續(xù)的測試階段提供更穩(wěn)定的產(chǎn)品的能力。
4.成熟度評(píng)估和誤差分析
在開發(fā)過程中,為了評(píng)估ECU的成熟度,需要對(duì)所有執(zhí)行過的測試進(jìn)行全面的評(píng)價(jià)。除了要考慮單個(gè)測試結(jié)果在可靠性和相關(guān)性方面的質(zhì)量,更重要的是采用適當(dāng)?shù)臏y試來全面覆蓋所要求的特性。因此,非正式的測試結(jié)果對(duì)成熟度分析也是有幫助的。前提條件是(除記錄測試過程外)使用兼容的配置管理。從完成面向質(zhì)量的、結(jié)構(gòu)化的開發(fā)過程的角度來說,這也是十分必要的。
無論在何時(shí)何地(測試實(shí)驗(yàn)室或工作臺(tái)上),無需用戶或測試用例開發(fā)人員進(jìn)行干涉,使用CANoe執(zhí)行測試時(shí)都會(huì)生成一個(gè)測試記錄。這樣在進(jìn)行伴有測試的開發(fā)時(shí)就不需要做額外的工作。用于測試記錄的 XML是一種開放格式,以使其它工具使用以對(duì)結(jié)果進(jìn)行更深入的處理。例如在進(jìn)行成熟度分析時(shí)可以使用一個(gè)測試管理系統(tǒng)來評(píng)價(jià)測試記錄。
這項(xiàng)工作的本質(zhì)是測試結(jié)果到測試用例、測試用例到需求的映射。使用唯一的標(biāo)識(shí)符(比如一個(gè)需求ID)可以很容易地實(shí)現(xiàn)這一點(diǎn),測試用例開發(fā)者在單個(gè)測試用例中會(huì)引用它。CANoe會(huì)自動(dòng)將該標(biāo)識(shí)符復(fù)制到測試記錄中,這樣所有測試用例、測試結(jié)果和需求就可以明確地關(guān)聯(lián)起來(圖4)。
圖4: 測試用例和測試結(jié)果由ID明確地引用。
分析實(shí)際發(fā)生錯(cuò)誤的原因至少與記錄和評(píng)估測試結(jié)果同樣重要。大多數(shù)測試工具都不會(huì)提供這樣的功能或者僅提供一些并不完善的功能。一個(gè)重要原因就是錯(cuò)誤分析經(jīng)常被當(dāng)作開發(fā)者的一項(xiàng)完全獨(dú)立的任務(wù)。首先,他們面臨理解測試中檢測到的錯(cuò)誤并跟蹤其原因的問題。尤其是當(dāng)測試實(shí)驗(yàn)室報(bào)告錯(cuò)誤時(shí),開發(fā)者甚至?xí)r常無法使用測試中用到的系統(tǒng)。
基于上述原因,測試臺(tái)上的測試步驟以及每一個(gè)與DUT間的交互動(dòng)作都將被強(qiáng)制記錄,特別是總線通信。在分析階段,CANoe允許重放和分析任何需要的記錄(日志)。從而有可能在開發(fā)場所使用與測試臺(tái)上相同的測試系統(tǒng)以從中受益,這樣開發(fā)者就可以獨(dú)立地再現(xiàn)生成錯(cuò)誤的測試用例。在很多情況下,甚至是有必要進(jìn)行簡化時(shí)(比如為了避免選擇不存在的測量硬件)都可以執(zhí)行相關(guān)測試用例。
5.信號(hào)抽象和診斷
抽象是處理軟件開發(fā)和系統(tǒng)設(shè)計(jì)中復(fù)雜度問題時(shí)普遍采用的重要方法。它也可用來處理測試。ECU中不斷增多的功能不僅增加了系統(tǒng)的復(fù)雜度,還需要更廣泛和復(fù)雜的測試。選擇正確的抽象層組成測試不僅會(huì)影響創(chuàng)建測試用例所需要的工作量、進(jìn)而影響成本,而且會(huì)影響測試用例的質(zhì)量。就像所有其它軟件組件一樣,測試用例本身也可能會(huì)存在錯(cuò)誤,應(yīng)該在使用之前進(jìn)行檢查。此外,還需要必要的維護(hù),比如適應(yīng)需求的改變和修訂測試用例。
信號(hào)層抽象是測試ECU功能的常用方法,這也是為什么在ECU中實(shí)際的應(yīng)用程序通常會(huì)基于信號(hào)抽象的原因(圖5)。例如,在一個(gè)CAN系統(tǒng)中,ECU交互層提供了信號(hào)抽象。這正是CANoe使用交互層的方式;利用網(wǎng)絡(luò)描述中的信息,它將自身參數(shù)化。網(wǎng)絡(luò)描述同樣也可用于創(chuàng)建ECU軟件。這保證了ECU和測試環(huán)境使用相同的抽象層從而在兩者間形成最佳的協(xié)調(diào)。
信號(hào)抽象也表示了――至少在協(xié)議層――殘余總線仿真。比如,它保證周期性信號(hào)的確是按周期發(fā)送的。在測試中,ECU是假定置于總線通信的真實(shí)環(huán)境下的。此外,當(dāng)修改了系統(tǒng)通信矩陣時(shí),通常可以繼續(xù)使用保持不變的測試用例。對(duì)相同的應(yīng)用程序,抽象使得相似項(xiàng)目中的測試用例得到復(fù)用。
圖5: 信號(hào)一方面提供了消息和I/O線路間的抽象,另一方面提供了測試定義和仿真模型間的抽象。
評(píng)論