0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

什么是單元測(cè)試,為什么要做單元測(cè)試

上海控安 ? 來(lái)源:上??匕?/span> ? 作者:上海控安 ? 2021-04-28 17:21 ? 次閱讀

單元測(cè)試是整個(gè)軟件開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié) ,執(zhí)行一個(gè)完備的單元測(cè)試方案能夠提高整個(gè)開(kāi)發(fā)過(guò)程的時(shí)間效率,確保軟件的實(shí)際功能與詳細(xì)設(shè)計(jì)說(shuō)明的一致性,使軟件開(kāi)發(fā)的效率和軟件產(chǎn)品的質(zhì)量得到最好的保障 。

什么是單元測(cè)試?單元測(cè)試(unit testing),是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。通常而言,一個(gè)單元可能是單個(gè)程序、類、對(duì)象、方法等。

為什么要做單元測(cè)試?軟件中存在的錯(cuò)誤發(fā)現(xiàn)得越早,修改和維護(hù)的費(fèi)用就越低,難度也越小。單元測(cè)試是在軟件開(kāi)發(fā)驗(yàn)證過(guò)程的底層和早期進(jìn)行的測(cè)試活動(dòng),目的是把缺陷消滅在萌芽狀態(tài)。

單元測(cè)試有什么作用?

1.實(shí)現(xiàn)敏捷開(kāi)發(fā),單元測(cè)試的主要好處之一是它使編碼過(guò)程更加敏捷。當(dāng)軟件中添加越來(lái)越多的功能時(shí),有時(shí)需要更改舊的設(shè)計(jì)和代碼,但是更改已測(cè)試的代碼既有風(fēng)險(xiǎn)又耗費(fèi)時(shí)間。如果有單元測(cè)試,則有助于安全重構(gòu)。

2.提高代碼質(zhì)量,由于單元測(cè)試是在集成測(cè)試之前對(duì)最小可測(cè)單元的測(cè)試,所以能夠盡早的發(fā)現(xiàn)軟件代碼中的缺陷,并在不影響其他代碼部分的情況下解決問(wèn)題。這些問(wèn)題包括程序?qū)崿F(xiàn)中的錯(cuò)誤和單元規(guī)范中的缺陷及缺失。通過(guò)代碼檢查和已有缺陷的完善,代碼質(zhì)量可以得到大幅度提高。

3.消除深度未知隱患,軟件開(kāi)發(fā)天生就具有極大的復(fù)雜性,沒(méi)人能100%保證自己寫出來(lái)的程序沒(méi)有問(wèn)題。開(kāi)發(fā)中的初步功能驗(yàn)證我們會(huì)用仿真,或模型及代碼調(diào)試技巧進(jìn)行結(jié)果值確認(rèn),這種測(cè)試一般只能覆蓋部分執(zhí)行路徑,未覆蓋執(zhí)行路徑就留下了很多未知隱患。為了保證我們的程序在各種情況下都能按照預(yù)設(shè)響應(yīng),就需要對(duì)我們的模型或者代碼進(jìn)行嚴(yán)格的基于需求的測(cè)試和覆蓋率測(cè)試(俗稱:白盒測(cè)試),而這種測(cè)試只能在單元測(cè)試中進(jìn)行。

4.優(yōu)化設(shè)計(jì)和架構(gòu),單元測(cè)試可以輔助優(yōu)化設(shè)計(jì)和架構(gòu),比如通過(guò)處理器在環(huán)(Processor In the Loop)來(lái)評(píng)估最長(zhǎng)執(zhí)行時(shí)間(WCET),內(nèi)存和堆棧使用量,優(yōu)化設(shè)計(jì)和架構(gòu),盡早地回避集成后的執(zhí)行時(shí)間及內(nèi)存的溢出問(wèn)題

5.滿足行業(yè)規(guī)范要求,滿足Automotive SPICE過(guò)程及ISO26262安全規(guī)范對(duì)單元測(cè)試的要求,以從第三方認(rèn)證公司獲取相關(guān)認(rèn)證證書(shū)。

什么時(shí)候開(kāi)始做單元測(cè)試?

單元測(cè)試越早越好,早到什么程度?極限編程講究TDD,即測(cè)試驅(qū)動(dòng)開(kāi)發(fā),先編寫測(cè)試代碼,再進(jìn)行開(kāi)發(fā)。在實(shí)際的工作中,可以不必過(guò)分強(qiáng)調(diào)先什么后什么,重要的是高效性和實(shí)用性。從經(jīng)驗(yàn)來(lái)看,對(duì)于單元測(cè)試可以先編寫產(chǎn)品函數(shù)的框架、編寫測(cè)試函數(shù),再針對(duì)產(chǎn)品函數(shù)的功能編寫測(cè)試用例,然后編寫產(chǎn)品函數(shù)的代碼。在實(shí)際編碼過(guò)程中,每寫一個(gè)功能點(diǎn)就進(jìn)行相應(yīng)的測(cè)試,并且隨時(shí)補(bǔ)充測(cè)試用例。

單元測(cè)試任務(wù)太重?效率太低?

工業(yè)嵌入式系統(tǒng)單元測(cè)試工具

SmartRocket Unit作為一款單元測(cè)試工具,可以自動(dòng)生成滿足語(yǔ)句、分支、MC/DC準(zhǔn)則的測(cè)試用例,自動(dòng)執(zhí)行測(cè)試驅(qū)動(dòng)。 通過(guò)使用SmartRocket Unit,用戶可快速對(duì)安全攸關(guān)的代碼進(jìn)行單元級(jí)別的白盒測(cè)試和回歸測(cè)試,從而進(jìn)一步提升單元測(cè)試的效率。SmartRocket Unit通過(guò)智能模擬測(cè)試人員進(jìn)行覆蓋率測(cè)試時(shí)的思路,實(shí)現(xiàn)其核心功能:

l 測(cè)試用例自動(dòng)生成。 動(dòng)態(tài)符號(hào)執(zhí)行求解引擎,采用自動(dòng)推理與符號(hào)執(zhí)行技術(shù),可自動(dòng)分析程序路徑,產(chǎn)生可滿足特定覆蓋率準(zhǔn)則的測(cè)試用例

l 程序打樁技術(shù),對(duì)被測(cè)模塊中的函數(shù)調(diào)用自動(dòng)進(jìn)行打樁,自動(dòng)生成測(cè)試驅(qū)動(dòng)

l 測(cè)試驅(qū)動(dòng)將測(cè)試用例作為輸入,自動(dòng)執(zhí)行測(cè)試用例,記錄并分析執(zhí)行結(jié)果,最終產(chǎn)生測(cè)試報(bào)告,包含覆蓋率分析結(jié)果及測(cè)試用例數(shù)據(jù)等

fqj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
收藏 人收藏

    評(píng)論

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

    視頻教程| 單元測(cè)試工具TESSY:故障注入測(cè)試演示

    測(cè)試
    龍智DevSecOps
    發(fā)布于 :2025年05月30日 13:38:20

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

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

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

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

    單元測(cè)試:構(gòu)建數(shù)字世界的質(zhì)量基石

    第一章 質(zhì)量危機(jī)時(shí)代的軟件困局 1.1?現(xiàn)代社會(huì)的軟件依賴癥候群 ? 數(shù)據(jù)支撐 ?: 世界銀行《2023全球數(shù)字基礎(chǔ)設(shè)施報(bào)告》顯示,全球關(guān)鍵基礎(chǔ)設(shè)施(如電網(wǎng)、交通、醫(yī)療)的數(shù)字化滲透率已達(dá)87%,但軟件失效導(dǎo)致的年度經(jīng)濟(jì)損失高達(dá) ? 1.2萬(wàn)億美元 ?(占全球GDP的1.4%)。 ? 失效案例技術(shù)解剖 ?: ? 波音737MAX飛控系統(tǒng) ?: cCopy Code // MCAS系統(tǒng)關(guān)鍵代碼漏洞(未驗(yàn)證傳感器失效狀態(tài)) if (sensor_data[0].valid sensor_data[1].valid) { ? ?angle = (sensor_data[0].value + s
    的頭像 發(fā)表于 04-24 10:47 ?136次閱讀

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

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

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

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

    嵌入式系統(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è)試方法: 單元測(cè)試
    的頭像 發(fā)表于 12-09 10:22 ?1190次閱讀

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

    在軟件開(kāi)發(fā)中,測(cè)試是保證軟件質(zhì)量和可靠性的關(guān)鍵環(huán)節(jié)。作為領(lǐng)先的 CI/CD 平臺(tái),CircleCI 提供了支持自動(dòng)化測(cè)試的強(qiáng)大工具。其中,單元測(cè)試和組件測(cè)試是兩種重要的
    的頭像 發(fā)表于 12-03 09:18 ?564次閱讀

    汽車軟件單元測(cè)試的重要性

    測(cè)試不充分密切相關(guān),這引發(fā)了社會(huì)各界對(duì)汽車軟件健壯性的重要性進(jìn)行深入思考。本文將探討汽車軟件的測(cè)試,尤其是單元測(cè)試的重要性,以及WinAMS單元測(cè)試工具在這一過(guò)程中的關(guān)鍵作用。 一、
    的頭像 發(fā)表于 11-29 10:57 ?451次閱讀

    嚴(yán)格的單元測(cè)試造就完美的軟件

    關(guān)鍵系統(tǒng)時(shí),更是對(duì)軟件質(zhì)量提出了極高的要求。而單元測(cè)試作為軟件開(kāi)發(fā)過(guò)程中的核心環(huán)節(jié),其重要性不言而喻。 單元測(cè)試的作用 單元測(cè)試是指對(duì)軟件中的最小可測(cè)試
    的頭像 發(fā)表于 11-26 13:22 ?461次閱讀

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

    引言 在現(xiàn)代軟件開(kāi)發(fā)過(guò)程中,單元測(cè)試作為確保代碼質(zhì)量的重要環(huán)節(jié),得到了廣泛的關(guān)注和應(yīng)用。隨著嵌入式系統(tǒng)的復(fù)雜性日益增加,對(duì)高效、可靠的單元測(cè)試工具的需求也愈加迫切。WinAMS作為一款專為嵌入
    的頭像 發(fā)表于 11-19 16:41 ?588次閱讀

    Linux內(nèi)核測(cè)試技術(shù)

    。內(nèi)核測(cè)試技術(shù)是實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵手段。本文將詳細(xì)介紹 Linux 內(nèi)核測(cè)試的各種技術(shù),包括單元測(cè)試、集成測(cè)試、功能測(cè)試和性能
    的頭像 發(fā)表于 08-13 13:42 ?909次閱讀
    Linux內(nèi)核<b class='flag-5'>測(cè)試</b>技術(shù)

    鴻蒙語(yǔ)言基礎(chǔ)類庫(kù):ohos.application.testRunner TestRunner 測(cè)試

    TestRunner模塊提供了框架測(cè)試的能力。包括準(zhǔn)備單元測(cè)試環(huán)境、運(yùn)行測(cè)試用例。
    的頭像 發(fā)表于 07-12 09:32 ?536次閱讀

    單元測(cè)試、集成測(cè)試自動(dòng)化工具

    CoverageMaster winAMS :?適用于嵌入式目標(biāo)機(jī)代碼的單元測(cè)試/集成測(cè)試工具 全面支持嵌入式微機(jī)!驗(yàn)證嵌入式C/C++軟件 實(shí)施以模塊為單位的自動(dòng)化單元測(cè)試工具 不需要
    的頭像 發(fā)表于 06-26 13:41 ?723次閱讀
    <b class='flag-5'>單元測(cè)試</b>、集成<b class='flag-5'>測(cè)試</b>自動(dòng)化工具

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品