有一種東西,
如果它太小,需要付出的努力就太大;如果它太大,就很難測試。
沒錯!它是單元。
但是什么才是一個好的單元定義呢?為什么它如此重要?
單元的定義對測試過程有很大的影響,但同時單元的定義也是不精確的。如果以一種不恰當(dāng)?shù)姆绞蕉x單位,這可能意味著大量的努力甚至麻煩。術(shù)語“單元”的定義可見于ISO 26262、ISTQB、ASPICE和許多其他文件。
我們的結(jié)論是:單元是一個小的可測試的軟件組件。不幸的是,這種定義非常模糊。這樣的定義不是用于工具,而是用于評估和審計。因此,在大多數(shù)組織中,這個術(shù)語是單獨指定的。
定義術(shù)語“單元”有兩種方法:通用描述和體系結(jié)構(gòu)描述。

在通用描述中,單元將被定義為一個文件或一個函數(shù)。從特定的、體系結(jié)構(gòu)的角度來看,單元是軟件體系結(jié)構(gòu)中的一個元素?;隗w系結(jié)構(gòu)的特定定義可以減少單元測試中測試對象的數(shù)量。以這種方式定義的單元可以包含多個文件中的多個函數(shù)。
這種方法不違反ISO 26262或ASPICE的要求。此外,如果體系結(jié)構(gòu)是自上向下開發(fā)的,您可以將體系結(jié)構(gòu)的更高級別指定為純集成測試,從而也將減少單元測試級別的測試對象。在單元級別省略的測試會在之后的軟件集成測試(SWE.5)中執(zhí)行。
一些組織通過調(diào)整單元的定義來縮小他們自己的需求之間的差距。典型的補充包括:
更精確地定義單元,例如,在編程語言C中,將單元定義為函數(shù)級別的數(shù)據(jù)和指令的封裝,或者
為單元構(gòu)造過程提出要求,例如指定最大圈復(fù)雜度。
專業(yè)建議:對于具體項目來說,如果需求是好的,但太過籠統(tǒng)或太過嚴(yán)格,可以與客戶討論和協(xié)商,以定義一個一致的解決方案作為替代措施。這可以大大減少工作量。從風(fēng)險的角度來看,定義單元的時間應(yīng)該越早越好。
TPT可以測試所有類型的單元定義。從工具的角度來看,這并不是最重要的。為了將測試過程中產(chǎn)生的總工作量減少到最小,我們建議不要籠統(tǒng)地定義單元。這會為重構(gòu)活動提供便利并減少額外的工作。
-
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70794
發(fā)布評論請先 登錄
HarmonyOS AI輔助編程工具(CodeGenie)代碼測試

新能源車軟件單元測試深度解析:自動駕駛系統(tǒng)視角
新能源車背后的隱形守護者:軟件單元測試的生死較量?
單元測試在嵌入式軟件中的關(guān)鍵作用及winAMS工具的卓越貢獻
PCS老化測試是否會產(chǎn)生磁場?
嵌入式軟件單元測試的必要性、核心方法及工具深度解析
嵌入式系統(tǒng)開發(fā)中的測試方法 嵌入式系統(tǒng)開發(fā)與AI結(jié)合應(yīng)用
開發(fā)者必讀!CircleCI?組件測試與單元測試全解析
汽車軟件單元測試的重要性
嚴(yán)格的單元測試造就完美的軟件

嵌入軟件單元/集成測試工具專業(yè)分析
Linux內(nèi)核測試技術(shù)

評論