作為美國(guó)MathWorks公司的知名產(chǎn)品,Stateflow具有軟件架構(gòu)清晰、模型復(fù)雜度低、可讀性和可維護(hù)性強(qiáng)等優(yōu)勢(shì),因此被大量應(yīng)用于設(shè)計(jì)有關(guān)監(jiān)控、任務(wù)調(diào)度以及故障管理應(yīng)程序的邏輯,在汽車電控領(lǐng)域也有著非常廣泛的應(yīng)用。
基于支持客戶的Stateflow測(cè)試經(jīng)驗(yàn),北匯信息總結(jié)了一套針對(duì)Stateflow的具有普適性的測(cè)試方法。下面就以Fan Management單元模塊的動(dòng)態(tài)測(cè)試為例,和大家一起分享。
被測(cè)模型
Fan Management單元模塊
Fan Management單元模塊通過(guò)VPM(整車高低壓狀態(tài))、FanErr(風(fēng)扇故障)、FanTemp(風(fēng)扇溫度)信號(hào),對(duì)FanEn(風(fēng)扇使能)、FanErrBack(風(fēng)扇故障反饋)信號(hào)進(jìn)行計(jì)算。
那么,當(dāng)拿到這樣一個(gè)單元模型和功能需求描述,應(yīng)該如何去開展我們的動(dòng)態(tài)測(cè)試工作呢?首先,為了防止在測(cè)試過(guò)程中深陷到Stateflow錯(cuò)綜復(fù)雜的跳轉(zhuǎn)邏輯中無(wú)法自拔,應(yīng)該明確我們的測(cè)試思路。
圍點(diǎn)打援 中心開花
其實(shí)無(wú)論多復(fù)雜的Stateflow模型,其基本組成都可拆分為初始狀態(tài)、跳轉(zhuǎn)條件和目標(biāo)狀態(tài)三個(gè)部分。正是基于這樣的基本結(jié)構(gòu),我們建立了“圍點(diǎn)打援”的測(cè)試思路。
- 圍點(diǎn):控制Stateflow跳入初始狀態(tài)
- 打援:針對(duì)跳出初始狀態(tài)的跳轉(zhuǎn)路徑進(jìn)行用例編寫
- 中心開花:最終實(shí)現(xiàn)以初始狀態(tài)為中心,向四周輻射的MCDC覆蓋
- 假設(shè)以Normal狀態(tài)最為初始狀態(tài):
- 圍點(diǎn):以Normal為初始狀態(tài)
- 打援:① Normal跳轉(zhuǎn)至Off_Err
② Normal跳轉(zhuǎn)至 On_OverTemp
圍點(diǎn)與打援
測(cè)試用例編寫方法
當(dāng)確定好測(cè)試思路之后,下面就正式的搭建測(cè)試工程。這里,我們搭建測(cè)試工程用的是一款自動(dòng)化的軟件動(dòng)態(tài)測(cè)試工具——TPT。
圍點(diǎn):控制Stateflow跳轉(zhuǎn)至初始狀態(tài)
在進(jìn)入初始狀態(tài)的過(guò)程中,并不需要考慮MCDC覆蓋度的要求。因此,只需要控制信號(hào)按照最短的路徑進(jìn)入到初始狀態(tài)即可。
以Normal作為初始狀態(tài)為例,直接使VPM = 8,跳入Normal狀態(tài)。由于每次狀態(tài)跳轉(zhuǎn)會(huì)占用一個(gè)步長(zhǎng),我們給入足夠的等待時(shí)間保證狀態(tài)跳轉(zhuǎn)至初始狀態(tài)。
進(jìn)入Normal狀態(tài)
按照以上的搭建方法,分別對(duì)模型中的5個(gè)功能狀態(tài)搭建了測(cè)試用例,并按照模型中的狀態(tài)塊名稱對(duì)用例進(jìn)行了命名。
初始狀態(tài)
由于這5個(gè)初始狀態(tài)在后面測(cè)試用例搭建的過(guò)程中需要多次調(diào)用,TPT可以將編寫好的測(cè)試用例進(jìn)行封裝,生成Variants,在搭建測(cè)試用例的過(guò)程中直接選擇想要的狀態(tài)即可。這會(huì)大大提升測(cè)試用例的搭建效率。
以Variants形式存在的初始狀態(tài)
打援:給入狀態(tài)跳轉(zhuǎn)條件信號(hào)
按照OriginalState分組封裝的思路,將模型中的跳轉(zhuǎn)條件也進(jìn)行了Variants的搭建。這里針對(duì)信號(hào)Variants的劃分會(huì)用到在測(cè)試過(guò)程中常用到的一種方法:等價(jià)類劃分。
按照測(cè)試中常用的等價(jià)類劃分方法,對(duì)Fan Management單元模型中的輸入信號(hào)進(jìn)行了等價(jià)類的劃分:
▲Bool類型:true、false
▲有明確功能對(duì)應(yīng)關(guān)系的信號(hào):
高低壓狀態(tài)(VPM_st):8、9、(!(8 or 9))取等價(jià)類3
風(fēng)扇故障(FanErr)信號(hào):0(無(wú)故障)、1(有故障)
▲有明確功能閾值的信號(hào):
風(fēng)扇工作溫度(FanTemp):≥90(取等價(jià)類100)、≤85(取等價(jià)類50)
劃分好跳轉(zhuǎn)條件上信號(hào)的等價(jià)類之后,為了方便復(fù)用,同樣在TPT中搭建了相應(yīng)的Variants。
以Variants形式存在的跳轉(zhuǎn)條件
當(dāng)OrigianlState和ObjState上的Variants都搭建好之后,接下來(lái)就是選擇需要的Variants,讓他們組合成我們想要的測(cè)試用例。為了減少用例運(yùn)行過(guò)程中的資源占用情況,在用例的末尾加了一個(gè)300ms的最大跳出時(shí)間限制。
測(cè)試用例
當(dāng)然,TPT本著“萬(wàn)物皆Variants”的原則,測(cè)試用例中States的跳轉(zhuǎn)條件也可以封裝成Variants,便于我們的復(fù)用。
跳轉(zhuǎn)條件的Variants
在運(yùn)行用例的時(shí)候,TPT可以調(diào)用Simulink的V&V工具箱對(duì)模型的覆蓋度進(jìn)行統(tǒng)計(jì)分析。我們可以方便的查看MCDC覆蓋度是否實(shí)現(xiàn)了“中心開花”的效果:以初始狀態(tài)為中心,跳出初始狀態(tài)的條件實(shí)現(xiàn)MCDC全覆蓋。這樣可以大大減少我們?cè)跒榱藵M足MCDC覆蓋度去補(bǔ)充測(cè)試用例的工作量。
結(jié)構(gòu)覆蓋度統(tǒng)計(jì)結(jié)果
在這個(gè)過(guò)程中,TPT還可以進(jìn)行一些測(cè)試用例分組管理、測(cè)試需求管理、設(shè)置測(cè)試用例屬性信息的工作,篇幅所限,這里就不給大家詳述了。
一招從天而降的掌法--測(cè)試用例自動(dòng)生成
在搭建測(cè)試工程的過(guò)程中,有沒(méi)有一種能減輕測(cè)試工程師的工作量,自動(dòng)生成測(cè)試用例的方案呢?
為了提升大家的測(cè)試效率,TPT也提供了多種自動(dòng)生成測(cè)試用例的方法。當(dāng)我們搭建出OriginalState和ObjState的Variants之后,只需要?jiǎng)觿?dòng)手指,TPT就能自動(dòng)生成我們想要的測(cè)試用例。
并且,在保證測(cè)試用例數(shù)量可控的前提下,自動(dòng)生成的用例MCDC覆蓋度達(dá)到了100%!
在我們的測(cè)試過(guò)程中,巧妙的利用TPT提供的自動(dòng)生成測(cè)試用例的方法,能夠大大較少測(cè)試工程師的重復(fù)性勞動(dòng),實(shí)現(xiàn)真正意義的自動(dòng)化測(cè)試。
關(guān)于評(píng)估
用例搭建完成之后,我們還需要搭建測(cè)試評(píng)估,這里就可以利用TPT強(qiáng)大的腳本評(píng)估去實(shí)現(xiàn)。TPT的腳本評(píng)估使我們徹底擺脫了傳統(tǒng)時(shí)間域上的評(píng)估,轉(zhuǎn)向了復(fù)用性、自適應(yīng)性更強(qiáng)的邏輯評(píng)估方式,同時(shí)也便于我們對(duì)模型和測(cè)試工程的debug。
對(duì)于Stateflow的評(píng)估,我們同樣采用了“圍點(diǎn)打援”的思路,先用正則表達(dá)式regexp定位至Normal狀態(tài),然后篩選出高壓故障區(qū)間進(jìn)行評(píng)估。
Normal跳轉(zhuǎn)至Off_Err評(píng)估腳本
篇幅所限,這里只給大家介紹了一個(gè)簡(jiǎn)單Stateflow模型的測(cè)試方法,對(duì)于多層嵌套、含調(diào)度模塊、復(fù)雜跳轉(zhuǎn)條件、延遲邏輯等復(fù)雜模型,都可以在此基礎(chǔ)上進(jìn)行擴(kuò)展。如果大家測(cè)試過(guò)程中存在疑問(wèn),歡迎留言評(píng)論哦。
PikeTec公司是全球知名的基于模型的嵌入式系統(tǒng)測(cè)試工具TPT的軟件供應(yīng)商,總部位于德國(guó)柏林,其創(chuàng)始人均在戴姆勒公司擁有十多年的軟件測(cè)試經(jīng)驗(yàn)。TPT產(chǎn)品曾被評(píng)為2005年戴姆勒最佳創(chuàng)新軟件,并在戴姆勒、大眾、奧迪、保時(shí)捷、通用等汽車整車廠及多家零部件企業(yè)(博世、大陸、海拉等)中得到廣泛應(yīng)用,如戴姆勒的多個(gè)車型的混合動(dòng)力汽車的動(dòng)力總成、電池管理控制器的測(cè)試,博世的汽油機(jī)和柴油機(jī)控制系統(tǒng)測(cè)試等。
北匯信息作為PikeTec在中國(guó)的獨(dú)家合作伙伴,致力于幫助中國(guó)客戶提升嵌入式控制系統(tǒng)的開發(fā)效率。目前,TPT已被眾多國(guó)內(nèi)知名主機(jī)廠和零部件企業(yè)認(rèn)可,在新能源(VCU/BMS/MCU)以及ADAS等領(lǐng)域中被廣泛應(yīng)用。
-
TPT
+關(guān)注
關(guān)注
0文章
23瀏覽量
6991
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論