亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于功能安全的汽車嵌入式軟件單元驗證技術(shù)研究

        2023-10-25 02:49:18冉毅德覃高峰
        汽車電器 2023年10期
        關(guān)鍵詞:功能

        肖 蕾, 盧 倩, 冉毅德, 覃高峰

        (上汽通用五菱汽車股份有限公司, 廣西 柳州 545007)

        1 研究背景

        隨著汽車使用場景的增加和輔助駕駛功能的擴展,汽車嵌入式軟件的集成度和復(fù)雜性也隨之增加,愈加龐大的軟件系統(tǒng)意味著存在更多難以發(fā)現(xiàn)的安全風(fēng)險。傳統(tǒng)的軟件開發(fā)和測試流程難以滿足現(xiàn)階段對汽車軟件安全性的要求[1-3]。ISO 26262《道路車輛功能安全》國際標(biāo)準(zhǔn)是為滿足道路車輛上特定電子電器系統(tǒng)的需求而編寫,適用于道路車輛上特定的由電子、電氣和軟件組件組成的安全相關(guān)系統(tǒng)在安全生命周期內(nèi)的所有活動,目前已成為非常前沿的汽車安全相關(guān)標(biāo)準(zhǔn)。其主要基于汽車電子行業(yè)公認(rèn)的“V模型”,強調(diào)通過各開發(fā)階段的測試和驗證來降低風(fēng)險[4-5]。

        軟件單元驗證作為軟件測試的第一道關(guān)卡,能夠盡早發(fā)現(xiàn)代碼漏洞、降低開發(fā)成本、縮短開發(fā)周期,能有效提高軟件質(zhì)量,是軟件測試中最重要的部分?;诠δ馨踩能浖卧炞C是為了證明軟件最小單元滿足軟件設(shè)計,以及安全措施得到實施,并滿足根據(jù)所需ASIL等級分配的軟件要求而開展的活動,兼顧軟件安全要求和非安全要求。為了保證驗證的充分性和完整性,功能安全要求通過評審、分析和測試等組合方法對軟件進行單元驗證。

        本文基于ISO 26262《道路車輛功能安全》國際標(biāo)準(zhǔn)第6部分第9章節(jié)“Software unit verification”中的要求,對符合功能安全的軟件單元驗證技術(shù)進行詳細(xì)研究,對汽車軟件開發(fā)和測試從業(yè)人員具有一定的參考意義。

        2 軟件單元驗證流程

        軟件單元驗證流程如圖1所示。按照靜態(tài)測試在先、動態(tài)測試在后的準(zhǔn)則進行,每一步都需要有上一步的輸出資料作為輸入,且上一步未評審?fù)ㄟ^不可進入下一步,保證驗證過程可靠且閉環(huán)。開始前,需要有《軟件單元設(shè)計規(guī)范》 《軟件接口規(guī)范》 《軟件開發(fā)環(huán)境文檔》等文檔作為驗證過程的需求輸入。需要注意的是,功能安全側(cè)重于對活動過程的檢查和確認(rèn),因此對重要步驟的審查是非常有必要的。

        圖1 軟件單元驗證流程圖

        2.1 編制和評審軟件單元測試計劃

        測試負(fù)責(zé)人根據(jù)各模塊ASIL等級要求對單元測試的各項工作內(nèi)容編制單元測試計劃,規(guī)定時間進度要求,確認(rèn)測試的范圍、方法、測試用例設(shè)計方法、覆蓋率要求等,輸出《軟件單元測試計劃》。測試小組內(nèi)部對《軟件單元測試計劃》內(nèi)的各項工作安排進行評審,評審?fù)ㄟ^則開始靜態(tài)測試,若評審不通過,則修改計劃再次評審直到通過。

        2.2 執(zhí)行和評審靜態(tài)測試

        根據(jù)要求對模型或代碼執(zhí)行靜態(tài)測試,確認(rèn)對建模規(guī)范、編碼規(guī)范、軟件質(zhì)量度量以及相關(guān)文檔的符合性,記錄測試執(zhí)行結(jié)果并輸出《軟件單元驗證靜態(tài)代碼分析報告》。對于需要修改的缺陷執(zhí)行缺陷修正,對于不需要修改的缺陷進行分析說明。根據(jù)測試結(jié)果評審靜態(tài)測試是否通過,評審?fù)ㄟ^則進行動態(tài)測試,若評審不通過,通知開發(fā)組修改代碼直到再次評審?fù)ㄟ^。

        2.3 編制和評審軟件單元測試說明

        測試工程師依據(jù)《軟件詳細(xì)設(shè)計說明》 《軟件單元驗證測試策略》和ASIL等級要求編寫用例的ID、名稱、設(shè)計方法、預(yù)置條件、執(zhí)行步驟、預(yù)期結(jié)果、判斷準(zhǔn)則,輸出《軟件單元測試說明》,根據(jù)追溯一致性要求需要建立軟件詳細(xì)設(shè)計與軟件單元測試用例的追溯關(guān)系。評審小組評審?fù)ㄟ^,則開始執(zhí)行單元測試,若評審不通過,測試組修改測試用例直至再次評審?fù)ㄟ^。

        2.4 執(zhí)行單元測試

        測試工程師搭建測試環(huán)境并執(zhí)行軟件單元測試,測試覆蓋率需達(dá)到要求。若覆蓋率未達(dá)標(biāo),測試發(fā)現(xiàn)缺陷,需按照《問題解決管理過程規(guī)范》流程執(zhí)行分析、處理。對測試用例未通過的情形,測試工程師根據(jù)策略執(zhí)行回歸測試并記錄結(jié)果。對不能通過測試驗證的非功能需求,進行評審或采用其他方法驗證。依據(jù)測試記錄和結(jié)果輸出《軟件單元測試記錄》。

        2.5 編制和評審軟件單元測試報告

        測試工程師依據(jù)軟件單元測試記錄和結(jié)果,編制《軟件單元測試報告》。報告內(nèi)容主要包括:測試目標(biāo)、測試結(jié)果、結(jié)果分析、測試結(jié)論和意見。評審小組評審《軟件單元測試報告》,評審內(nèi)容主要包括:從技術(shù)角度檢查靜態(tài)驗證、測試用例的執(zhí)行情況;確認(rèn)測試執(zhí)行符合策略要求;確保建立追溯關(guān)系的一致性。評審?fù)ㄟ^則結(jié)束軟件單元驗證活動。

        3 軟件單元驗證方法

        表1列出了目前常用的軟件單元驗證方法,大致可分為評審、分析、測試3大類,分別對應(yīng)1a-1c、1d-1i和1j-1n。標(biāo)準(zhǔn)要求通過這些方法的適當(dāng)組合,對軟件單元設(shè)計和已實現(xiàn)的軟件單元進行驗證,來證明軟件的功能和特性滿足軟件安全要求。不同ASIL等級對不同方法的推薦度不一樣,其中“++”為特別推薦,“+”為推薦,“o”為不推薦。為滿足單元驗證的完整性和充分性,通常會在不同大類中選擇所有無重復(fù)項目的“++”項進行組合測試。注意,如果代碼保留了模型特性,可以通過在模型層面執(zhí)行驗證來替代在源碼層面執(zhí)行驗證,但需要證明該模型具有足夠的置信度。

        熒光淬滅常數(shù)可以通過Stern-Volner(SV)方程:I0/I =1 +KSV[Q],其中KSV是熒光淬滅常數(shù),[Q]是被檢測物的濃度,I0和I分別是起始和加入懸浮物后懸浮液的熒光強度.對于2,4,6-三硝基苯酚,在低濃度范圍內(nèi)配合物的SV曲線是線性的(R=0.991),且KSV為1.56×104(圖7),數(shù)值已與文獻(xiàn)報道的有機聚合物相當(dāng),鄭和根課題組鋅配合物的KSV為2.4×104[8],鎘配合物的KSV為6.4×103[9].高淬滅常數(shù)以及低檢測線可以很容易的檢測痕量的2,4,6-三硝基苯酚.

        表1 軟件單元驗證方法

        以ASIL B等級為例,可選擇檢查+靜態(tài)代碼分析+基于需求的測試+接口測試方法進行組合驗證。

        3.1 檢查

        對開發(fā)文檔、代碼和設(shè)計的一致性、代碼執(zhí)行標(biāo)準(zhǔn)的情況、代碼邏輯表達(dá)的正確性、代碼結(jié)構(gòu)的合理性以及代碼的可讀性等進行檢查。將所有與文檔和代碼相關(guān)的檢查項列舉在《軟件單元驗證檢查審查單》中,根據(jù)檢查結(jié)果給予“通過”“建議”和“不通過”,審查通過率高于90%判定為通過。

        3.2 靜態(tài)代碼分析

        在不運行應(yīng)用程序的情況下,對軟件的源代碼的語義、結(jié)構(gòu)和行為進行分析,由此找出程序中的不規(guī)范、不合理或者可能造成程序運行異常的代碼。靜態(tài)代碼分析可借助軟件對源代碼進行靜態(tài)分析。圖2為HelixQAC軟件對某代碼進行靜態(tài)分析的結(jié)果示意圖,編碼規(guī)范遵守MISRA C++。

        圖2 HelixQAC靜態(tài)分析結(jié)果

        3.3 基于需求的測試

        基于需求的測試是根據(jù)單元設(shè)計文檔提取明確要求進行的測試活動。通過分析各接口具有的意義、值的范圍及算法,確認(rèn)需求的輸入值和預(yù)期值,對單元代碼進行測試,從而實現(xiàn)基于設(shè)計需求的單元測試。

        3.4 接口測試

        根據(jù)所測單元代碼被調(diào)用的輸入?yún)?shù)與該單元的形式參數(shù)在個數(shù)、屬性、量綱、順序上是否一致等方面設(shè)計測試用例進行測試。

        基于需求的測試和接口測試范圍存在重疊,通常以基于需求的測試為主,接口測試進行查缺補漏。此過程需要根據(jù)軟件詳細(xì)設(shè)計文檔、安全需求文檔和接口文檔進行測試用例設(shè)計,保證測試用例對功能、安全需求和接口的100%覆蓋。圖3為VectorCAST軟件對某源代碼進行單元測試的結(jié)果示意圖,測試結(jié)果和預(yù)期結(jié)果一致,測試通過。

        圖3 VectorCAST單元測試結(jié)果

        4 軟件單元測試用例得出方法

        標(biāo)準(zhǔn)要求使用表2列出的軟件單元測試用例得出方法。

        表2 軟件單元測試用例得出方法

        1) 需求分析法。根據(jù)《軟件詳細(xì)設(shè)計文檔》中的功能描述來設(shè)計測試用例,每一個測試用例用來檢驗一個或者多個測試需求。每個測試用例需要與測試需求編號一一對應(yīng)形成追溯關(guān)系,需求覆蓋率需要達(dá)到100%。所有功能安全等級均要求使用此方法。

        2) 等價類劃分法。根據(jù)被測函數(shù)的輸入、輸出范圍劃分有效等價類和無效等價類。針對每一個等價類設(shè)計至少一個有效等價類和一個無效等價類測試用例來確保被測程序單元的處理是完整的。此方法適用于具有取值范圍或值為個數(shù)的函數(shù)輸入單元。

        3) 邊界值分析法。邊界值分析法使用與等價類劃分法相同的劃分,但是邊界值分析假定錯誤更多地存在于兩個劃分的邊界上,需相應(yīng)地為邊界上及兩側(cè)的情況設(shè)計測試用例。此方法適用于對接口、接近邊界的值與邊界交叉的值較為敏感的函數(shù)單元。

        4) 錯誤推測法。根據(jù)以往測試經(jīng)驗和其他一些測試技術(shù),猜測錯誤的類型及在特定的軟件中錯誤發(fā)生的位置,并設(shè)計測試用例去發(fā)現(xiàn)它們。此方法適用于存在易錯代碼的函數(shù)單元,通?;诮?jīng)驗學(xué)習(xí)和專家判斷中收集的數(shù)據(jù)。

        5 軟件單元層面結(jié)構(gòu)覆蓋率度量

        對單元測試完整性的另一個重要評估標(biāo)準(zhǔn)是軟件單元層面的結(jié)構(gòu)覆蓋率要求,結(jié)構(gòu)覆蓋率分析可以發(fā)現(xiàn)測試用例的不足、需求的缺陷、無效代碼或非預(yù)期功能,因此標(biāo)準(zhǔn)要求按照表3列出的度量對結(jié)構(gòu)覆蓋率進行測試。

        表3 軟件單元層面結(jié)構(gòu)覆蓋率度量

        1) 語句覆蓋率是指被測試到的語句數(shù)量/可執(zhí)行的語句總數(shù)×100%。

        2) 分支覆蓋率是指被測試到的分支數(shù)量/總分支總數(shù)×100%。

        3) MC/DC(修改條件/決策覆蓋率) 要求在一個程序中每一種輸入輸出至少出現(xiàn)一次,每一個判定中的每一個條件必須產(chǎn)生所有輸出結(jié)果至少一次,每一個判定必須產(chǎn)生所有可能的輸出結(jié)果至少一次,并且每一個判定中的每一個條件都能獨立影響一個判定結(jié)果,因此MC/DC是最可靠的覆蓋率。但由于其時間成本過高,目前只在功能安全要求最高的ASIL D中實施。實際進行軟件單元測試用例設(shè)計時,可以將測試用例導(dǎo)出方法與MC/DC標(biāo)準(zhǔn)相結(jié)合,提高測試效率、測試力度和測試充分性。

        當(dāng)軟件只需要滿足ASIL B等級時,選擇語句覆蓋和分支覆蓋并滿足覆蓋率要求即可。圖4為VectorCAST軟件對某源代碼進行單元測試的覆蓋率統(tǒng)計結(jié)果。需要注意的是,無理由的覆蓋率無目標(biāo)值或低目標(biāo)值會被認(rèn)為不滿足功能安全要求。

        圖4 VectorCAST單元測試覆蓋率統(tǒng)計結(jié)果

        對于可接受的死代碼(用于調(diào)試的代碼) 或不同軟件配置的代碼區(qū)段,可以給出接受所達(dá)到的覆蓋率水平的理由,或使用補充方法(代碼走審查) 驗證未被覆蓋的代碼。如果認(rèn)為已實現(xiàn)的結(jié)構(gòu)覆蓋率不充分,需要定義額外的測試用例或提供基于其他方法可補充覆蓋率以達(dá)到要求的理由,此部分證據(jù)可在《軟件單元驗證測試報告》中提供。

        6 結(jié)論

        功能安全是當(dāng)下汽車軟件行業(yè)的主流趨勢,根據(jù)功能安全開發(fā)流程對汽車軟件進行開發(fā)和測試可以大大提高軟件的質(zhì)量,減少軟件安全隱患,提升汽車核心競爭力。本文基于ISO 26262標(biāo)準(zhǔn)結(jié)合不同功能安全等級從軟件單元驗證流程、軟件單元驗證方法的選擇、軟件單元測試用例得出方法的選擇和使用以及軟件單元測試結(jié)構(gòu)覆蓋率度量4方面對滿足功能安全的汽車嵌入式軟件單元驗證技術(shù)進行了詳細(xì)闡述,對汽車嵌入式軟件開發(fā)和測試行業(yè)具有一定的指導(dǎo)意義。

        猜你喜歡
        功能
        拆解復(fù)雜功能
        鐘表(2023年5期)2023-10-27 04:20:44
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        基層弄虛作假的“新功能取向”
        深刻理解功能關(guān)系
        鉗把功能創(chuàng)新實踐應(yīng)用
        關(guān)于非首都功能疏解的幾點思考
        基于PMC窗口功能實現(xiàn)設(shè)備同步刷刀功能
        懷孕了,凝血功能怎么變?
        媽媽寶寶(2017年2期)2017-02-21 01:21:24
        “簡直”和“幾乎”的表達(dá)功能
        中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
        国产精品嫩草影院AV| 中国杭州少妇xxxx做受| 狼人青草久久网伊人| 亚洲最大日夜无码中文字幕| 色噜噜狠狠色综合欧洲| 亚洲av极品尤物不卡在线观看| 77777亚洲午夜久久多喷| 久久99久久99精品中文字幕| 久久av无码精品一区二区三区| 亚洲 欧美 激情 小说 另类 | 日本国产一区二区在线| 在线观看av片永久免费| 亚洲日产一线二线三线精华液| 草草网站影院白丝内射| 日韩av在线不卡一区二区三区| 亚洲免费女女在线视频网站| 国产啪亚洲国产精品无码| 国产精品二区在线观看| 国产黄色污一区二区三区| 美丽的小蜜桃在线观看| 国精产品推荐视频| 亚洲中文无码永久免| 国产免费一级在线观看| 久久久成人av毛片免费观看| 熟女人妻中文字幕av| 看全色黄大色大片免费久久| 亚洲日韩中文字幕在线播放 | 国语对白嫖老妇胖老太| 亚洲国产福利精品一区二区| 久久精品国产白丝爆白浆| 成年av动漫网站18禁| 中文字幕人妻少妇引诱隔壁| 久久久精品3d动漫一区二区三区| 99热这里只有精品久久6| 亚洲精品一区二区三区四区久久 | 伊人亚洲综合网色AV另类 | 久久中文精品无码中文字幕下载| 亚洲午夜无码久久yy6080| 91羞射短视频在线观看| 中文字幕人妻熟女人妻| 精品人妻伦九区久久AAA片69|