一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

聚焦汽車軟件開發(fā)與測試:靜態(tài)代碼掃描、單元測試與集成測試等方面的實踐應用

龍智 ? 來源:jf_15970448 ? 作者:jf_15970448 ? 2024-08-05 13:22 ? 次閱讀

2024年7月18-19日,龍智攜汽車軟件開發(fā)及管理解決方案創(chuàng)新亮相2024 ATC汽車軟件與安全技術周。龍智技術支持部負責人&Atlassian認證專家葉燕秀、龍智功能安全高級工程師景玉鑫在活動主會場聯合發(fā)表了精彩演講,分享推動汽車軟件開發(fā)與功能安全的創(chuàng)新實踐。

本期,龍智功能安全高級工程師景玉鑫將從開發(fā)和測試的角度出發(fā),探討如何借助靜態(tài)代碼分析及自動化測試工具,確保代碼在符合ISO 26262功能安全標準的同時,提升生產力。

以下為演講實錄(內容有精簡潤色)。

大家好,前面我的同事已經提及了功能安全標準、質量與合規(guī)的重要性,特別是在汽車行業(yè)中,這些方面至關重要。( 點此閱讀上期演講回顧)接下來,我們將從開發(fā)和測試的角度出發(fā),探討如何在確保代碼符合功能安全標準的同時,提升生產力。

靜態(tài)代碼分析

我們知道,以安全至上的汽車行業(yè)對代碼質量的要求極為嚴格,而維護代碼質量又與企業(yè)成本息息相關。

首先我們來看一張圖:

wKgZomawYaWAMxdWAABERMNvjjI524.jpg

該圖的橫坐標代表了軟件開發(fā)周期的不同階段,包括編碼階段、單元測試、功能測試、系統測試和發(fā)布階段;藍色曲線表示代碼問題產生的比例;橙色曲線表示代碼問題被發(fā)現的比例;而紅色曲線則反映了代碼問題的維護成本。

我們不難發(fā)現,隨著產品生命周期的推進,維護成本在不斷增加。在開發(fā)初期,由于環(huán)境相對簡單,發(fā)現問題后的維護成本相對較低。而進入單元測試階段后,由于測試人員需要建立和調整測試用例,并與開發(fā)人員進行溝通和協調,維護成本會有所增加。到了系統測試和發(fā)布階段,維護成本更是呈指數級增長。因此,盡早地發(fā)現代碼問題對于降低維護成本至關重要。

那么,如何有效發(fā)現代碼問題呢?依賴人工的審查和審核?顯然,這種方式高度依賴于個人的專業(yè)性和經驗,而且面對汽車行業(yè)龐大的代碼量,也顯得不切實際。我們需要借助靜態(tài)代碼掃描工具,以標準、權威的規(guī)則來掃描代碼,幫助發(fā)現隱藏問題。

如何選擇靜態(tài)代碼掃描工具?

在選擇靜態(tài)代碼掃描工具時,我們期望它能夠滿足功能安全標準的要求,并獲取相應的資質認證,以此提升掃描代碼的可信度和可靠性。此外,該工具內置的掃描規(guī)則也需要全面覆蓋我們日常使用的或熟知的編碼標準。

wKgaomawYaWACjKWAAAoSP-4vQ8162.jpg

除了功能安全標準的專業(yè)性外,作為代碼掃描工具本身,我們還需關注以下的關鍵條件:

檢查規(guī)則是否全面:不僅限于上述涉及的相關功能安全標準,還應涵蓋對特定編程語言模塊的深入掃描規(guī)則。

是否具有較低的誤報率、漏報率,保障精度與準確度。

是否與開發(fā)人員日常使用的工具實現友好集成,以提升工作效率。

掃描結果是否可以在團隊內外進行共享和管理,促進團隊協作與信息傳遞。

是否具備豐富的報表功能,便于項目管理者或項目成員查看分析報告。

是否支持與現有持續(xù)集成(CI)工具的集成。對此,我們的推薦方式是將CI工具、源代碼管理(SCM)工具以及代碼掃描工具進行集成。通過代碼掃描工具,自動掃描每一次的提交和拉取請求,確保提交至SCM的代碼符合標準和規(guī)范。

wKgZomawYaeAMPXiAAAlbFILA-U150.jpg

單元測試/集成測試

下面,我們來簡要探討一下動態(tài)測試。一些安全標準(如ISO 26262)對單元測試和集成測試都是有一定要求的,我們需要確保代碼能夠滿足不同級別的安全標準。

V模型開發(fā)模式

wKgaomawYaiAKqu8AAA14Ipbzm4301.jpg

在上圖以V模型為例的開發(fā)模式中,可以看到,單元測試是首個動態(tài)測試環(huán)節(jié),通過函數級別的掃描來發(fā)現代碼中的錯誤,并避免這些錯誤在后續(xù)測試甚至最終用戶處才被發(fā)現。

自動化測試和人工測試

對于動態(tài)測試,大致可以分為自動化測試和人工測試。相比于人工測試,自動化測試具有顯著優(yōu)勢。

? 首先,測試用例和測試動作可以提前定義并保存,當實施重復性測試時,只需少量修改甚至無需修改,就可以確保測試數據的一致性。

? 自動化測試能夠覆蓋人工測試難以或無法覆蓋的用例,測試覆蓋率更高。

? 采用自動化測試,可以利用周末或晚間的非工作時間運行,從而釋放測試人員的精力,以設計更好的測試用例,提高測試效率。

? 和前面介紹的靜態(tài)代碼掃描工具類似,如果我們的自動化測試工具已經通過功能安全標準認證,那么該工具的測試結果也具有更高的可靠性和可信度。

? 此外,自動化測試還能有效降低項目成本。

下圖是自動化測試(TESSY)和人工測試的Effort的比較,可以看出,盡管前期自動化測試在設計和定義上需要更多的投入,但長期來看,其優(yōu)勢愈發(fā)明顯。

wKgZomawYaqAXZ2ZAAAVWAohElo330.jpg

開展詳盡規(guī)范的單元測試

對于何時開展測試,我們建議嘗試持續(xù)測試和測試左移策略,這是DevOps中的一個概念,即讓測試人員在早期介入,更早地開始設計和定義測試用例,并伴隨著開發(fā)周期進行測試,同時結合自動化測試工具,以盡早發(fā)現問題,縮短交付周期。

wKgaomawYa6AcTZkAAA56icTXos247.jpg

測試覆蓋率

為了評估軟件本身覆蓋率的可信度,我們還需要特別關注一些測試覆蓋率。以ISO 26262標準為例,該標準對軟件測試中的覆蓋率提出了明確要求。

wKgZomawYa-AGD8LAABJ_u2tFWo668.jpg

上圖的右側展示了ISO 26262對覆蓋率要求的一部分,包括語句覆蓋率、分支覆蓋率等關鍵指標。另外也有很多其他的覆蓋率度量,我們在左側列舉了部分,供大家參考。

測試覆蓋率圖形分析

使用自動化測試工具時,我們希望這些工具在精確計算復雜的覆蓋率度量的同時,還能以用戶友好的可視化形式,直觀地展示結果,以便更清晰地了解軟件的測試覆蓋情況。

wKgaomawYa-AaKvFAABWjtCspY8740.jpg

比如上圖所示的可視化界面,通過流程圖、彩色代碼等圖示,我們能夠直觀地進行分支覆蓋率分析,清晰地看到哪些分支已被執(zhí)行(以綠色標注),哪些分支尚未被執(zhí)行(以紅色標注)。這樣的可視化展示不僅提供了覆蓋率的直觀概覽,也為后續(xù)的優(yōu)化工作指明方向。

便捷的測試用例設計方式

此外,在使用自動化測試工具的過程中,同樣需要注重測試用例的建立是否便捷。結合我們使用過的工具,這里向大家推薦兩種有效方式:

第一種,采用測試用例編輯器的模式。該模式可以通過可視化表格將測試的輸入、預計的輸出及實際的執(zhí)行結果直觀展現出來,同時清晰且高效地管理測試數據。

wKgZomawYa-AcPUWAABuMCzl8YQ377.jpg

第二種,采用分類樹編輯器的方式。該方式運用邊界值法和等價類的劃分法,幫助半自動地生成測試用例,從而提高測試覆蓋率,減少測試用例的冗余,并進一步提升測試效率。

wKgaomawYbCAaDnnAABNjqcnYEU251.jpg

以上所提及的理念、相關數據、產品特性和截圖等,均源自兩款備受認可的軟件——靜態(tài)代碼掃描工具Perforce Helix QAC和單元測試工具TESSY。這兩款軟件均獲得了TüV SüD關于功能安全標準的一系列認證,多年來專注于功能安全標準和安全合規(guī)領域,為用戶提供可靠的技術支撐。

Helix QAC:

30多年來,Helix QAC一直是值得信賴的C/C ++語言靜態(tài)代碼分析器。憑借其分析的深度和準確性,Helix QAC已成為監(jiān)管嚴格、安全至上的行業(yè)滿足合規(guī)要求的首選靜態(tài)代碼分析器,包括汽車行業(yè)。它能檢測代碼錯誤、是否編碼標準符合(例如MISRA和AUTOSAR),是否存在安全隱患,并幫助團隊遵循合規(guī)標準(例如ISO 26262),提升代碼質量和安全性,從而為汽車軟件開發(fā)團隊創(chuàng)造更高標準、更可靠的產品。

TESSY:

TESSY是一款應用于嵌入式軟件的自動化測試工具,專門針對嵌入式軟件的C/C++代碼進行單元測試、集成測試。TESSY作為較早的單元測試工具之一,設計用于支持符合標準的開發(fā)和測試,已經成為高質量產品和安全關鍵應用的常用工具。

作為一款經過認證的測試工具,TESSY支持所有行業(yè)領先的編譯器、調試器和微控制器,以及主機模擬,符合IEC 61508/ISO 26262、IEC 62304和EN 50128標準的安全相關軟件開發(fā)要求。眾多汽車整車廠、零部件供應商都在使用TESSY。

若您對上述內容或相關軟件有進一步的興趣和疑問,歡迎聯系Perforce中國授權合作伙伴、TESSY授權分銷商——龍智詳細咨詢。謝謝大家。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5574

    瀏覽量

    128091
  • 代碼
    +關注

    關注

    30

    文章

    4882

    瀏覽量

    70046
  • 汽車軟件
    +關注

    關注

    1

    文章

    116

    瀏覽量

    3390
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    單元測試在嵌入式軟件中的關鍵作用及winAMS工具的卓越貢獻

    1.?單元測試概述 ?定義與核心目標? 單元測試軟件開發(fā)過程中針對程序模塊(如函數、類或組件)的最小可測試單元進行的驗證活動。其核心目標在
    的頭像 發(fā)表于 04-11 14:31 ?154次閱讀

    嵌入式軟件單元測試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測試? ?嵌入式系統的特殊性? 在汽車 ECU、醫(yī)療設備控制器等場景中,軟件直接操控硬件,?單比特錯誤可能導致剎車失靈或呼吸機故障?。不同于 PC?
    的頭像 發(fā)表于 03-21 14:53 ?274次閱讀

    嵌入式系統開發(fā)中的測試方法 嵌入式系統開發(fā)與AI結合應用

    嵌入式系統開發(fā)中的測試方法 嵌入式系統開發(fā)是一個復雜的過程,涉及到硬件和軟件的緊密結合。測試是確保系統可靠性和性能的關鍵步驟。以下是一些常用
    的頭像 發(fā)表于 12-09 10:22 ?1048次閱讀

    開發(fā)者必讀!CircleCI?組件測試單元測試全解析

    軟件開發(fā)中,測試是保證軟件質量和可靠性的關鍵環(huán)節(jié)。作為領先的 CI/CD 平臺,CircleCI 提供了支持自動化測試的強大工具。其中,單元測試
    的頭像 發(fā)表于 12-03 09:18 ?501次閱讀

    汽車軟件單元測試的重要性

    設計和測試不充分密切相關,這引發(fā)了社會各界對汽車軟件健壯性的重要性進行深入思考。本文將探討汽車軟件測試
    的頭像 發(fā)表于 11-29 10:57 ?397次閱讀

    嚴格的單元測試造就完美的軟件

    關鍵系統時,更是對軟件質量提出了極高的要求。而單元測試作為軟件開發(fā)過程中的核心環(huán)節(jié),其重要性不言而喻。 單元測試的作用 單元測試是指對
    的頭像 發(fā)表于 11-26 13:22 ?399次閱讀

    嵌入軟件單元/集成測試工具專業(yè)分析

    軟件開發(fā)設計的單元測試工具,其獨特的功能和優(yōu)勢使其在市場中占據了一席之地。本文將對WinAMS進行深入分析,并將其與其他測試工具進行對比,探討其在功能、易用性和兼容性等方面的優(yōu)點。 1
    的頭像 發(fā)表于 11-19 16:41 ?518次閱讀

    ECU電控軟件開發(fā)測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發(fā)、MBD開發(fā)模式下的軟件質量評估與優(yōu)化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3827次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及<b class='flag-5'>測試</b>介紹

    9月12日云技術研討會 | ECU電控軟件開發(fā)測試全流程解決方案

    本次研討會,經緯恒潤將結合業(yè)務團隊多年來在軟件開發(fā)測試領域的工程實踐經驗,分享探討基于AutoSar架構的應用軟件開發(fā)、基于MBD開發(fā)
    的頭像 發(fā)表于 09-26 14:18 ?1632次閱讀
    9月12日云技術研討會 | ECU電控<b class='flag-5'>軟件開發(fā)</b>及<b class='flag-5'>測試</b>全流程解決方案

    單元測試、集成測試自動化工具

    CoverageMaster winAMS :?適用于嵌入式目標機代碼單元測試/集成測試工具 全面支持嵌入式微機!驗證嵌入式C/C++軟件
    的頭像 發(fā)表于 06-26 13:41 ?673次閱讀
    <b class='flag-5'>單元測試</b>、<b class='flag-5'>集成</b><b class='flag-5'>測試</b>自動化工具

    服務端測試是web測試嗎為什么

    客戶端請求、執(zhí)行業(yè)務邏輯、與數據庫交互等。服務端測試的目的是確保服務器端的軟件組件能夠按照預期工作,沒有錯誤,并且能夠滿足性能要求。 服務端測試的類型 單元測試 :針對單個函數或模塊進
    的頭像 發(fā)表于 05-30 15:30 ?986次閱讀

    接口測試的工具有哪些種類

    單元測試框架 單元測試框架主要用于測試單個模塊或函數的功能。雖然它們主要用于開發(fā)階段,但也可以用于接口測試。 1.1 JUnit (Jav
    的頭像 發(fā)表于 05-30 15:07 ?1223次閱讀

    仿真測試軟件測試的區(qū)別

    在當今軟件開發(fā)和驗證的領域中,測試是保證軟件質量的關鍵環(huán)節(jié)。而在測試的眾多方法中,仿真測試軟件
    的頭像 發(fā)表于 05-17 14:33 ?1270次閱讀

    鑒源論壇丨軌交軟件測試技術詳述

    要求 ·對軟件集成測試進行靜態(tài)測試應先于動態(tài)測試; · 集成
    的頭像 發(fā)表于 05-14 16:38 ?509次閱讀
    鑒源論壇丨軌交<b class='flag-5'>軟件</b><b class='flag-5'>測試</b>技術詳述