国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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

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

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

軟件單元測試真的有必要嗎?(上)

上??匕?/a> ? 來源:上??匕? ? 作者:上??匕? ? 2023-11-03 14:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者 |包丹珠上??匕伯a(chǎn)品總監(jiān)

版塊 |鑒源論壇 · 觀模

社群 |添加微信號(hào)TICPShanghai”加入“上??匕?1fusa安全社區(qū)”

“軟件單元測試真的有必要嗎?”專題將分為上下兩期,深度詳解軟件單元測試的重要意義,分享目前行業(yè)內(nèi)進(jìn)行的單元測試探索與實(shí)踐。本文著重探討單元測試的重要性及其正面臨的困境,并介紹功能安全標(biāo)準(zhǔn)中羅列的單元測試方法。

01

前 言


元宇宙虛擬世界被大家探討得越來越深入。隨著Facebook公司更名為Meta,這場未來之戰(zhàn)已經(jīng)吹響號(hào)角。元宇宙是虛擬的一個(gè)世界,核心是軟件創(chuàng)造的世界。那么,軟件定義一切對(duì)普羅大眾來說將不再是個(gè)空想,而是正在抵達(dá)的不久的將來。

如果在讀的你對(duì)軟件還沒有成熟的認(rèn)知,對(duì)產(chǎn)品體驗(yàn)始終停留在有形的實(shí)體的執(zhí)念上的話,那么你要注意更新自己的認(rèn)知了,要盡快做好抓住虛擬未來各種機(jī)遇的準(zhǔn)備哦。

如果說軟件成為未來世界的基礎(chǔ),那么軟件單元將是基礎(chǔ)中的基礎(chǔ)。當(dāng)我們在談?wù)撥浖卧獪y試時(shí),我們實(shí)際在談的是如何打好軟件基礎(chǔ)。讓我們把視角從未來切回到當(dāng)下,一起來探討目前關(guān)于軟件單元測試所面臨的實(shí)際困境,以及如何正確面對(duì)這些困境,從而期待為基礎(chǔ)的軟件研發(fā)過程做好堅(jiān)實(shí)的技術(shù)支撐。

02

靈魂拷問:單元測試耗時(shí)費(fèi)力、成效模糊難以直觀預(yù)見,功能安全標(biāo)準(zhǔn)為何將其作為關(guān)鍵過程進(jìn)行要求?

wKgaomVEmaiAAmSYAAC2PPFUBJw738.png

軟件單元測試不是一個(gè)新的概念。不論是工業(yè)領(lǐng)域,還是金融、互聯(lián)網(wǎng)的軟件從業(yè)人員,相信對(duì)單元測試都或多或少有一定的認(rèn)知,甚至已經(jīng)產(chǎn)生了相關(guān)的實(shí)踐。隨著IEC 61508功能安全標(biāo)準(zhǔn)體系的不斷擴(kuò)充發(fā)展,安全攸關(guān)的領(lǐng)域最先對(duì)其引起了重視。

在快速軟件交付為王的背景之下,研發(fā)人員對(duì)單元測試的態(tài)度是認(rèn)為基礎(chǔ)且重要,但是存在較大負(fù)擔(dān)的。

1. 首先,單元測試任務(wù)瑣碎繁重,會(huì)占用大量時(shí)間。通常情況下,對(duì)于一個(gè)小型10萬行規(guī)模的軟件,大約需要設(shè)計(jì)10000條用例去進(jìn)行測試。基本上,在沒有工具支撐的情況,需要消耗同寫代碼同樣的時(shí)間去撰寫測試驅(qū)動(dòng)并測試;在有工具支持的情況會(huì)有所緩解,但也至少多花費(fèi)一半的時(shí)間。

2. 其次,單元測試預(yù)期能產(chǎn)生的效果不是能立即直觀體現(xiàn)出來的。軟件單元測試是在軟件開發(fā)過程中進(jìn)行,軟件還未集成在一起,那么對(duì)于單元測試發(fā)現(xiàn)的問題不能立即直觀地體現(xiàn)在軟件的整體功能上的,因此一開始缺乏直觀可見的對(duì)比證據(jù)來說服開發(fā)人員或者領(lǐng)導(dǎo)單元測試的重要意義。也就是說,單元測試的好處就好比保養(yǎng),在軟件開發(fā)階段是不能直觀體現(xiàn)出來的,需要到了軟件投入使用之后,經(jīng)過同類對(duì)比,才能真正的直觀體現(xiàn)出來。舉個(gè)例子,兩個(gè)負(fù)責(zé)不同模塊的程序員,一個(gè)總能快速完成開發(fā),另一個(gè)就要花較長的時(shí)間才能給出。從效率上講似乎快的能力更強(qiáng)。但是當(dāng)給到客戶之后,你會(huì)發(fā)現(xiàn)完成快的模塊反饋出來奇奇怪怪的各種問題,需要很大的后期維護(hù)成本;慢的問題相對(duì)較少,漸漸地變得沒有新問題反饋出來。整體上來講,快的反而要花更長的時(shí)間,并且還消耗了口碑,投入了更多關(guān)系維護(hù)成本。

3. 再次,測試標(biāo)準(zhǔn)如何定義,何種程度可以認(rèn)為是測試充分的是一個(gè)很關(guān)鍵的問題。單元測試通常會(huì)設(shè)定一些覆蓋率的指標(biāo),比如要求達(dá)到語句、分支覆蓋率100%。但是做到這些覆蓋率的指標(biāo)就能證明沒有問題了嗎?很顯然不能,這是測試?yán)碚摫旧淼耐ú。粗荒馨l(fā)現(xiàn)問題,不能證明沒有問題。但這不是不進(jìn)行單元測試的理由。這些指標(biāo)要求是基礎(chǔ)要求,能夠完成這些指標(biāo),軟件的質(zhì)量會(huì)有一個(gè)質(zhì)的提升。

4. 最后,當(dāng)詳細(xì)設(shè)計(jì)文檔不完善時(shí),研發(fā)人員缺乏明確的測試依據(jù),導(dǎo)致工作難以開展。軟件單元測試需要比較強(qiáng)的前置條件,即需要有詳細(xì)的軟件設(shè)計(jì)文檔作為測試的需求依據(jù)。然而,這個(gè)前置條件本身如果不具備的話,那么就失去了做單元測試的基礎(chǔ)。這種情況下,企業(yè)可能需要考慮先下決心建立軟件質(zhì)量保證的流程體系,再來進(jìn)一步細(xì)化具體的單元測試工作(敏捷開發(fā)對(duì)文檔沒有強(qiáng)制要求,敏捷開發(fā)依賴的是成員高度的共識(shí)和信息通暢,低文檔,高溝通。單元測試依據(jù)的內(nèi)容本質(zhì)上沒有區(qū)別,只不過更多通過溝通結(jié)果來作為無形的依據(jù)。這個(gè)有機(jī)會(huì)可以深入探討)。

因此,耗時(shí)費(fèi)力,成效模糊難以直觀預(yù)見是軟件研發(fā)人員進(jìn)行單元測試時(shí)需要排除的困難,而不是單元測試沒有意義的原因。在來談困難以及解決辦法之前,我們應(yīng)當(dāng)先明確什么是對(duì)的。單元測試是很有必要的,功能安全標(biāo)準(zhǔn)制定者將其作為關(guān)鍵的軟件驗(yàn)證過程是有很高的指導(dǎo)意義的。軟件單元測試可以有效提升軟件整體的質(zhì)量和健壯性。除非極簡單的軟件系統(tǒng),單元測試如果不充分,做再多的系統(tǒng)測試也是不夠的,就好比掃雷不徹底,始終有觸雷的隱患。

03

單元測試到底在做什么,要做到什么程度?

軟件單元是軟件最小的設(shè)計(jì)單位,軟件單元的實(shí)現(xiàn)需要依據(jù)軟件設(shè)計(jì)需求。根據(jù)IEC 61508的要求,即“每個(gè)軟件模塊應(yīng)當(dāng)按軟件設(shè)計(jì)所規(guī)定的進(jìn)行測試。這些測試應(yīng)當(dāng)表明每個(gè)軟件模塊將執(zhí)行其預(yù)期功能,且不會(huì)執(zhí)行非預(yù)期功能”。因此單元測試的核心目標(biāo)是確保軟件單元同軟件設(shè)計(jì)的一致性。

為了確保一致性,功能安全標(biāo)準(zhǔn)列出了多種單元測試的方法。其中等價(jià)類測試和基于結(jié)構(gòu)的測試對(duì)于單元測試來說是充足的。邊界值測試和控制流程分析可以有效降低測試用例的數(shù)目。用盡可能少的用例來完成充足的測試是單元測試的最高追求。

1. 等價(jià)類測試

等價(jià)類測試指的是將測試的輸入分成幾類,每一類提供一個(gè)有代表性的輸入進(jìn)行測試即可。這種方法免除了窮盡所有可能性的不切實(shí)際的測試方法,通過減少測試用例的數(shù)目到可接受的程度,可以有效提升測試的成效。

等價(jià)類劃分的方法有兩種:

1)從設(shè)計(jì)需求推導(dǎo)等價(jià)類??梢詮妮斎霐?shù)據(jù)的角度,或者從輸出數(shù)據(jù)的角度進(jìn)行劃分。

2)

從程序的內(nèi)部結(jié)構(gòu)推導(dǎo)等價(jià)類??梢愿鶕?jù)靜態(tài)分析后的程序路徑來進(jìn)行劃分。

2. 基于結(jié)構(gòu)的測試

基于結(jié)構(gòu)的測試,又稱白盒測試,是基于代碼來進(jìn)行測試的一種技術(shù)。該測試方法關(guān)注代碼的內(nèi)部結(jié)構(gòu),需要研發(fā)或測試人員詳細(xì)了解代碼的內(nèi)部結(jié)構(gòu)。同時(shí)測試充分性有確定的覆蓋度量方法,可以通過系統(tǒng)性的增加測試用例來提升覆蓋率。

基于結(jié)構(gòu)的測試方法有多種,比較基礎(chǔ)的包含以下四種。

1)調(diào)用圖覆蓋。也叫做入口點(diǎn)測試,或者調(diào)用覆蓋測試。調(diào)用圖指的是子程序調(diào)用的樹形圖。該測試方法的目的是確保所有的子程序都被至少調(diào)用一次。

2)語句覆蓋。語句覆蓋是最基礎(chǔ)的測試方法,需要確保所有的語句都至少被測試一次。該方法較為簡單,然而對(duì)于測試來講精確度不是很高。

3)分支覆蓋。分支覆蓋指的是對(duì)于代碼的分支結(jié)構(gòu),需要確保所有的分支都被至少測試一次。該方法相對(duì)語句覆蓋,其測試精確度有較明顯的提升。

4)

MC/DC 覆蓋。修正的條件判定覆蓋,其針對(duì)的是程序的分支結(jié)構(gòu),并且影響分支走向的是多種條件的組合判定。該方法需要確保所有條件均能夠至少影響分支走向一次。該測試方法相對(duì)分支覆蓋,其測試精確度有了更高的提升。并且可以確保以最少的用例數(shù)目,達(dá)到更精確化測試的目的。以上是IEC 61508功能安全標(biāo)準(zhǔn)對(duì)基于結(jié)構(gòu)測試的基礎(chǔ)推薦方法。其中每一種測試覆蓋方法,均要達(dá)到100%的覆蓋。更高級(jí)的基于結(jié)構(gòu)的測試方法還有LCSAJ線性代碼序列和跳轉(zhuǎn)測試、數(shù)據(jù)流、基本路徑等覆蓋測試方法。有興趣的讀者可以進(jìn)一步研究,并結(jié)合代碼特征靈活進(jìn)行選用。

3. 邊界值測試

通常軟件錯(cuò)誤通常會(huì)出現(xiàn)在軟件參數(shù)的邊界點(diǎn)。邊界值測試要求測試應(yīng)涵蓋等價(jià)類的邊界和極端情況,同時(shí)還要檢查需求中的邊界同程序中的邊界是否一致。通常情況下,零值特別容易引起錯(cuò)誤,需要特別注意零值的測試。如:

1)除零錯(cuò)誤

2)空ASCII字符

3)空?;蛘弑碓?/p>

4)滿矩陣

5)

0表項(xiàng)

4. 控制流分析

控制流分析是為了尋找程序結(jié)構(gòu)潛在錯(cuò)誤的一種測試方法。它通過采用靜態(tài)測試技術(shù)來分析程序的控制流程圖,然后進(jìn)一步分析控制流程圖來發(fā)現(xiàn)不良的程序?qū)嵺`。通過控制流程圖分析,可以發(fā)現(xiàn)以下問題。

1)

不可達(dá)代碼。也被稱為死代碼,指的是永遠(yuǎn)不會(huì)被觸發(fā)執(zhí)行到的代碼。

2)

打結(jié)的代碼。良好的代碼通??梢詫⑵淇刂屏鞒虉D簡化為一個(gè)單節(jié)點(diǎn),相反的,不良的代碼則會(huì)簡化為一個(gè)環(huán)狀結(jié)構(gòu)。

因此,軟件單元測試是一項(xiàng)有明確的測試方法指導(dǎo),并且具備充分性度量的標(biāo)準(zhǔn)的一項(xiàng)測試工作。在設(shè)定測試方法時(shí),可以根據(jù)待測軟件的質(zhì)量或安全要求級(jí)別,選取適合的測試方法組合。

在下一期“軟件單元測試真的有必要嗎?(下)”中,將深入探討單元測試過程中,如何在保質(zhì)保量完成測試任務(wù)的同時(shí),縮減時(shí)間成本、提高測試效率,并分享目前行業(yè)內(nèi)的實(shí)踐經(jīng)驗(yàn)以及相關(guān)自動(dòng)化測試工具。

審核編輯 黃宇


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

    關(guān)注

    0

    文章

    50

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    放置于方法名稱或框選完整的待測試方法代碼塊,右鍵選擇CodeGenie > Generate UT,開始生成單元測試用例。 說明 最多支持解讀20000字符以內(nèi)的代碼片段。ArkUI
    發(fā)表于 07-14 17:33

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

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

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

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

    單元測試:構(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%,但
    的頭像 發(fā)表于 04-24 10:47 ?177次閱讀

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

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

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

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

    馬達(dá)控制必要的知識(shí)

    (3) 控制理論 ;普拉普斯変換,伝達(dá)関數(shù)古典控制(比例積分控制),濾波器 (4) 電磁気學(xué) ;力矩発生原理 筆者至今作成的技術(shù)資料中最基礎(chǔ)的資料為 技術(shù) 0-1_馬達(dá)控制必要的知識(shí) 三角関數(shù)
    發(fā)表于 03-18 12:21

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

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

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

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

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

    設(shè)計(jì)和測試不充分密切相關(guān),這引發(fā)了社會(huì)各界對(duì)汽車軟件健壯性的重要性進(jìn)行深入思考。本文將探討汽車軟件測試,尤其是單元測試的重要性,以及Win
    的頭像 發(fā)表于 11-29 10:57 ?515次閱讀

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

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

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

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

    240W快充真的必要嗎

    綜上所述,PD3.1快充協(xié)議對(duì)我們是必要的。它不僅提升了充電功率和效率,還增加了多項(xiàng)實(shí)用功能,提高了充電的便利性和安全性。同時(shí),PD3.1協(xié)議也是推動(dòng)充電技術(shù)統(tǒng)一和標(biāo)準(zhǔn)化的重要步驟,對(duì)于促進(jìn)資源的合理利用和環(huán)境的保護(hù)也具有重要意義。
    的頭像 發(fā)表于 11-15 21:49 ?1300次閱讀
    240W快充<b class='flag-5'>真的</b><b class='flag-5'>有</b><b class='flag-5'>必要嗎</b>?

    符合ISO 26262的零部件級(jí)的軟件測試解決方案

    在零部件階段的測試包括:軟件單元測試、軟件集成測試、硬件集成測試、嵌入式
    的頭像 發(fā)表于 11-07 08:05 ?741次閱讀
    符合ISO 26262的零部件級(jí)的<b class='flag-5'>軟件</b><b class='flag-5'>測試</b>解決方案