chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

汽車(chē)軟件單元測(cè)試的要點(diǎn)與意義

jf_EksNQtU6 ? 來(lái)源:談思實(shí)驗(yàn)室 ? 2023-10-22 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

測(cè)試是一個(gè)非?;A(chǔ)的概念,這種基礎(chǔ)讓大家可以隨意在它前面添加各種定語(yǔ)。

盡管這種添加的背后多數(shù)是不同的分類(lèi)維度,但讓測(cè)試本身成為了繁雜概念的集合,這也讓我們總有種無(wú)法把握的煩躁感。

單元測(cè)試就是這堆讓人煩躁的繁雜概念之一。

1

3種軟件測(cè)試分類(lèi)及單元測(cè)試的定義

如前所述,軟件測(cè)試的分類(lèi)維度非常多,我們僅從以下常見(jiàn)的3種方式闡釋?zhuān)?/p>

按是否執(zhí)行軟件分類(lèi):靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,單元測(cè)試橫跨二者。

按是否關(guān)注內(nèi)部代碼分類(lèi):白盒測(cè)試和黑盒測(cè)試,單元測(cè)試屬于白盒測(cè)試。

按汽車(chē)軟件集成層次分類(lèi):從單元測(cè)試到整車(chē)驗(yàn)收有各級(jí)測(cè)試(參考《汽車(chē)軟件集成的5個(gè)層次》),單元測(cè)試屬于最低一個(gè)層級(jí)。

當(dāng)我們?nèi)ゾW(wǎng)上搜索單元測(cè)試的定義時(shí),往往會(huì)看到類(lèi)似這樣的說(shuō)法,“單元測(cè)試是指對(duì)軟件中的最小可測(cè)單元進(jìn)行測(cè)試”。

但這個(gè)描述只能是一個(gè)正確的定義,仍然很難把握。什么叫最小可測(cè)單元?一個(gè)函數(shù)?一個(gè)類(lèi)?一個(gè).c?還是一個(gè)功能模塊?

爭(zhēng)論一直存在。

擱置爭(zhēng)議,我們只看汽車(chē)行業(yè)。按照慣例或標(biāo)準(zhǔn),廣義上,可以把軟件集成測(cè)試以下所有測(cè)試都看作是單元測(cè)試。

2

單元測(cè)試的4種類(lèi)型

進(jìn)一步地,在汽車(chē)軟件領(lǐng)域,我們可以將單元測(cè)試細(xì)分為代碼評(píng)審、靜態(tài)分析、單元(代碼功能)測(cè)試和單元(代碼覆蓋度)測(cè)試。

前兩種屬于靜態(tài)測(cè)試,后兩種屬于動(dòng)態(tài)測(cè)試。

2.1 代碼評(píng)審

根據(jù)形式或正式程度上的差異,代碼評(píng)審會(huì)分成很多名目,比如:

走查(Walk Through)

同行評(píng)審(Peer Review)

代碼評(píng)審(Code Revew)

結(jié)對(duì)編程(Pair Programming)

代碼審查(Code Inspection)

但簡(jiǎn)單來(lái)說(shuō),代碼評(píng)審就是人看,一個(gè)或一組人面對(duì)可閱讀的源代碼(有時(shí)也需要結(jié)合需求或軟件文檔),進(jìn)行隨意的或正式會(huì)議下的檢查。

可能會(huì)識(shí)別出如下的一些問(wèn)題:

無(wú)注釋的代碼

不可達(dá)的條件路徑

太復(fù)雜的循環(huán)嵌套

無(wú)返回值的分支

未初始化的變量

空指針的引用

不規(guī)范的命名規(guī)則

......

理論上,對(duì)于手寫(xiě)代碼的合理性與正確性,他人及更有經(jīng)驗(yàn)的他人去檢查一遍,有一定的意義,甚至某些案例下,會(huì)勝過(guò)后期測(cè)試。

比如,開(kāi)發(fā)調(diào)用了名稱(chēng)相似的變量,這種錯(cuò)誤可能在流到很后期才會(huì)被探測(cè)到。

實(shí)際上,代碼評(píng)審也同其他評(píng)審類(lèi)似,都是無(wú)奈為之而又常常流于形式的手段。

解決這類(lèi)問(wèn)題的方法不外乎3個(gè):

? 用更負(fù)責(zé)且有經(jīng)驗(yàn)的人

?提升形式的強(qiáng)制性

? 積累充足的Checklist

其中,在下一節(jié)靜態(tài)分析工具使用后,人的經(jīng)驗(yàn)就成為了代碼評(píng)審存在的最大意義。

總之,代碼評(píng)審不算是典型的測(cè)試,但作為編碼后的第一道屏障,仍然有必要存在。

2.2 靜態(tài)分析

相較于人工代碼評(píng)審的低效,靜態(tài)分析是依賴(lài)于諸如Parasoft、Polyspace、Coverity等工具的自動(dòng)化分析。

因?yàn)椴恍枰獔?zhí)行軟件,所以靜態(tài)分析仍然不需要二進(jìn)制代碼或可執(zhí)行程序。

靜態(tài)分析工具通常主要支持以下兩種分析類(lèi)型:

語(yǔ)法分析:主要檢查是否符合編程語(yǔ)言的語(yǔ)法規(guī)則,如MISRA C。

代碼路徑分析:主要包括控制流分析(如語(yǔ)句條件分支、循環(huán)迭代次數(shù))、數(shù)據(jù)流分析(如變量值的傳遞)、代碼復(fù)雜性(如圈復(fù)雜度、路徑長(zhǎng)度)、依賴(lài)關(guān)系(如函數(shù)之間的調(diào)用、模塊之間的依賴(lài))等。

當(dāng)對(duì)部分或全部代碼進(jìn)行靜態(tài)掃描后,會(huì)得到基于內(nèi)置規(guī)則集的判定結(jié)果,一般會(huì)包含分等級(jí)的規(guī)則違反情況。

如MISRA C: 2012分為強(qiáng)制(Mandatory)、必要(Required)和建議(Advisory)。

通常,強(qiáng)制項(xiàng)必修,必要項(xiàng)需要進(jìn)行評(píng)審。但有時(shí)候,涉及到第三方標(biāo)準(zhǔn)庫(kù)時(shí),就無(wú)法按照這個(gè)規(guī)則執(zhí)行了,具體還是要看產(chǎn)品類(lèi)型(如是否涉及信息安全)和公司要求。

此外,由于編譯器基本也都具備類(lèi)似的代碼檢查作用,靜態(tài)分析工具也可以理解為編譯器的擴(kuò)展。

因此,我們也會(huì)把編譯器警告或錯(cuò)誤作為要處理的條目。

2.3單元(代碼功能)測(cè)試

這部分測(cè)試的源頭是軟件詳細(xì)設(shè)計(jì),測(cè)試重點(diǎn)從代碼寫(xiě)得漂不漂亮轉(zhuǎn)移到代碼寫(xiě)得有沒(méi)有用,也就是是不是符合了設(shè)計(jì)。

汽車(chē)軟件用例的設(shè)計(jì),一般有如下兩種密切相關(guān)的方法:

2.3.1 等價(jià)類(lèi)劃分法

等價(jià)類(lèi)劃分是將軟件單元的輸入數(shù)據(jù)劃分為等價(jià)數(shù)據(jù)(即可以導(dǎo)致相同的輸出)的分區(qū),而后用測(cè)試用例去至少覆蓋每個(gè)分區(qū)一次。

其背后的訴求是,通過(guò)劃分輸入數(shù)據(jù)的類(lèi)別來(lái)限定測(cè)試用例的數(shù)量。

舉一個(gè)例子。

一個(gè)函數(shù)輸入的范圍是1~100,如果要窮舉式測(cè)試,我們需要為輸入?yún)?shù)編寫(xiě)100個(gè)測(cè)試用例。

而使用等價(jià)類(lèi)劃分法的話(huà),測(cè)試用例就可以分為三類(lèi):

有效(1~100)

以下無(wú)效(例如0)

以上無(wú)效(>100)

于是,用例也就可以縮減為3個(gè)。

可能有人很快會(huì)有疑問(wèn),按照等價(jià)輸入數(shù)據(jù)進(jìn)行測(cè)試,會(huì)不會(huì)有遺漏呢?

沒(méi)錯(cuò),尤其是邊界值處很容易出錯(cuò)。這就是第二個(gè)方法要解決的問(wèn)題。

2.3.2 邊界值法

仍然以上一個(gè)案例展開(kāi)。

使用邊界值法的話(huà),我們可為等價(jià)類(lèi)劃分法定義的測(cè)試用例作如下補(bǔ)充:

剛好在邊界(1,100)

剛好在邊界以下(0,99)

剛剛越過(guò)邊界(2,101)

經(jīng)過(guò)兩種方法的結(jié)合,缺陷發(fā)現(xiàn)的能力會(huì)進(jìn)一步提高。

2.4單元(代碼覆蓋度)測(cè)試

單元(代碼功能)測(cè)試完成后,夠了嗎?不夠。

我們沒(méi)測(cè)出bug,代表的不是軟件沒(méi)bug,而是沒(méi)測(cè)夠。

沒(méi)測(cè)夠的典型表現(xiàn)是測(cè)試用例對(duì)代碼的覆蓋程度不足,這就是本節(jié)要處理的問(wèn)題。

主要的代碼覆蓋度測(cè)試類(lèi)型包括以下4種,嚴(yán)格程度從上到下依次增強(qiáng):

語(yǔ)句覆蓋(Statement Coverage):這是最基本的覆蓋度類(lèi)型,它確保每個(gè)代碼語(yǔ)句至少執(zhí)行一次,100%的語(yǔ)句覆蓋率可以保證沒(méi)有死代碼,屬于入門(mén)級(jí)別的測(cè)試。

分支覆蓋(Branch Coverage):分支覆蓋確保每個(gè)分支語(yǔ)句(通常是if語(yǔ)句)都被覆蓋到,即每個(gè)分支的真和假兩種情況都被測(cè)試到,有助于揭示一些邏輯錯(cuò)誤,如if a and b then...,用例為a真+b真(分支為真)、a真+b假(分支為假,與其他條件組合等價(jià))即可100%。

條件覆蓋(Condition Coverage):條件覆蓋要求每個(gè)分支語(yǔ)句的每個(gè)條件都被覆蓋,即每個(gè)條件的真和假兩種情況都被測(cè)試到,它比分支覆蓋更為嚴(yán)格,因?yàn)樗鼤?huì)關(guān)注條件的組合覆蓋,如if a and b then...,用例為a真+b真、a真+b假、a假+b真、a假+b假才可100%。

修改條件/判定組合覆蓋(Modified Condition/Decision Combination Coverage):這一級(jí)別的覆蓋要求同時(shí)滿(mǎn)足條件覆蓋和判定覆蓋,以確保條件和判定之間的組合覆蓋,是一種更加嚴(yán)格的覆蓋度測(cè)試。

不同的項(xiàng)目和產(chǎn)品可能需要不同類(lèi)型的代碼覆蓋度測(cè)試。

通常,基礎(chǔ)的覆蓋度(如語(yǔ)句覆蓋和分支覆蓋)是必要的起點(diǎn),而在需要更高可靠性和安全性的項(xiàng)目中,可能會(huì)選擇更嚴(yán)格的MC/DC覆蓋度,比如,涉及ASIL D的模塊。

3

單元測(cè)試意義的思考

說(shuō)意義的話(huà),我們可以很快說(shuō)出一大堆,bug提前暴露、提升軟件質(zhì)量、軟件更加健壯、利于重構(gòu)、清除技術(shù)債務(wù)、積累組織資產(chǎn)......

問(wèn)題在于,在不好言明的價(jià)值和巨大的交付壓力之下,單元測(cè)試太容易被權(quán)衡掉了,誰(shuí)還沒(méi)有個(gè)意義呢?

實(shí)際上,管中窺豹,對(duì)這類(lèi)重要但不緊急事情的意義的探討會(huì)折射出很多面的信息,比如下面這個(gè)算式。

自動(dòng)化的程度+對(duì)軟件的理解+產(chǎn)品的競(jìng)爭(zhēng)力+公司的文化+行業(yè)的生態(tài)=單元測(cè)試的意義

4

全文小結(jié)

本文主要在講單元測(cè)試的一些基本概念和應(yīng)用場(chǎng)景。

首先,從是否執(zhí)行軟件、是否關(guān)注內(nèi)部代碼和汽車(chē)軟件分層集成這3個(gè)方面解釋了單元測(cè)試的特點(diǎn)。進(jìn)而,引申出汽車(chē)軟件單元測(cè)試的概念。

接著,將單元測(cè)試細(xì)分為代碼評(píng)審、靜態(tài)分析、代碼功能測(cè)試、代碼覆蓋度測(cè)試,并分別進(jìn)行了描述。

由于單元測(cè)試離客戶(hù)需求太遠(yuǎn),往往被務(wù)實(shí)的我們忽略,如何看待其價(jià)值需要探討,第3小節(jié)對(duì)此做了簡(jiǎn)單分析。

5

寫(xiě)在最后

不只是單元測(cè)試,軟件大舉進(jìn)入汽車(chē)行業(yè)的過(guò)程中,未來(lái)無(wú)形不可見(jiàn)和當(dāng)下有形可見(jiàn)的價(jià)值沖突持續(xù)在上演。

如何把握向左還是向右的分寸始終是一個(gè)巨大的決策考驗(yàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 汽車(chē)行業(yè)
    +關(guān)注

    關(guān)注

    0

    文章

    366

    瀏覽量

    16532
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4941

    瀏覽量

    73151
  • 汽車(chē)軟件
    +關(guān)注

    關(guān)注

    1

    文章

    151

    瀏覽量

    3665

原文標(biāo)題:汽車(chē)軟件單元測(cè)試的要點(diǎn)與意義

文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入軟件單元測(cè)試的全面研究與實(shí)踐

    引言 嵌入軟件單元測(cè)試是確保嵌入式系統(tǒng)質(zhì)量和可靠性的關(guān)鍵環(huán)節(jié)。嵌入式系統(tǒng)廣泛應(yīng)用于汽車(chē)電子、工業(yè)控制、醫(yī)療設(shè)備等關(guān)鍵領(lǐng)域,其軟件直接操控硬件,任何微小的錯(cuò)誤都可能導(dǎo)致嚴(yán)重后果。
    的頭像 發(fā)表于 12-01 14:31 ?179次閱讀

    新能源汽車(chē)質(zhì)量保證體系與傳統(tǒng)汽車(chē)單元測(cè)試規(guī)范的融合研究

    摘要 隨著新能源汽車(chē)產(chǎn)業(yè)的快速發(fā)展,其質(zhì)量保證體系面臨前所未有的挑戰(zhàn)。本文探討了將傳統(tǒng)汽車(chē)成熟的單元測(cè)試規(guī)范應(yīng)用于新能源汽車(chē)領(lǐng)域的可行性,重點(diǎn)分析了ISO 26262標(biāo)準(zhǔn)體系在新能源
    的頭像 發(fā)表于 11-07 10:10 ?92次閱讀

    單元測(cè)試專(zhuān)業(yè)工具在新能源開(kāi)發(fā)中的作用研究

    單元測(cè)試的歷史由來(lái)與發(fā)展 單元測(cè)試的概念可以追溯到20世紀(jì)60年代,伴隨著計(jì)算機(jī)科學(xué)和軟件工程學(xué)科的發(fā)展而逐步形成。早期的計(jì)算機(jī)科學(xué)研究(20世紀(jì)60年代)中,程序員意識(shí)到僅依靠手工調(diào)試和集成
    的頭像 發(fā)表于 11-03 16:03 ?308次閱讀

    嵌入式軟件測(cè)試與專(zhuān)業(yè)測(cè)試工具的必要性深度解析

    ?:單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試等不同階段可能需要不同的工具組合16。 ?軟件特性?:實(shí)時(shí)性要求、安全等級(jí)等特性決定工具的功能需求。 ?環(huán)境適配性?:工具是否支持目標(biāo)硬件平臺(tái)和開(kāi)發(fā)
    發(fā)表于 09-28 17:42

    邊聊安全 | 軟件單元測(cè)試的設(shè)計(jì)方法

    上海磐時(shí)PANSHI“磐時(shí),做汽車(chē)企業(yè)的安全智庫(kù)”軟件單元測(cè)試的設(shè)計(jì)方法寫(xiě)在前面:軟件單元測(cè)試的設(shè)計(jì)是一個(gè)系統(tǒng)化的過(guò)程,旨在驗(yàn)證代碼的最小可
    的頭像 發(fā)表于 09-05 16:18 ?4336次閱讀
    邊聊安全 | <b class='flag-5'>軟件</b><b class='flag-5'>單元測(cè)試</b>的設(shè)計(jì)方法

    汽車(chē)軟件安全測(cè)試中的痛點(diǎn)與Bugspot解決方案

    上海磐時(shí)PANSHI“磐時(shí),做汽車(chē)企業(yè)的安全智庫(kù)”汽車(chē)軟件安全測(cè)試中的痛點(diǎn)與Bugspot解決方案日前在汽車(chē)行業(yè),
    的頭像 發(fā)表于 09-05 16:17 ?434次閱讀
    <b class='flag-5'>汽車(chē)</b><b class='flag-5'>軟件</b>安全<b class='flag-5'>測(cè)試</b>中的痛點(diǎn)與Bugspot解決方案

    汽車(chē)軟件開(kāi)發(fā)階段安全的意義與原則

    上海磐時(shí)PANSHI“磐時(shí),做汽車(chē)企業(yè)的安全智庫(kù)”好書(shū)分享/《一本書(shū)讀懂智能汽車(chē)安全》汽車(chē)軟件開(kāi)發(fā)階段安全的意義與原則本文節(jié)選自SASETE
    的頭像 發(fā)表于 09-05 16:16 ?673次閱讀
    <b class='flag-5'>汽車(chē)</b><b class='flag-5'>軟件</b>開(kāi)發(fā)階段安全的<b class='flag-5'>意義</b>與原則

    HarmonyOSAI編程單元測(cè)試用例

    根據(jù)選中的ArkTS方法名稱(chēng),CodeGenie支持自動(dòng)生成對(duì)應(yīng)單元測(cè)試用例,提升測(cè)試覆蓋率。 在ArkTS文檔中,光標(biāo)放置于方法名稱(chēng)上或框選完整的待測(cè)試方法代碼塊,右鍵選擇CodeGenie
    發(fā)表于 08-27 14:33

    單元測(cè)試工具TESSY現(xiàn)已支持ABIX HiperSIM,助力MELEXIS MLX16 汽車(chē)嵌入式系統(tǒng)的軟件驗(yàn)證

    TESSY現(xiàn)已支持ABIX HiperSIM,為基于MELEXIS MLX16架構(gòu)的汽車(chē)嵌入式系統(tǒng)提供高效、可靠的軟件驗(yàn)證解決方案。自動(dòng)化測(cè)試+高保真仿真,助力提升軟件質(zhì)量與開(kāi)發(fā)效率。
    的頭像 發(fā)表于 07-17 13:39 ?670次閱讀
    <b class='flag-5'>單元測(cè)試</b>工具TESSY現(xiàn)已支持ABIX HiperSIM,助力MELEXIS MLX16 <b class='flag-5'>汽車(chē)</b>嵌入式系統(tǒng)的<b class='flag-5'>軟件</b>驗(yàn)證

    HarmonyOS AI輔助編程工具(CodeGenie)代碼測(cè)試

    本功能從DevEco Studio 5.1.0 Release版本開(kāi)始支持。 根據(jù)選中的ArkTS方法名稱(chēng),CodeGenie支持自動(dòng)生成對(duì)應(yīng)單元測(cè)試用例,提升測(cè)試覆蓋率。 在ArkTS文檔中,光標(biāo)
    發(fā)表于 07-14 17:33

    新能源車(chē)軟件單元測(cè)試深度解析:自動(dòng)駕駛系統(tǒng)視角

    ?第一部分:新能源車(chē)軟件單元測(cè)試的戰(zhàn)略重要性 ?汽車(chē)電子架構(gòu)的范式轉(zhuǎn)變? 隨著新能源車(chē)的普及,汽車(chē)電子架構(gòu)從傳統(tǒng)的分布式ECU(電子控制單元
    發(fā)表于 05-12 15:59

    新能源車(chē)背后的隱形守護(hù)者:軟件單元測(cè)試的生死較量?

    。這個(gè)教科書(shū)級(jí)的避讓動(dòng)作背后,是超過(guò)8000萬(wàn)行代碼的精密協(xié)作,而確保這些代碼絕對(duì)可靠的秘密武器,正是我們今天要揭秘的軟件單元測(cè)試。 ?一、代碼世界的顯微鏡:單元測(cè)試為何重要? 如果把整車(chē)軟件
    的頭像 發(fā)表于 05-12 11:00 ?438次閱讀

    單元測(cè)試在嵌入式軟件中的關(guān)鍵作用及winAMS工具的卓越貢獻(xiàn)

    1.?單元測(cè)試概述 ?定義與核心目標(biāo)? 單元測(cè)試軟件開(kāi)發(fā)過(guò)程中針對(duì)程序模塊(如函數(shù)、類(lèi)或組件)的最小可測(cè)試單元進(jìn)行的驗(yàn)證活動(dòng)。其核心目標(biāo)在
    的頭像 發(fā)表于 04-11 14:31 ?755次閱讀

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

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

    嵌入式系統(tǒng)開(kāi)發(fā)中的測(cè)試方法 嵌入式系統(tǒng)開(kāi)發(fā)與AI結(jié)合應(yīng)用

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