在軟件測(cè)試領(lǐng)域,MC/DC或許已經(jīng)是一個(gè)耳熟能詳?shù)脑~匯了,但是我們還是要不斷強(qiáng)調(diào)如何正確使用MC/DC以及它與安全相關(guān)的重要作用。
在測(cè)試中,想要對(duì)所有變量進(jìn)行100%的測(cè)試幾乎是不可能的。有限的時(shí)間和資本成本也決定了測(cè)試人員無(wú)法對(duì)軟件進(jìn)行徹底完盡的測(cè)試。但是,測(cè)試是為軟件質(zhì)量保駕護(hù)航的關(guān)鍵,不可或缺。所以對(duì)測(cè)試人員的挑戰(zhàn)就在于如何合理的分配測(cè)試資源以及最優(yōu)化地使用這些資源。選擇一個(gè)“完成標(biāo)準(zhǔn)”并據(jù)此對(duì)測(cè)試目標(biāo)進(jìn)行計(jì)劃和優(yōu)先排序,這可能是一個(gè)測(cè)試團(tuán)隊(duì)成功與否的關(guān)鍵所在。
測(cè)試計(jì)劃是基于測(cè)試目標(biāo)來(lái)制定的,可以有不同的顆粒度。首先,針對(duì)測(cè)試組織給出的一般定義開(kāi)始制定計(jì)劃,對(duì)每個(gè)測(cè)試層級(jí)上的測(cè)試對(duì)象以及每次發(fā)布的內(nèi)容都給出詳細(xì)的信息。本質(zhì)上來(lái)講,對(duì)測(cè)試目標(biāo)的定義就隱含了衡量信息,從而決定了哪些內(nèi)容應(yīng)該測(cè)試,哪些內(nèi)容無(wú)需測(cè)試。產(chǎn)品的開(kāi)發(fā)階段和邊界條件會(huì)最大程度地影響測(cè)試目標(biāo)的制定。
同時(shí),測(cè)試也要符合安全標(biāo)準(zhǔn)。在軟件測(cè)試中,標(biāo)準(zhǔn)是非常重要的,尤其在安全相關(guān)的產(chǎn)品測(cè)試中。這些標(biāo)準(zhǔn)對(duì)安全相關(guān)產(chǎn)品的驗(yàn)證提出了很高的要求。IS026262-6中指出,需求覆蓋度和結(jié)構(gòu)覆蓋度都必須由恰當(dāng)?shù)母采w度量來(lái)測(cè)量。這也可以視作是對(duì)驗(yàn)證完整性的評(píng)估。對(duì)最高安全等級(jí)(ASIL-D)的軟件來(lái)說(shuō),單元級(jí)的MC/DC(修正條件/判定覆蓋)是強(qiáng)烈推薦的。
有些人可能會(huì)因此認(rèn)為MD/DC就是測(cè)試目標(biāo)。實(shí)則非也。測(cè)試目標(biāo)的定義是驗(yàn)證被測(cè)軟件的屬性。被測(cè)單元正確的功能性應(yīng)該是測(cè)試的首要目標(biāo)。MC/DC僅僅展示了是否所有的判定和條件都能通過(guò)測(cè)試,并不能用來(lái)驗(yàn)證系統(tǒng)是否正確無(wú)誤的運(yùn)行。因此,覆蓋度是不能作為測(cè)試目標(biāo)的。
一般來(lái)說(shuō),覆蓋度量只能作為測(cè)試完成的標(biāo)準(zhǔn)。測(cè)試完成的標(biāo)準(zhǔn)指被測(cè)系統(tǒng)在何時(shí)被認(rèn)為是充分測(cè)試的。測(cè)試目標(biāo)和測(cè)試完成標(biāo)準(zhǔn)都在測(cè)試概念中有明確的定義。建議測(cè)試人員們?cè)诿看伟姹镜l(fā)布時(shí)更新測(cè)試概念,以明確具體實(shí)施中的變化及其可能帶來(lái)的影響。
如何提高M(jìn)C/DC測(cè)試效率?
首先,定義基于需求的測(cè)試用例。將需求表示為用例和使用需求,例如邊界值的考慮或者等價(jià)類(lèi)的構(gòu)建。這會(huì)幫助測(cè)試人員驗(yàn)證被測(cè)軟件是否具備理想中的完整功能。這會(huì)幫工作人員開(kāi)個(gè)好頭。通過(guò)測(cè)量代碼覆蓋度,測(cè)試人員可能會(huì)發(fā)現(xiàn)尚未測(cè)試的漏洞,并據(jù)此編寫(xiě)相應(yīng)的測(cè)試用例。
覆蓋度的目標(biāo)值是100%。ISO26262要求對(duì)那些未達(dá)到100%的情況做出解釋。如果測(cè)試項(xiàng)目中包含一些測(cè)試不到的部分,例如用于調(diào)試的部分或者并行軟件的配置。我們建議直接在報(bào)告中闡述覆蓋度降低的原因,而不是在測(cè)試之前預(yù)先設(shè)置一個(gè)較低的覆蓋度目標(biāo)值。這樣能提高整體測(cè)試效率,因?yàn)闇y(cè)試人員無(wú)需在每次改變測(cè)試單元時(shí)通過(guò)復(fù)雜的計(jì)算重新檢查和調(diào)整那些需要減少的覆蓋度值。
如果通過(guò)上述方法測(cè)試卻沒(méi)有達(dá)到100%的覆蓋度,可能是由于以下幾個(gè)原因:
1. 需求缺失或不完整
2. 測(cè)試用例不夠
3. 測(cè)試用例識(shí)別了無(wú)效的、不可訪(fǎng)問(wèn)的或禁用的代碼,或者非預(yù)期的功能
因?yàn)镮SO26262要求對(duì)每一個(gè)偏差值都做出合理解釋?zhuān)瑢?duì)相關(guān)部分的代碼進(jìn)行可視化能夠幫助測(cè)試人員快速找出導(dǎo)致問(wèn)題的原因。(見(jiàn)圖1)
測(cè)試往往取決于需求的質(zhì)量以及軟件的設(shè)計(jì)和所選的架構(gòu)。為了使測(cè)試工作盡可能高效,建議測(cè)試人員了解軟件架構(gòu)和軟件設(shè)計(jì)對(duì)測(cè)試過(guò)程的影響,以選擇合適的架構(gòu)和設(shè)計(jì)模式。
因此,測(cè)試過(guò)程中與軟件架構(gòu)和設(shè)計(jì)人員的溝通也很重要。軟件架構(gòu)師和設(shè)計(jì)師是縱觀(guān)整個(gè)軟件產(chǎn)品的生命周期,并有機(jī)會(huì)通過(guò)重組和分離對(duì)軟件發(fā)布產(chǎn)生重大影響的人。
TPT與MC/DC
北匯信息和Piketec希望幫助客戶(hù)輕松快速地滿(mǎn)足所需的指標(biāo)。為了實(shí)現(xiàn)這一目標(biāo),我們將在TPT 18中增加了兩個(gè)MC/DC新功能:
1.測(cè)量C/C++和Simulink的MC/DC覆蓋率;
2.使用TPT自動(dòng)生成測(cè)試用例:通過(guò)這種方式,用戶(hù)可以快速且輕松地將覆蓋率提高到100%。
我們對(duì)算法進(jìn)行了調(diào)整,用盡可能少的測(cè)試用例來(lái)做MC/DC測(cè)試。無(wú)需自己創(chuàng)建測(cè)試用例,只需要執(zhí)行和維護(hù)最小數(shù)量的測(cè)試用例即可,也不需要購(gòu)買(mǎi)額外的測(cè)量工具來(lái)確定覆蓋率,將為客戶(hù)節(jié)省大量的時(shí)間和資金成本。
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5103瀏覽量
126340
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論