国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VS的智能駕駛軟件測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2021-09-24 08:32:19曲延羽鄧琬云熊鐸程林智桂冉毅德
汽車與駕駛維修(維修版) 2021年9期
關(guān)鍵詞:軟件開發(fā)軟件測試

曲延羽 鄧琬云 熊鐸程 林智桂 冉毅德

關(guān)鍵詞:軟件測試;軟件開發(fā);邏輯驗(yàn)證

0 引言

隨著智能駕駛技術(shù)的快速發(fā)展,目前智能駕駛輔助系統(tǒng)產(chǎn)品已占了汽車市場的一席之地并快速迭代[1]。為了保證智能駕駛輔助系統(tǒng)軟件的質(zhì)量及安全性能,相應(yīng)需求的軟件測試成為軟件開發(fā)過程中必不可少的一部分[2]。

不同平臺開發(fā)的軟件代碼,測試模式也不盡相同。目前,常見的開發(fā)模式是基于Matlab 數(shù)字軟件平臺搭建Simulink模型開發(fā),或基于Microsoft Visual Studio(VS)編譯環(huán)境使用C++ 語言進(jìn)行編程開發(fā)。對于Simulink 開發(fā)的模型,可以在Matlab 平臺上完成單元模塊的部分測試和仿真驗(yàn)證[3] ;但對于C++ 語言編程開發(fā)的軟件,需要通過借助不同工具進(jìn)行測試和仿真驗(yàn)證。

智能駕駛輔助系統(tǒng)軟件代碼具有嚴(yán)密的邏輯性,需要完善的測試手段對各源代碼模塊進(jìn)行充分驗(yàn)證,最大限度地提高軟件性能。單一的單元測試不能滿足對控制模塊內(nèi)部邏輯結(jié)構(gòu)的完整測試。而集成測試需采用黑盒模型且過程較長,這種驗(yàn)證過程耗費(fèi)大量的時間,會降低開發(fā)與測試效率。

因此,針對C++ 語言編程的智能駕駛輔助系統(tǒng)軟件,本文提出了一種基于VS 編譯環(huán)境,以模塊作為測試單元,對模塊邏輯功能進(jìn)行測試的方法。本方法結(jié)合白盒測試與黑盒測試的方式對模塊的算法進(jìn)行測試與驗(yàn)證,快速精準(zhǔn)定位到源代碼中的問題代碼和邏輯漏洞,提高了代碼開發(fā)與測試效率。

1 智能駕駛軟件測試系統(tǒng)設(shè)計(jì)原理及架構(gòu)

1.1 智能駕駛軟件測試系統(tǒng)設(shè)計(jì)原理

智能駕駛軟件測試系統(tǒng)的設(shè)計(jì)原理,是使用數(shù)據(jù)文件或?qū)嵻嚁?shù)據(jù)的輸入信號,形成輸入?yún)?shù),在測試驅(qū)動程序中建立讀取測試數(shù)據(jù)與選取測試模塊的接口。再通過確定讀取的測試數(shù)據(jù)及選取的測試模塊,將相應(yīng)的輸入?yún)?shù)傳入測試驅(qū)動程序,測試驅(qū)動程序調(diào)用相應(yīng)的待測模塊工作函數(shù)執(zhí)行測試程序。待執(zhí)行測試程序結(jié)束后,將測試結(jié)果輸出,并在測試結(jié)果模塊中,將預(yù)期輸出結(jié)果與實(shí)際輸出結(jié)果進(jìn)行比較。之后,系統(tǒng)對不符合預(yù)期結(jié)果的部分進(jìn)行標(biāo)記,提示開發(fā)人員對不符合預(yù)期結(jié)果的部分進(jìn)行檢查或修正(圖1)。

1.2 智能駕駛軟件測試系統(tǒng)設(shè)計(jì)架構(gòu)

智能駕駛軟件測試系統(tǒng)架構(gòu)主要由測試數(shù)據(jù)存儲、測試執(zhí)行程序和輸出結(jié)果處理三大功能模塊組成(圖2)。待測模塊代表具有相對獨(dú)立且邏輯結(jié)構(gòu)完整的源代碼模塊,其中小模塊1、小模塊2 等代表具有不同邏輯判斷的模塊。整個測試執(zhí)行過程維持待測模塊源代碼“黑盒”狀態(tài),確保待測模塊與測試執(zhí)行程序模塊間的相對獨(dú)立性。這樣既保證了測試的可執(zhí)行性,又保證源代碼的安全性。智能駕駛軟件測試系統(tǒng)的主要功能模塊如下。

1.2.1 測試數(shù)據(jù)存儲模塊

測試數(shù)據(jù)存儲模塊存儲讀取的輸入?yún)?shù)與預(yù)期結(jié)果變量數(shù)據(jù)信息,可接收實(shí)車采集數(shù)據(jù)與模擬數(shù)據(jù)兩種數(shù)據(jù)模式。這些數(shù)據(jù)傳輸?shù)綔y試執(zhí)行程序模塊,作為模擬運(yùn)行的輸入?yún)?shù)。

1.2.2 測試執(zhí)行程序模塊

測試執(zhí)行程序調(diào)用待測模塊工作函數(shù),對輸入信號進(jìn)行循環(huán)讀取執(zhí)行,模擬多幀連續(xù)運(yùn)行模式,再將每次讀取運(yùn)行后的輸出結(jié)果變量傳輸給結(jié)果處理模塊。除了待測模塊固定的測試值外,可以依據(jù)功能需求將模塊類成員變量的測試值同時輸出。整個測試執(zhí)行過程不涉及開發(fā)模塊內(nèi)部源代碼的改動,既保證測試的可執(zhí)行性,又保證源代碼的安全性。

1.2.3 數(shù)據(jù)結(jié)果處理模塊

測試得到的運(yùn)算輸出變量(測試值)逐幀存儲到結(jié)果處理模塊,并與測試數(shù)據(jù)存儲模塊的預(yù)期輸出變量(期望值)進(jìn)行逐一比對,將測試值與期望值的比對結(jié)果作為源代碼測試驗(yàn)證的最終結(jié)果。

2 智能駕駛軟件測試系統(tǒng)策略

智能駕駛軟件測試系統(tǒng)策略如下:編寫測試用例數(shù)據(jù)文件,讀取測試用例數(shù)據(jù)文件的輸入信號,對待測試模塊進(jìn)行測試。測試系統(tǒng)根據(jù)每幀的模塊輸出信號、中間值信號與數(shù)據(jù)文件的期望值之間產(chǎn)生的差異,對當(dāng)前幀的計(jì)時器信號進(jìn)行標(biāo)記。

測試人員通過計(jì)時器信號的標(biāo)記進(jìn)行定位查找,找出導(dǎo)致測試失敗的輸出信號與中間值信號。然后通過觀察測試值與期望值之間的差異,再梳理待測模塊中包含導(dǎo)致測試時報(bào)的輸出信號與中間值信號的部分代碼邏輯,縮小搜索代碼邏輯漏洞的范圍,快速定位待測試模塊問題,提高更正代碼的效率(圖3)。

3 智能駕駛軟件測試系統(tǒng)的應(yīng)用

本次測試采用符合LKA 按鍵邏輯功能規(guī)范的實(shí)車測試數(shù)據(jù)真實(shí)信號,作為測試數(shù)據(jù)文件的輸入信號與期望值信號。LKA按鍵是是車道保持功能的物理開關(guān)被按下時,從CAN 總線傳過來的信號。通過選擇測試用例,將實(shí)車測試數(shù)據(jù)文件導(dǎo)入測試系統(tǒng)中,點(diǎn)擊開始測試,則對LKA 按鍵邏輯模塊進(jìn)行邏輯測試。

整個測試結(jié)果如圖4 所示,其中,紅色點(diǎn)線為輸入數(shù)據(jù)(LKA按鍵狀態(tài)),藍(lán)色點(diǎn)線與黑色點(diǎn)線,分別表示LKA 功能狀態(tài)是否激活的預(yù)期輸出變量信號和測試輸出變量信號。除此之外,在測試結(jié)束后,可輸出數(shù)據(jù)測試報(bào)告(圖5)。

圖5 中標(biāo)出了LKA 按鍵幀數(shù)及功能狀態(tài)在2.00 ~ 2.26 s 的相關(guān)數(shù)據(jù)??梢钥闯?,在2.00 s 時,LKA 開關(guān)按鍵被按下,持續(xù)時間為0.14 s,大于0.10 s(0.10 s 為功能開啟的時間范圍最小值),LKA 功能狀態(tài)信號從0 跳變至1,LKA 功能狀態(tài)激活;3.52 s 時,LKA 開關(guān)按鍵被按下的持續(xù)時間為2.14 s,小于3.00 s(3.00 s 為功能開啟的時間范圍最大值),LKA 功能狀態(tài)信號從1 跳變至0,LKA 功能狀態(tài)關(guān)閉;7.62 ~ 8.04 s 時,LKA 開關(guān)按鍵按下,持續(xù)時間為0.42 s,因此,隨著按鍵抬起,LKA 功能狀態(tài)激活;9.44 s 時,LKA 開關(guān)按鍵被按下,12.94 s 時LKA 開關(guān)按鍵抬起,持續(xù)時間為3.50 s(大于3.00 s),LKA 功能不會被關(guān)閉,仍保持激活狀態(tài)。

從圖4 可以看出,在2.14 s、5.68 s 和8.04 s,LKA 功能狀態(tài)信號期望值與測試值的信號跳變狀態(tài)完全一致,表明此測試系統(tǒng)對LKA 按鍵模塊邏輯條件的測試結(jié)果符合測試用例中提出的預(yù)期結(jié)果,模塊代碼邏輯符合預(yù)期設(shè)計(jì),測試成功。另外,通過利用實(shí)車采集信號作為輸入信號進(jìn)行模塊邏輯測試,還可應(yīng)用于測試用例外其他多種真實(shí)輸入場景模塊代碼的測試驗(yàn)證手段。

本測試系統(tǒng)應(yīng)用場景不僅應(yīng)用于實(shí)車信號,通過智能駕駛軟件測試系統(tǒng)驗(yàn)證修改軟件算法,縮減集成及上車驗(yàn)證時間;還可以更多應(yīng)用于符合功能規(guī)范設(shè)計(jì)的測試用例信號,在軟件集成前期使用此方法來驗(yàn)證軟件算法的邏輯性是否符合功能規(guī)范。

4 結(jié)束語

綜上所述,對于C++ 語言編程開發(fā)的智能駕駛系統(tǒng)軟件測試方法,具有同一編譯環(huán)境不需要移植源代碼的優(yōu)勢,可使部分模塊測試參與到代碼開發(fā)過程中,實(shí)現(xiàn)源代碼的部分自測自驗(yàn),提高開發(fā)效率。通過與智能駕駛軟件測試系統(tǒng)的設(shè)計(jì)用例與實(shí)車測試數(shù)據(jù)對比說明,此測試系統(tǒng)能夠有效自檢模塊源代碼的邏輯結(jié)構(gòu),可以作為輔助開發(fā)人員更高效開發(fā)源代碼的手段。通過每幀預(yù)期結(jié)果與運(yùn)算結(jié)果對應(yīng)比較,可以實(shí)現(xiàn)智能駕駛軟件算法的驗(yàn)證,解決查找源代碼問題時效慢的問題。

猜你喜歡
軟件開發(fā)軟件測試
基于OBE的軟件測試課程教學(xué)改革探索
航天軟件測試模型構(gòu)建與應(yīng)用
軟件(2020年3期)2020-04-20 01:45:34
EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
電子制作(2018年16期)2018-09-26 03:27:18
關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
電子測試(2017年15期)2017-12-18 07:19:20
信息安全環(huán)境下的計(jì)算機(jī)軟件開發(fā)研究
計(jì)算機(jī)軟件開發(fā)中的分層技術(shù)運(yùn)用
建模技術(shù)在軟件開發(fā)中的應(yīng)用
軟件開發(fā)中數(shù)據(jù)庫設(shè)計(jì)理論的實(shí)踐
核電廠定期試驗(yàn)管理軟件開發(fā)
科技視界(2016年21期)2016-10-17 20:50:03
FPGA軟件開發(fā)過程中編碼規(guī)范的作用
科技視界(2016年20期)2016-09-29 13:35:10
金川县| 明星| 辽中县| 浦城县| 包头市| 望都县| 南和县| 西吉县| 林口县| 岑溪市| 朝阳区| 岳阳市| 库尔勒市| 镇雄县| 永城市| 息烽县| 临汾市| 吴江市| 太仓市| 松江区| 苏尼特左旗| 镇安县| 西林县| 广丰县| 马山县| 辽阳县| 峨边| 阳朔县| 丽水市| 广灵县| 鲁山县| 尖扎县| 宁南县| 逊克县| 资阳市| 塘沽区| 揭西县| 玉树县| 高州市| 崇阳县| 枣庄市|