有一種東西,
如果它太小,需要付出的努力就太大;如果它太大,就很難測(cè)試。
沒(méi)錯(cuò)!它是單元。
但是什么才是一個(gè)好的單元定義呢?為什么它如此重要?
單元的定義對(duì)測(cè)試過(guò)程有很大的影響,但同時(shí)單元的定義也是不精確的。如果以一種不恰當(dāng)?shù)姆绞蕉x單位,這可能意味著大量的努力甚至麻煩。術(shù)語(yǔ)“單元”的定義可見(jiàn)于ISO 26262、ISTQB、ASPICE和許多其他文件。
我們的結(jié)論是:單元是一個(gè)小的可測(cè)試的軟件組件。不幸的是,這種定義非常模糊。這樣的定義不是用于工具,而是用于評(píng)估和審計(jì)。因此,在大多數(shù)組織中,這個(gè)術(shù)語(yǔ)是單獨(dú)指定的。
定義術(shù)語(yǔ)“單元”有兩種方法:通用描述和體系結(jié)構(gòu)描述。
在通用描述中,單元將被定義為一個(gè)文件或一個(gè)函數(shù)。從特定的、體系結(jié)構(gòu)的角度來(lái)看,單元是軟件體系結(jié)構(gòu)中的一個(gè)元素。基于體系結(jié)構(gòu)的特定定義可以減少單元測(cè)試中測(cè)試對(duì)象的數(shù)量。以這種方式定義的單元可以包含多個(gè)文件中的多個(gè)函數(shù)。
這種方法不違反ISO 26262或ASPICE的要求。此外,如果體系結(jié)構(gòu)是自上向下開(kāi)發(fā)的,您可以將體系結(jié)構(gòu)的更高級(jí)別指定為純集成測(cè)試,從而也將減少單元測(cè)試級(jí)別的測(cè)試對(duì)象。在單元級(jí)別省略的測(cè)試會(huì)在之后的軟件集成測(cè)試(SWE.5)中執(zhí)行。
一些組織通過(guò)調(diào)整單元的定義來(lái)縮小他們自己的需求之間的差距。典型的補(bǔ)充包括:
更精確地定義單元,例如,在編程語(yǔ)言C中,將單元定義為函數(shù)級(jí)別的數(shù)據(jù)和指令的封裝,或者
為單元構(gòu)造過(guò)程提出要求,例如指定最大圈復(fù)雜度。
專(zhuān)業(yè)建議:對(duì)于具體項(xiàng)目來(lái)說(shuō),如果需求是好的,但太過(guò)籠統(tǒng)或太過(guò)嚴(yán)格,可以與客戶(hù)討論和協(xié)商,以定義一個(gè)一致的解決方案作為替代措施。這可以大大減少工作量。從風(fēng)險(xiǎn)的角度來(lái)看,定義單元的時(shí)間應(yīng)該越早越好。
TPT可以測(cè)試所有類(lèi)型的單元定義。從工具的角度來(lái)看,這并不是最重要的。為了將測(cè)試過(guò)程中產(chǎn)生的總工作量減少到最小,我們建議不要籠統(tǒng)地定義單元。這會(huì)為重構(gòu)活動(dòng)提供便利并減少額外的工作。
-
代碼
+關(guān)注
關(guān)注
30文章
4814瀏覽量
68849
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論