摘要:在汽車(chē)行業(yè),隨著ECU增加的復(fù)雜性,需要?jiǎng)?chuàng)建便于早期測(cè)試以確保功能的模型,但對(duì)于如何編寫(xiě)這些測(cè)試以獲得最大覆蓋范圍幾乎沒(méi)有指導(dǎo)。文章評(píng)估了原型CANoe+,它從軟件開(kāi)發(fā)人員和軟件測(cè)試人員的角度出發(fā),使用CANoe和(GraphWalker工具Vs CANoe關(guān)于生成測(cè)試用例的覆蓋范圍最大化。實(shí)驗(yàn)通過(guò)使用Mann-Whitney-Wilcoxon統(tǒng)計(jì)檢驗(yàn)時(shí),CANoe+比單獨(dú)使用顯著更有效,這些結(jié)果加強(qiáng)了現(xiàn)有證據(jù),證明使用基于模型的測(cè)試技術(shù)(如CANoe+)在汽車(chē)系統(tǒng)中使用CANoe等測(cè)試方法的優(yōu)越性。
關(guān)鍵詞:EUC;最大覆蓋;CANoe;GraphWalker工具
中圖分類(lèi)號(hào):U467.1+3
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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)中的軟件變得越來(lái)越復(fù)雜,汽車(chē)行業(yè)對(duì)高效測(cè)試過(guò)程的需求日益增加。ECU是任何控制汽車(chē)中一個(gè)或多個(gè)電氣系統(tǒng)或子系統(tǒng)的嵌入式系統(tǒng)的通用術(shù)語(yǔ),行業(yè)內(nèi)專(zhuān)家已經(jīng)提出了基于自動(dòng)化模型的軟件測(cè)試,但是由于所構(gòu)建系統(tǒng)的復(fù)雜性,生成自動(dòng)化測(cè)試用例是很巨大的挑戰(zhàn)[1]??紤]到這一點(diǎn),創(chuàng)建一種方法使開(kāi)發(fā)人員能夠使用圖論理論技術(shù)對(duì)期望系統(tǒng)的行為進(jìn)行建模,并生成自動(dòng)化測(cè)試用例實(shí)現(xiàn)系統(tǒng)功能測(cè)試的智能化。
該系統(tǒng)主要2種工具(即CANoe[2]和GraphWalker[3])的優(yōu)勢(shì)生成和執(zhí)行最大覆蓋范圍的測(cè)試用例,并成功應(yīng)用于汽車(chē)行業(yè)。通過(guò)最大覆蓋范圍,可表示系統(tǒng)的功能由生成的測(cè)試用例執(zhí)行多少來(lái)確定。這將通過(guò)使用模型來(lái)驗(yàn)證系統(tǒng)要求,并驗(yàn)證被測(cè)系統(tǒng)是否滿足客戶的需求;此外,本文所提出的假設(shè)是,從長(zhǎng)遠(yuǎn)來(lái)看,這種方法將降低了回歸測(cè)試的成本,開(kāi)發(fā)人員的努力將被引導(dǎo)至探索性和負(fù)面測(cè)試。
2基于模型測(cè)試介紹
基于模型的測(cè)試是通過(guò)應(yīng)用許多復(fù)雜的方法從與被測(cè)系統(tǒng)(Svstein Under Test,SUT)相關(guān)的模型生成測(cè)試的過(guò)程?;谀P偷臏y(cè)試的基本思想是:并非通過(guò)手動(dòng)創(chuàng)建測(cè)試用例,而是選擇一種算法從模型中自動(dòng)生成測(cè)試用例,這種方式減少了測(cè)試設(shè)計(jì)時(shí)間,并且允許通過(guò)使用不同的測(cè)試選擇標(biāo)準(zhǔn)等來(lái)從同一模型生成各種測(cè)試套件。
通過(guò)使用基于模型的測(cè)試工具,測(cè)試用例從被測(cè)軟件的抽象模型中生成,測(cè)試用例被實(shí)現(xiàn)為可執(zhí)行測(cè)試,然后使用所選算法自動(dòng)執(zhí)行測(cè)試用例。的每個(gè)測(cè)試輸出和每個(gè)預(yù)期輸出得到?;谀P偷臏y(cè)試過(guò)程由幾個(gè)主要步驟組成,即被測(cè)軟件的建模,從模型生成抽象測(cè)試,抽象測(cè)試的具體化以使其可執(zhí)行,針對(duì)待測(cè)軟件(SUT)執(zhí)行測(cè)試以分配判決并分析測(cè)試結(jié)果等,各步驟介紹如下。
1)對(duì)待測(cè)試軟件進(jìn)行建模,根據(jù)圖1中的實(shí)際模型編寫(xiě)待測(cè)試系統(tǒng)的抽象模型。抽象模型必須關(guān)注測(cè)試開(kāi)發(fā)人員想要測(cè)試的功能,并將其他不需要測(cè)試的細(xì)節(jié)抽象出來(lái)。在描述模型之后,可以檢查驗(yàn)證和驗(yàn)證哪種GraphWalker可以用于此效果。
2)通過(guò)模型生成抽象測(cè)試。抽象測(cè)試是自動(dòng)生成的,并且是被測(cè)軟件的簡(jiǎn)單視圖。因此,它們不包含有關(guān)如何直接執(zhí)行測(cè)試用例的詳細(xì)信息,但是它們是在執(zhí)行測(cè)試之前要實(shí)現(xiàn)的方法的接口。然后測(cè)試開(kāi)發(fā)人員必須決定測(cè)試選擇標(biāo)準(zhǔn),測(cè)試選擇標(biāo)準(zhǔn)也決定了測(cè)試覆蓋范圍,以確定從模型中產(chǎn)生哪些測(cè)試,因?yàn)榭梢赃M(jìn)行無(wú)數(shù)次可能的測(cè)試。這一步的輸出是抽象測(cè)試,它是來(lái)自模型的操作序列。
3)將抽象測(cè)試轉(zhuǎn)換為可執(zhí)行的具體測(cè)試??赏ㄟ^(guò)使用將每個(gè)抽象測(cè)試轉(zhuǎn)換為可執(zhí)行測(cè)試腳本的轉(zhuǎn)換工具來(lái)完成。這通過(guò)在抽象模型中未提及的低級(jí)SUT細(xì)節(jié)中添加抽象測(cè)試和具體軟件之間的差距。
4)針對(duì)被測(cè)系統(tǒng)執(zhí)行具體測(cè)試。這可以在線完成,其中基于模型的測(cè)試工具直接連接到SUT,并在基于模型的測(cè)試工具生成測(cè)試用例作為計(jì)算機(jī)可讀資產(chǎn)(以后可以白動(dòng)運(yùn)行)時(shí)動(dòng)態(tài)或脫機(jī)地進(jìn)行測(cè)試。
5)分析測(cè)試執(zhí)行結(jié)果和采取糾正措施。對(duì)于每個(gè)失敗的測(cè)試,必須確定導(dǎo)致失敗的故障。當(dāng)測(cè)試失敗時(shí),可能是由于SUT中的錯(cuò)誤,或者它可能是測(cè)試用例本身的錯(cuò)誤。盡管如此,該測(cè)試模式能夠獲得有關(guān)模型正確性的反饋,因?yàn)楣收峡梢耘c模型或可執(zhí)行測(cè)試相關(guān)聯(lián)。
3CANoe+測(cè)試研究介紹
CANoe+是解決手頭挑戰(zhàn)的解決方案,其集成了GraphWalker和CANoe等工具,通過(guò)接口的實(shí)施構(gòu)建這兩種工具之間的溝通橋梁。但是,除上述工具外,該解決方案還包括模型和測(cè)試模塊,在使用CANoe+編寫(xiě)測(cè)試時(shí)涉及3個(gè)主要步驟,如圖2所示的上下文框圖所示[4-9]。
3.1建模
CANoe+涉及要測(cè)試的功能的建模,使用vEd桌面應(yīng)用程序,將被測(cè)試系統(tǒng)的預(yù)期行為模型繪制為擴(kuò)展的有限狀態(tài)機(jī)。它將待測(cè)系統(tǒng)建模為狀態(tài)和轉(zhuǎn)換,模型以GraphML格式保存,保存的模型作為預(yù)期狀態(tài),轉(zhuǎn)換和需要測(cè)試的值的輸入提供給GraphWalker工具。
3.2GraphWalker
在如圖2所示的上下文中,GraphWalker有3個(gè)主要角色:①檢查模型以確保從起始狀態(tài)到結(jié)束狀態(tài)至少有一條直接路徑;②生成一個(gè)界面,即提供的模型的抽象測(cè)試;③以非確定性順序執(zhí)行測(cè)試。Graph-Walker通過(guò)上面提到的通信橋連接到CANoe,為了進(jìn)行此通信,GraphWalker生成的接口已實(shí)現(xiàn),并使用“gwlnterface.jar”。使用了100%的邊緣覆蓋選擇標(biāo)準(zhǔn)來(lái)覆蓋所有邊緣,從而導(dǎo)致覆蓋狀態(tài),當(dāng)執(zhí)行Graph-Walker時(shí),jar文件只有一個(gè)單獨(dú)的任務(wù),即向服務(wù)器發(fā)送GraphWalker請(qǐng)求,然后執(zhí)行測(cè)試。Graph-Walker請(qǐng)求包含當(dāng)前狀態(tài)/轉(zhuǎn)換及其值的快照,并且快照打包在一個(gè)“JSON”對(duì)象中。
3.3 CANoe
CANoe包括一個(gè)模擬的CAN網(wǎng)絡(luò)和一個(gè)保存網(wǎng)絡(luò)值的數(shù)據(jù)庫(kù)(通過(guò)服務(wù)器實(shí)現(xiàn))。如圖2中的上下文的模擬CAN網(wǎng)絡(luò)就是被測(cè)系統(tǒng),CANoe負(fù)責(zé)測(cè)試框架,它是用來(lái)測(cè)試被測(cè)系統(tǒng)的測(cè)試驅(qū)動(dòng)程序。本文使用了一個(gè).Net測(cè)試模塊,它由CANoe提供的庫(kù)來(lái)實(shí)現(xiàn)測(cè)試模塊,測(cè)試模塊是SUT適配器的實(shí)現(xiàn),它應(yīng)該與前一步中由GraphWalker生成的接口100%對(duì)應(yīng)。測(cè)試模塊使用“MBT.dll”,它是上述橋的另一端,并充當(dāng)服務(wù)器以執(zhí)行從GraphWalker收到的請(qǐng)求。
3.4測(cè)試執(zhí)行
GraphWalker使用隨機(jī)函數(shù)通過(guò)模型生成隨機(jī)測(cè)試序列,以確保邊緣覆蓋,因此當(dāng)它執(zhí)行時(shí),它會(huì)發(fā)送一個(gè)要執(zhí)行的給定函數(shù)的請(qǐng)求。在發(fā)送請(qǐng)求時(shí),它具有附加的期望值。當(dāng)找到測(cè)試模塊中要執(zhí)行的功能時(shí),將比較模型的期望值與CANoe數(shù)據(jù)庫(kù)中的實(shí)際值。向GraphWalker發(fā)回一個(gè)確認(rèn)信息,確認(rèn)該功能已被執(zhí)行,然后CANoe會(huì)生成一份測(cè)試報(bào)告,顯示被稱為測(cè)試用例的功能是否合格。
要使用CANoe+,需要為被測(cè)系統(tǒng)建模,添加gwlnterface,將jar添加到GraphWalker并使用它提供的接口來(lái)實(shí)現(xiàn)可執(zhí)行測(cè)試。在CANoe方面,將MBT.dll庫(kù)添加到測(cè)試模塊中,生成的接口被實(shí)現(xiàn)為.NET測(cè)試模塊。通過(guò)Incase修改或更改需要在被測(cè)系統(tǒng)中進(jìn)行,例如,如果模型中定義了一個(gè)變量,并且需要在測(cè)試中使用它,那么需要完成的所有工作就是在實(shí)現(xiàn)的java類(lèi)中定義它生成的接口以及實(shí)現(xiàn)生成接口的.NET測(cè)試模塊。采用這種方法,回歸測(cè)試變得更容易,因?yàn)樽兏凸δ芤子诓⑷?,并且能夠以低得多的成本輕松編寫(xiě)測(cè)試。
4實(shí)驗(yàn)設(shè)計(jì)
本文選擇進(jìn)行控制實(shí)驗(yàn)來(lái)評(píng)估原型,采用原型評(píng)估方式對(duì)不同模型的控制系統(tǒng)性能進(jìn)行對(duì)比研究,原型評(píng)估是由使用CANoe+和CANoe工具完成的。參與者隨機(jī)抽樣進(jìn)行兩種治療,以防止偏差影響結(jié)果。
覆蓋工具,即將CANoe+的使用與使用CANoe進(jìn)行了比較。覆蓋的依賴或響應(yīng)變量有助于了解給定模型在創(chuàng)建的測(cè)試中覆蓋了多少。覆蓋范圍在3個(gè)不同方面進(jìn)行測(cè)量,即煙霧測(cè)試,功能測(cè)試和穩(wěn)定性測(cè)試。本文主要專(zhuān)注于功能測(cè)試,這些測(cè)試取決于模型中邊緣的100%覆蓋率,以充分鍛煉待測(cè)軟件,從而確定有多少軟件已被執(zhí)行。
定義如下假設(shè):空假設(shè):與使用CANoe相比,使用CANoe+工具生成的基于白動(dòng)化模型的軟件測(cè)試用例的覆蓋率沒(méi)有最大化;實(shí)驗(yàn)(可選)假設(shè):與使用CANoe相比,使用CANoe+工具可以最大化基于自動(dòng)化模型的軟件測(cè)試用例的覆蓋率;使用收集到的數(shù)據(jù),假設(shè)能夠提供一個(gè)是否拒絕還是拒絕零假設(shè)的基礎(chǔ)。
為了分析選擇的分析模型,通過(guò)運(yùn)行如下R函數(shù),采用shapiro.test()來(lái)測(cè)試失敗測(cè)試用例的樣本分布的正態(tài)性,qqnorm()和qqline()從正態(tài)分布中計(jì)算分位數(shù);R函數(shù)wilcoxon.test()在0.05的顯著性水平下運(yùn)行,替代性較小的意思是單側(cè)測(cè)試,從替代假設(shè)使用替代值較少的方法,聲明CANoe的平均覆蓋率小于CANoe+的平均覆蓋率。對(duì)于每種情況,都會(huì)顯示正態(tài)性測(cè)試,Mann-Whitney-Wilcoxon測(cè)試,Q-Q圖和適用的工具的qqline,如下分別介紹了不同模型下的性能指標(biāo)情況。
1)無(wú)故障。CANoe和CANoe+中失敗測(cè)試的所有值都是相同的,因此無(wú)法描述Shapiro wilk正態(tài)性測(cè)試,如下圖所示為CANoe和CANoe中失敗測(cè)試用例的Q-Q曲線圖,沒(méi)有錯(cuò)誤注入,檢驗(yàn)結(jié)果如圖3所示。
2)一個(gè)故障。為Canoe和CANoe+工具運(yùn)行Shap-iro wilk正態(tài)性檢驗(yàn),證實(shí)的數(shù)據(jù)不正常。正是基于此,才根據(jù)Mann-Whitney-Wilcoxon非參數(shù)檢驗(yàn)來(lái)檢查的數(shù)據(jù)是否有統(tǒng)計(jì)學(xué)意義,檢驗(yàn)結(jié)果如圖4所示。
3)兩個(gè)故障。在運(yùn)行shapiro wilk測(cè)試時(shí),CA-Noe+工具提供了非正常數(shù)據(jù),通過(guò)分析了兩組數(shù)據(jù),運(yùn)行Mann-Whitney-Wilcoxon非參數(shù)檢驗(yàn)來(lái)確定是否存在統(tǒng)計(jì)學(xué)意義,如圖5所示為CANoe和CANoe+中帶有兩次故障注入的失敗測(cè)試案例的Q-Q圖。
5結(jié)語(yǔ)
文章主要介紹了基于模型測(cè)試汽車(chē)白動(dòng)控制系統(tǒng)的工具CANoe+的原型,該工具旨在通過(guò)新工具(CA-Noe+)與目前的CANoe工作方式進(jìn)行比較,研究是否存在覆蓋范圍最大化的基于模型的測(cè)試用例。通過(guò)對(duì)每次運(yùn)行、記錄失敗的測(cè)試用例的數(shù)量,并進(jìn)行分析。收集的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析并以對(duì)照實(shí)驗(yàn)的形式報(bào)告。測(cè)試結(jié)果提供了足夠的證據(jù),證明在汽車(chē)系統(tǒng)中使用CANoe+與使用CANoe相比可以增加測(cè)試用例的覆蓋范圍。
參考文獻(xiàn)
[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)軟件測(cè)試自動(dòng)化的研究[D].中國(guó)鐵道科學(xué)研究院,2017.
[5]魯劍俠.自動(dòng)控制在汽車(chē)生產(chǎn)中的地位及展望[J].內(nèi)燃機(jī)與配件,2017(17):116-117.
[6]侯瑞春,丁香乾,陶冶,等.制造物聯(lián)及相關(guān)技術(shù)架構(gòu)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2014, 20(01):11-20.
[7]鄧曉華,余超,徐瑾,等.基于制造物聯(lián)技術(shù)的智能遠(yuǎn)程服務(wù)平臺(tái)的設(shè)計(jì)及實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2015(08):125-128+130.
[8]邱釗鵬,王彰云,李暉,等.一種基于串聯(lián)諧振補(bǔ)償拓?fù)涞碾妱?dòng)汽車(chē)變壓式無(wú)線充電系統(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
作者簡(jiǎn)介:段少勇(1982-),男,河南漯河人,碩士研究生,講師,研究方向:汽車(chē)檢測(cè)與維修、汽車(chē)制造工藝等。