摘要:在汽車行業(yè),隨著ECU增加的復(fù)雜性,需要創(chuàng)建便于早期測試以確保功能的模型,但對于如何編寫這些測試以獲得最大覆蓋范圍幾乎沒有指導(dǎo)。文章評估了原型CANoe+,它從軟件開發(fā)人員和軟件測試人員的角度出發(fā),使用CANoe和(GraphWalker工具Vs CANoe關(guān)于生成測試用例的覆蓋范圍最大化。實驗通過使用Mann-Whitney-Wilcoxon統(tǒng)計檢驗時,CANoe+比單獨使用顯著更有效,這些結(jié)果加強了現(xiàn)有證據(jù),證明使用基于模型的測試技術(shù)(如CANoe+)在汽車系統(tǒng)中使用CANoe等測試方法的優(yōu)越性。
關(guān)鍵詞:EUC;最大覆蓋;CANoe;GraphWalker工具
中圖分類號:U467.1+3
文獻標識碼:A
文章編號:1001-5922(2020)08-0179-04
Comparative Study on Automated Control System Based onModel Testing
DUAN Shao-yong
(Yangling Vocational & Technical College,Yangling Shaanxi 712IOO.China)
Abstract : In the automotive industry,with the added complexity of ECUs,there is a need to create models that facili-tate early testing to ensure functionality,but there is little guidance on how to write these tests for maximum cover-age.This article evaluates the prototype CANoe+.which uses CANoe and the GraphWalker tool Vs CANoe to maxi-mize the coverage of the generated test cases from the perspective of software developers and software testers.Ex-periments Using the Mann-Whitney-Wilcoxon statistical test.CANoe+is significantly more efficient than using italone.These results reinforce existing evidence and demonstrate the use of model-based testing techniques such asCANoe+for CANoe testing in automotive systems. The superiority of the method.
Key Words : EUC;Maximum Coverage;CANoe;GJraphWalker Tool
1概述
如今,隨著電子控制單元( Electronic ControlUnits,ECU)中的軟件變得越來越復(fù)雜,汽車行業(yè)對高效測試過程的需求日益增加。ECU是任何控制汽車中一個或多個電氣系統(tǒng)或子系統(tǒng)的嵌入式系統(tǒng)的通用術(shù)語,行業(yè)內(nèi)專家已經(jīng)提出了基于自動化模型的軟件測試,但是由于所構(gòu)建系統(tǒng)的復(fù)雜性,生成自動化測試用例是很巨大的挑戰(zhàn)[1]??紤]到這一點,創(chuàng)建一種方法使開發(fā)人員能夠使用圖論理論技術(shù)對期望系統(tǒng)的行為進行建模,并生成自動化測試用例實現(xiàn)系統(tǒng)功能測試的智能化。
該系統(tǒng)主要2種工具(即CANoe[2]和GraphWalker[3])的優(yōu)勢生成和執(zhí)行最大覆蓋范圍的測試用例,并成功應(yīng)用于汽車行業(yè)。通過最大覆蓋范圍,可表示系統(tǒng)的功能由生成的測試用例執(zhí)行多少來確定。這將通過使用模型來驗證系統(tǒng)要求,并驗證被測系統(tǒng)是否滿足客戶的需求;此外,本文所提出的假設(shè)是,從長遠來看,這種方法將降低了回歸測試的成本,開發(fā)人員的努力將被引導(dǎo)至探索性和負面測試。
2基于模型測試介紹
基于模型的測試是通過應(yīng)用許多復(fù)雜的方法從與被測系統(tǒng)(Svstein Under Test,SUT)相關(guān)的模型生成測試的過程?;谀P偷臏y試的基本思想是:并非通過手動創(chuàng)建測試用例,而是選擇一種算法從模型中自動生成測試用例,這種方式減少了測試設(shè)計時間,并且允許通過使用不同的測試選擇標準等來從同一模型生成各種測試套件。
通過使用基于模型的測試工具,測試用例從被測軟件的抽象模型中生成,測試用例被實現(xiàn)為可執(zhí)行測試,然后使用所選算法自動執(zhí)行測試用例。的每個測試輸出和每個預(yù)期輸出得到?;谀P偷臏y試過程由幾個主要步驟組成,即被測軟件的建模,從模型生成抽象測試,抽象測試的具體化以使其可執(zhí)行,針對待測軟件(SUT)執(zhí)行測試以分配判決并分析測試結(jié)果等,各步驟介紹如下。
1)對待測試軟件進行建模,根據(jù)圖1中的實際模型編寫待測試系統(tǒng)的抽象模型。抽象模型必須關(guān)注測試開發(fā)人員想要測試的功能,并將其他不需要測試的細節(jié)抽象出來。在描述模型之后,可以檢查驗證和驗證哪種GraphWalker可以用于此效果。
2)通過模型生成抽象測試。抽象測試是自動生成的,并且是被測軟件的簡單視圖。因此,它們不包含有關(guān)如何直接執(zhí)行測試用例的詳細信息,但是它們是在執(zhí)行測試之前要實現(xiàn)的方法的接口。然后測試開發(fā)人員必須決定測試選擇標準,測試選擇標準也決定了測試覆蓋范圍,以確定從模型中產(chǎn)生哪些測試,因為可以進行無數(shù)次可能的測試。這一步的輸出是抽象測試,它是來自模型的操作序列。
3)將抽象測試轉(zhuǎn)換為可執(zhí)行的具體測試??赏ㄟ^使用將每個抽象測試轉(zhuǎn)換為可執(zhí)行測試腳本的轉(zhuǎn)換工具來完成。這通過在抽象模型中未提及的低級SUT細節(jié)中添加抽象測試和具體軟件之間的差距。
4)針對被測系統(tǒng)執(zhí)行具體測試。這可以在線完成,其中基于模型的測試工具直接連接到SUT,并在基于模型的測試工具生成測試用例作為計算機可讀資產(chǎn)(以后可以白動運行)時動態(tài)或脫機地進行測試。
5)分析測試執(zhí)行結(jié)果和采取糾正措施。對于每個失敗的測試,必須確定導(dǎo)致失敗的故障。當測試失敗時,可能是由于SUT中的錯誤,或者它可能是測試用例本身的錯誤。盡管如此,該測試模式能夠獲得有關(guān)模型正確性的反饋,因為故障可以與模型或可執(zhí)行測試相關(guān)聯(lián)。
3CANoe+測試研究介紹
CANoe+是解決手頭挑戰(zhàn)的解決方案,其集成了GraphWalker和CANoe等工具,通過接口的實施構(gòu)建這兩種工具之間的溝通橋梁。但是,除上述工具外,該解決方案還包括模型和測試模塊,在使用CANoe+編寫測試時涉及3個主要步驟,如圖2所示的上下文框圖所示[4-9]。
3.1建模
CANoe+涉及要測試的功能的建模,使用vEd桌面應(yīng)用程序,將被測試系統(tǒng)的預(yù)期行為模型繪制為擴展的有限狀態(tài)機。它將待測系統(tǒng)建模為狀態(tài)和轉(zhuǎn)換,模型以GraphML格式保存,保存的模型作為預(yù)期狀態(tài),轉(zhuǎn)換和需要測試的值的輸入提供給GraphWalker工具。
3.2GraphWalker
在如圖2所示的上下文中,GraphWalker有3個主要角色:①檢查模型以確保從起始狀態(tài)到結(jié)束狀態(tài)至少有一條直接路徑;②生成一個界面,即提供的模型的抽象測試;③以非確定性順序執(zhí)行測試。Graph-Walker通過上面提到的通信橋連接到CANoe,為了進行此通信,GraphWalker生成的接口已實現(xiàn),并使用“gwlnterface.jar”。使用了100%的邊緣覆蓋選擇標準來覆蓋所有邊緣,從而導(dǎo)致覆蓋狀態(tài),當執(zhí)行Graph-Walker時,jar文件只有一個單獨的任務(wù),即向服務(wù)器發(fā)送GraphWalker請求,然后執(zhí)行測試。Graph-Walker請求包含當前狀態(tài)/轉(zhuǎn)換及其值的快照,并且快照打包在一個“JSON”對象中。
3.3 CANoe
CANoe包括一個模擬的CAN網(wǎng)絡(luò)和一個保存網(wǎng)絡(luò)值的數(shù)據(jù)庫(通過服務(wù)器實現(xiàn))。如圖2中的上下文的模擬CAN網(wǎng)絡(luò)就是被測系統(tǒng),CANoe負責測試框架,它是用來測試被測系統(tǒng)的測試驅(qū)動程序。本文使用了一個.Net測試模塊,它由CANoe提供的庫來實現(xiàn)測試模塊,測試模塊是SUT適配器的實現(xiàn),它應(yīng)該與前一步中由GraphWalker生成的接口100%對應(yīng)。測試模塊使用“MBT.dll”,它是上述橋的另一端,并充當服務(wù)器以執(zhí)行從GraphWalker收到的請求。
3.4測試執(zhí)行
GraphWalker使用隨機函數(shù)通過模型生成隨機測試序列,以確保邊緣覆蓋,因此當它執(zhí)行時,它會發(fā)送一個要執(zhí)行的給定函數(shù)的請求。在發(fā)送請求時,它具有附加的期望值。當找到測試模塊中要執(zhí)行的功能時,將比較模型的期望值與CANoe數(shù)據(jù)庫中的實際值。向GraphWalker發(fā)回一個確認信息,確認該功能已被執(zhí)行,然后CANoe會生成一份測試報告,顯示被稱為測試用例的功能是否合格。
要使用CANoe+,需要為被測系統(tǒng)建模,添加gwlnterface,將jar添加到GraphWalker并使用它提供的接口來實現(xiàn)可執(zhí)行測試。在CANoe方面,將MBT.dll庫添加到測試模塊中,生成的接口被實現(xiàn)為.NET測試模塊。通過Incase修改或更改需要在被測系統(tǒng)中進行,例如,如果模型中定義了一個變量,并且需要在測試中使用它,那么需要完成的所有工作就是在實現(xiàn)的java類中定義它生成的接口以及實現(xiàn)生成接口的.NET測試模塊。采用這種方法,回歸測試變得更容易,因為變更和功能易于并入,并且能夠以低得多的成本輕松編寫測試。
4實驗設(shè)計
本文選擇進行控制實驗來評估原型,采用原型評估方式對不同模型的控制系統(tǒng)性能進行對比研究,原型評估是由使用CANoe+和CANoe工具完成的。參與者隨機抽樣進行兩種治療,以防止偏差影響結(jié)果。
覆蓋工具,即將CANoe+的使用與使用CANoe進行了比較。覆蓋的依賴或響應(yīng)變量有助于了解給定模型在創(chuàng)建的測試中覆蓋了多少。覆蓋范圍在3個不同方面進行測量,即煙霧測試,功能測試和穩(wěn)定性測試。本文主要專注于功能測試,這些測試取決于模型中邊緣的100%覆蓋率,以充分鍛煉待測軟件,從而確定有多少軟件已被執(zhí)行。
定義如下假設(shè):空假設(shè):與使用CANoe相比,使用CANoe+工具生成的基于白動化模型的軟件測試用例的覆蓋率沒有最大化;實驗(可選)假設(shè):與使用CANoe相比,使用CANoe+工具可以最大化基于自動化模型的軟件測試用例的覆蓋率;使用收集到的數(shù)據(jù),假設(shè)能夠提供一個是否拒絕還是拒絕零假設(shè)的基礎(chǔ)。
為了分析選擇的分析模型,通過運行如下R函數(shù),采用shapiro.test()來測試失敗測試用例的樣本分布的正態(tài)性,qqnorm()和qqline()從正態(tài)分布中計算分位數(shù);R函數(shù)wilcoxon.test()在0.05的顯著性水平下運行,替代性較小的意思是單側(cè)測試,從替代假設(shè)使用替代值較少的方法,聲明CANoe的平均覆蓋率小于CANoe+的平均覆蓋率。對于每種情況,都會顯示正態(tài)性測試,Mann-Whitney-Wilcoxon測試,Q-Q圖和適用的工具的qqline,如下分別介紹了不同模型下的性能指標情況。
1)無故障。CANoe和CANoe+中失敗測試的所有值都是相同的,因此無法描述Shapiro wilk正態(tài)性測試,如下圖所示為CANoe和CANoe中失敗測試用例的Q-Q曲線圖,沒有錯誤注入,檢驗結(jié)果如圖3所示。
2)一個故障。為Canoe和CANoe+工具運行Shap-iro wilk正態(tài)性檢驗,證實的數(shù)據(jù)不正常。正是基于此,才根據(jù)Mann-Whitney-Wilcoxon非參數(shù)檢驗來檢查的數(shù)據(jù)是否有統(tǒng)計學(xué)意義,檢驗結(jié)果如圖4所示。
3)兩個故障。在運行shapiro wilk測試時,CA-Noe+工具提供了非正常數(shù)據(jù),通過分析了兩組數(shù)據(jù),運行Mann-Whitney-Wilcoxon非參數(shù)檢驗來確定是否存在統(tǒng)計學(xué)意義,如圖5所示為CANoe和CANoe+中帶有兩次故障注入的失敗測試案例的Q-Q圖。
5結(jié)語
文章主要介紹了基于模型測試汽車白動控制系統(tǒng)的工具CANoe+的原型,該工具旨在通過新工具(CA-Noe+)與目前的CANoe工作方式進行比較,研究是否存在覆蓋范圍最大化的基于模型的測試用例。通過對每次運行、記錄失敗的測試用例的數(shù)量,并進行分析。收集的數(shù)據(jù)進行統(tǒng)計分析并以對照實驗的形式報告。測試結(jié)果提供了足夠的證據(jù),證明在汽車系統(tǒng)中使用CANoe+與使用CANoe相比可以增加測試用例的覆蓋范圍。
參考文獻
[1] Fodor D,Enisz K.Vehicle dynamics based ABS ECUverification on real-time hardware-in-the-loop simulator[C]//Power Electronics and Motion Control Conferenceand Exposition.IEEE, 2014: 1247-1251.
[2] Altinger H, Wotawa F,Schurius M.Testing methodsused in the automotive industry: results from a survey[C]//The Workshop on Joining Academia&IndustryContrihutions To Test Automation&Model-Based Test-ing. ACM,2014:1-6.
[3] Arcuri A, Briand L.A practical guide for using statis-tical tests to assess randomized algorithms in softwareengineering[C]//lntemational Conference on Software En-gineering.IEEE, 2011: 1-10.
[4]崔亦博.CBTC系統(tǒng)軟件測試自動化的研究[D].中國鐵道科學(xué)研究院,2017.
[5]魯劍俠.自動控制在汽車生產(chǎn)中的地位及展望[J].內(nèi)燃機與配件,2017(17):116-117.
[6]侯瑞春,丁香乾,陶冶,等.制造物聯(lián)及相關(guān)技術(shù)架構(gòu)研究[J].計算機集成制造系統(tǒng),2014, 20(01):11-20.
[7]鄧曉華,余超,徐瑾,等.基于制造物聯(lián)技術(shù)的智能遠程服務(wù)平臺的設(shè)計及實現(xiàn)[J].自動化與儀器儀表,2015(08):125-128+130.
[8]邱釗鵬,王彰云,李暉,等.一種基于串聯(lián)諧振補償拓撲的電動汽車變壓式無線充電系統(tǒng)[J].電子器件,2018,41(03):667-671.
[9] Yang X, Lin Y, Gao F,et al.Automated test svstemdesign of body control module[C]//Intemational Confer-ence on Information Science. Electronics and ElectricalEngineering.IEEE, 2014: 1542-1546.
收稿日期:2020-04-19
作者簡介:段少勇(1982-),男,河南漯河人,碩士研究生,講師,研究方向:汽車檢測與維修、汽車制造工藝等。