ISO26262如何保證軟件安全測試完整性
為了評估驗證的完整性并提供證據(jù)證明已有測試用例已充分實現(xiàn)相應測試目標,必須對測試完整性進行評估,這里就得提到結(jié)構(gòu)覆蓋率這個概念。
首先明確一點,這里的結(jié)構(gòu)覆蓋率不是指我們對百分之多少的測試用例或者需求進行了測試,這是屬于基于需求的測試覆蓋率,它和結(jié)構(gòu)覆蓋率有本質(zhì)區(qū)別。
結(jié)構(gòu)覆蓋率用于度量我們設計的測試用例在多大程度上可以覆蓋我們的代碼,包括代碼的語句,函數(shù),分支等等。因此,結(jié)構(gòu)覆蓋率又可以進一步分為:
語句覆蓋率:?用于統(tǒng)計每個代碼語句被測試用例執(zhí)行的比例
分支覆蓋率:?用于統(tǒng)計每個判定分支(即If...else等)被測試用例執(zhí)行的比例
函數(shù)覆蓋率:?用于統(tǒng)計代碼中所有函數(shù)被測試用例執(zhí)行的比例
調(diào)用覆蓋率:?用于統(tǒng)計每個函數(shù)調(diào)用端被測試用例執(zhí)行的比例
MC/DC(修改條件/判定覆蓋率): 這個比較復雜,我們單獨來講
其中,很多朋友搞不清函數(shù)覆蓋率和調(diào)用覆蓋率的區(qū)別,以及MC/DC意義,接下來我們結(jié)合實例重點來聊聊這兩部分內(nèi)容:?
1)?函數(shù)覆蓋率 vs. 調(diào)用覆蓋率
例如,對于測試對象:?
if A==1, then f1, f2, else if?(0),?then?f3,else, then f4,end?
其中,f1,f2,f4均被定義,f3定義不存在。
該情況下,由于elseif?(0),?函數(shù)f3永遠不會被執(zhí)行,所以函數(shù)調(diào)用覆蓋率為3/4=75%,但所有定義的函數(shù)均被執(zhí)行,所以函數(shù)覆蓋率為100%。
所以,函數(shù)覆蓋率多用于檢測未被調(diào)用的多余函數(shù),而調(diào)用覆蓋率用于檢測死代碼。
2)?MC/DC(修改條件/判定覆蓋率)
MC/DC是分支測試的進一步補充,適用于判定類代碼覆蓋檢測,它要求較為復雜:?
在一個程序中每一種所有可能的輸入和輸出至少出現(xiàn)一次。
每一個判定中的每一個條件必須能夠獨立影響判定輸出,即在其他條件不變的前提下,僅改變條件中一個值,而使判定結(jié)果改變。
什么意思呢,我們來看個實例。例如,對于測試對象:?
if?A and?(B or?C), then? else,?end
理論上,對于三個輸入判定條件(A, B, C),一共存在8種測試Case,為實現(xiàn)MC/DC全覆蓋,其實只需要以下4個測試用例,即Case1 - 4,就能使得A,B,C輸入和判定輸出結(jié)果true和false都出現(xiàn)一次,且只要A,B,C一個條件值發(fā)生改變,就會最終判定結(jié)果發(fā)生變化。

所以,MC/DC較復雜,但錯誤檢出率高,適合那些大型的并且要求測試非常精確的軟件測試。
為保證軟件安全測試完整性,ISO 26262-6:2018還對軟件單元,集成軟件的測試覆蓋率進行相應要求,具體包括:?


可以看出,軟件單元層面結(jié)構(gòu)覆蓋率多基于語句,分支等最基本的代碼組成部分測試,而集成后的軟件架構(gòu)層級的結(jié)構(gòu)覆蓋率多基于函數(shù),其層級更高。二者逐步遞進,可以有效評估軟件安全測試的完整性和充分性。
需要注意的是:
1、結(jié)構(gòu)覆蓋率不需要一味追求100%,高結(jié)構(gòu)覆蓋率并不完全說明代碼已經(jīng)進行高質(zhì)量充分測試,它只說明哪些代碼沒有被測試用例有效執(zhí)行。
2、結(jié)構(gòu)覆蓋率測試可以幫我們反推前期測試用例設計是否充分,是否存在盲點,哪些地方需要進行補充,增加測試完整性。
3、結(jié)構(gòu)覆蓋率測試并不能解決軟件事先沒有考慮到的情形及功能不足。
華菱咨詢成立至今,我們的咨詢師團隊已經(jīng)為5000多家企事業(yè)單位提供各項咨詢及培訓服務,并獲得了客戶及業(yè)界的一致好評,歡迎您選擇、體驗華菱咨詢的優(yōu)質(zhì)服務。
經(jīng)過20多年的發(fā)展與實踐沉淀,華菱咨詢將利用深厚的行業(yè)知識,幫助客戶把握新機遇,評估和管理風險,以實現(xiàn)負責任的增長。華菱咨詢高績效的跨學科團隊可幫助客戶滿足監(jiān)管要求,確保客戶及時了解信息并滿足利益相關者的需求。華菱咨詢將為客戶提供全面的端到端的服務,利用技術(shù)的進步真正推動業(yè)務的發(fā)展。
版權(quán)聲明:
1.本公眾號所發(fā)布內(nèi)容,凡未注明“原創(chuàng)”等字樣的均來源于網(wǎng)絡善意轉(zhuǎn)載,版權(quán)歸原作者所有!
2.除本平臺獨家和原創(chuàng),其他內(nèi)容非本平臺立場,不構(gòu)成投資建議。
3.如千辛萬苦未找到原作者或原始出處,請理解并聯(lián)系我們。
4.文中部分圖片源于網(wǎng)絡。
5.本公眾號發(fā)布此文出于傳播消息之目的,如有侵權(quán),聯(lián)系刪除。
華菱咨詢深圳官網(wǎng):http://www.hlemc-sz.com/
華菱咨詢蘇州官網(wǎng):http://www.hlemc.com/
若還有其他問題,可直接在平臺私信聯(lián)系我們,我們會第一時間與您取得聯(lián)系,感謝支持。