翻譯|行業(yè)資訊|編輯:胡濤|2024-03-04 11:40:54.560|閱讀 87 次
概述:開(kāi)發(fā)安全關(guān)鍵軟件的成本很高。然而,可以通過(guò)軟件的自動(dòng)化和左移測(cè)試來(lái)減少錯(cuò)誤率,一起來(lái)看如何改善~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
我們正面臨安全關(guān)鍵軟件的成本危機(jī),這意味著所需增加的功能已經(jīng)超出了支付其開(kāi)發(fā)費(fèi)用的能力。例如,波音 787 項(xiàng)目需要 650 萬(wàn)行代碼,設(shè)計(jì)、開(kāi)發(fā)和測(cè)試成本達(dá) 40 億美元。波音777X項(xiàng)目的成本數(shù)字并未公開(kāi)披露,波音737 MAX最初估計(jì)為36億美元,但后來(lái)升至63億美元,這還不包括數(shù)十億美元的故障成本。
重大安全關(guān)鍵項(xiàng)目的趨勢(shì)顯示總成本呈指數(shù)增長(zhǎng),軟件在總開(kāi)發(fā)預(yù)算中所占比例逐年增加。使用先前項(xiàng)目中使用的相同技術(shù),下一個(gè)大型航空航天項(xiàng)目可能無(wú)法負(fù)擔(dān)。所以,我們能做些什么?
安全認(rèn)證以及所需的測(cè)試和驗(yàn)證占軟件開(kāi)發(fā)預(yù)算的很大一部分。軟件的左移測(cè)試(在 SDLC 的早期進(jìn)行測(cè)試)在利用自動(dòng)化的同時(shí),在成本、風(fēng)險(xiǎn)和進(jìn)度方面帶來(lái)了巨大的回報(bào)。下圖顯示了商業(yè)航空公司軟件開(kāi)發(fā)每千行代碼的成本為數(shù)百萬(wàn)美元,這清楚地顯示了指數(shù)級(jí)增長(zhǎng)。
毫不奇怪,大多數(shù)缺陷都是在項(xiàng)目一開(kāi)始就被引入的,甚至是在編寫(xiě)第一行代碼之前。大多數(shù)錯(cuò)誤都是在測(cè)試期間發(fā)現(xiàn)并修復(fù)的。但有相當(dāng)一部分(高達(dá) 20%)是在產(chǎn)品銷(xiāo)售和運(yùn)輸后的運(yùn)營(yíng)過(guò)程中發(fā)現(xiàn)的。
在經(jīng)過(guò)認(rèn)證的系統(tǒng)中,這要么意味著極其昂貴的修復(fù)-測(cè)試-重新認(rèn)證周期,要么意味著操作員需要解決問(wèn)題。下圖顯示了軟件開(kāi)發(fā)生命周期每個(gè)階段引入和檢測(cè)到的錯(cuò)誤的相對(duì)百分比。
在生命周期的早期修復(fù)缺陷是最便宜的。在項(xiàng)目期間,查找和修復(fù)這些問(wèn)題的成本會(huì)成倍增加。在操作中,產(chǎn)品交付到客戶(hù)手中后,修復(fù)成本最高。部署后缺陷修復(fù)成本是保守的,不包括對(duì)您的品牌的損害以及現(xiàn)場(chǎng)安全事件的責(zé)任。
下圖顯示了在生命周期的每個(gè)階段修復(fù)缺陷的相對(duì)成本。顯然,目標(biāo)是將檢測(cè)到并修復(fù)的缺陷移至生命周期的早期。換句話(huà)說(shuō),左移。此外,希望減少交付給客戶(hù)的缺陷數(shù)量,這在每個(gè)領(lǐng)域都是現(xiàn)實(shí)。
安全關(guān)鍵的軟件行業(yè)認(rèn)識(shí)到需要改變工作方式。太多的項(xiàng)目都在重新發(fā)明輪子,而認(rèn)證全新的軟件既耗時(shí)又昂貴。新產(chǎn)品的連接性和功能性的增長(zhǎng)意味著方法需要改變。在這篇文章中,我們不會(huì)涵蓋所提出的所有技術(shù),而是集中討論測(cè)試自動(dòng)化在減少、檢測(cè)和修復(fù)缺陷和安全漏洞方面所扮演的角色。
測(cè)試自動(dòng)化的優(yōu)點(diǎn)
任何安全關(guān)鍵項(xiàng)目的很大一部分都是測(cè)試。自動(dòng)化對(duì)于實(shí)現(xiàn)安全、保障和質(zhì)量目標(biāo)是絕對(duì)必要的。以下是測(cè)試自動(dòng)化工具如何支持現(xiàn)代軟件開(kāi)發(fā)方法并提高測(cè)試和文檔生產(chǎn)力的示例。
支持敏捷和 CI/CD 管道
瀑布方法的問(wèn)題已被理解,許多團(tuán)隊(duì)正在使用更現(xiàn)代的開(kāi)發(fā)方法來(lái)提高質(zhì)量和安全性。測(cè)試自動(dòng)化是任何迭代開(kāi)發(fā)方法的重要組成部分,因?yàn)闇y(cè)試套件在模塊、組件等的每次新迭代上運(yùn)行。
測(cè)試自動(dòng)化通過(guò)可重復(fù)的自動(dòng)化測(cè)試支持這些方法,為每個(gè)測(cè)試提供不同級(jí)別的報(bào)告,而且隨著時(shí)間的推移提供累積結(jié)果。這些工具還旨在通過(guò)與工作項(xiàng)跟蹤、需求管理、構(gòu)建系統(tǒng)和源存儲(chǔ)庫(kù)服務(wù)集成來(lái)與 CI 流程配合使用。動(dòng)態(tài)分析工具對(duì)于檢測(cè)難以檢測(cè)的運(yùn)行時(shí)錯(cuò)誤至關(guān)重要。靜態(tài)分析在測(cè)試開(kāi)始前檢測(cè)缺陷方面發(fā)揮著重要作用。
支持軟件檢查
在開(kāi)發(fā)生命周期早期消除缺陷的最佳實(shí)踐之一是檢查。檢查意味著審查所有內(nèi)容,而不僅僅是源代碼。例如,檢查需求和設(shè)計(jì)對(duì)于防止系統(tǒng)中錯(cuò)誤的主要來(lái)源至關(guān)重要。請(qǐng)參見(jiàn)圖 2。許多錯(cuò)誤實(shí)際上是被設(shè)計(jì)到系統(tǒng)中的。工具在此階段發(fā)揮的作用較小,但確實(shí)提高了代碼審查的有效性。
自動(dòng)化單元測(cè)試、動(dòng)態(tài)錯(cuò)誤檢測(cè)和靜態(tài)分析大大改進(jìn)了項(xiàng)目早期編碼階段的錯(cuò)誤檢測(cè)。自動(dòng)化測(cè)試的結(jié)果可以在代碼審查中呈現(xiàn),從而減少對(duì)手動(dòng)錯(cuò)誤檢測(cè)的依賴(lài),并留出更多時(shí)間來(lái)檢測(cè)不正確的需求和設(shè)計(jì)決策。
提高測(cè)試效率
手動(dòng)測(cè)試非常繁瑣且可重復(fù)性較差。結(jié)果收集可以是臨時(shí)的,盡管結(jié)果是“正確的”,但也可能會(huì)錯(cuò)過(guò)錯(cuò)誤。實(shí)現(xiàn)所需的代碼覆蓋率(根據(jù)安全標(biāo)準(zhǔn)和項(xiàng)目的關(guān)鍵性而變化)很難跟蹤。
測(cè)試自動(dòng)化不僅使測(cè)試變得不再那么繁瑣和可重復(fù),而且高級(jí)測(cè)試工具的報(bào)告功能可以創(chuàng)建有關(guān)項(xiàng)目狀態(tài)的重要管理信息。添加動(dòng)態(tài)分析(在運(yùn)行時(shí)分析代碼以檢測(cè)棘手的運(yùn)行時(shí)錯(cuò)誤)和靜態(tài)分析(在運(yùn)行前分析代碼)大大提高了測(cè)試工具的錯(cuò)誤檢測(cè)能力。
自動(dòng)遵守編碼標(biāo)準(zhǔn)
許多安全關(guān)鍵項(xiàng)目需要源代碼標(biāo)準(zhǔn)。例如,MISRA 在汽車(chē)軟件中很常見(jiàn),但在其他行業(yè)也得到了認(rèn)可。某些標(biāo)準(zhǔn)要求代碼符合滿(mǎn)足特定目標(biāo)的公司標(biāo)準(zhǔn)。在每種情況下,手動(dòng)強(qiáng)制執(zhí)行編碼合規(guī)性都是乏味且容易出錯(cuò)的。靜態(tài)分析工具是強(qiáng)制合規(guī)性的理想工具,而高級(jí)工具則可以進(jìn)一步檢測(cè)超出格式違規(guī)范圍的錯(cuò)誤。
自動(dòng)化認(rèn)證文檔
實(shí)現(xiàn)軟件安全認(rèn)證的很大一部分工作量是記錄流程、驗(yàn)證和驗(yàn)證。測(cè)試自動(dòng)化顯著降低了記錄測(cè)試結(jié)果和覆蓋率分析的成本。
加速遺留軟件的重用
提高生產(chǎn)力的一個(gè)關(guān)鍵策略是重用軟件。理想情況下,可以使用已經(jīng)認(rèn)證的組件來(lái)降低這些子單元的開(kāi)發(fā)成本。使用靜態(tài)和動(dòng)態(tài)分析工具自動(dòng)評(píng)估遺留軟件可以降低使用這些組件的風(fēng)險(xiǎn)。
提高質(zhì)量、安全和保障
即使嚴(yán)格的測(cè)試方案也可能會(huì)遺漏嚴(yán)重錯(cuò)誤。例如,僅代碼覆蓋率不足以確保在安全攻擊或多線(xiàn)程代碼的情況下正確的行為。靜態(tài)分析工具可以在不運(yùn)行特定測(cè)試的情況下檢測(cè)源代碼中的錯(cuò)誤,并且可以發(fā)現(xiàn)在單元或系統(tǒng)測(cè)試中難以發(fā)現(xiàn)的錯(cuò)誤,例如安全漏洞。
動(dòng)態(tài)分析工具可以檢測(cè)測(cè)試期間運(yùn)行代碼中可能反映在測(cè)試結(jié)果中的錯(cuò)誤,例如緩慢的內(nèi)存泄漏。系統(tǒng)測(cè)試期間的模糊測(cè)試和滲透測(cè)試可以發(fā)現(xiàn)正常操作條件下遺漏的錯(cuò)誤。總的來(lái)說(shuō),最先進(jìn)的工具發(fā)現(xiàn)的額外缺陷和安全漏洞有助于降低成本、風(fēng)險(xiǎn)以及投入生產(chǎn)的 20% 左右的錯(cuò)誤。
很明顯,必須采取一些措施來(lái)解決圖 2 中清楚顯示的問(wèn)題。在生命周期開(kāi)始時(shí)引入了太多缺陷并且未被發(fā)現(xiàn)。當(dāng)產(chǎn)品被制造出來(lái)并在客戶(hù)手中時(shí),或者在飛機(jī)或汽車(chē)中(視情況而定)中,有太多的殘留物。采用現(xiàn)代開(kāi)發(fā)方法、重用組件、利用 COTS 和開(kāi)源以及工具自動(dòng)化都是提高開(kāi)發(fā)效率的關(guān)鍵步驟。
假設(shè)開(kāi)發(fā)過(guò)程使用最先進(jìn)的工具,其中測(cè)試向左移動(dòng),并且在生命周期的早期檢測(cè)到并修復(fù)更多缺陷,那么單元測(cè)試非常有效,有助于減少進(jìn)入生產(chǎn)的錯(cuò)誤。在圖 4 中,一個(gè)假設(shè)的示例顯示了生命周期中缺陷檢測(cè)的變化,其中大部分缺陷檢測(cè)和修復(fù)在生命周期的早期移至左側(cè)。
從上面的圖3我們知道,在開(kāi)發(fā)的每個(gè)階段成本都會(huì)顯著上升。下面的圖 5 顯示了傳統(tǒng)方法與圖 4 中所示的現(xiàn)代方法修復(fù)缺陷的成本比較。將發(fā)現(xiàn)和修復(fù)錯(cuò)誤移到左側(cè),比稍后修復(fù)它們的成本要低。在此所示的情況下,總體成本差異約為 40%,有利于左移方法。
在安全關(guān)鍵項(xiàng)目中使用自動(dòng)化工具需要對(duì)工具本身的信任。產(chǎn)品制造商有責(zé)任確信用于創(chuàng)建軟件的流程和工具滿(mǎn)足標(biāo)準(zhǔn)的要求。工具供應(yīng)商可以通過(guò)在將工具出售給制造商之前讓工具經(jīng)過(guò)安全標(biāo)準(zhǔn)機(jī)構(gòu)的認(rèn)證來(lái)幫助解決這一問(wèn)題,或者在無(wú)法進(jìn)行此類(lèi)預(yù)先認(rèn)證的情況下,提供資格協(xié)助。然后,他們可以在自己提交的認(rèn)證中使用工具供應(yīng)商的認(rèn)證證據(jù),并減少所需的工作量。例如,Parasoft C/C++test已獲得 TüV SüD 認(rèn)證,具有根據(jù) IEC 61508 和 ISO 26262 標(biāo)準(zhǔn)進(jìn)行安全相關(guān)軟件開(kāi)發(fā)的資格。
在某些軟件安全標(biāo)準(zhǔn)(例如 DO-178C)中,認(rèn)證是在系統(tǒng)級(jí)別完成的,并且各個(gè)工具和軟件不是獨(dú)立認(rèn)證的。在這些情況下,該工具的供應(yīng)商會(huì)提供資格認(rèn)證套件以及文檔和專(zhuān)業(yè)服務(wù)方面的幫助,從而大大減少了對(duì)項(xiàng)目中使用的工具進(jìn)行資格認(rèn)證所需的成本和工作量。
安全關(guān)鍵軟件無(wú)疑面臨成本危機(jī)。新的大型安全關(guān)鍵項(xiàng)目的開(kāi)發(fā)成本變得過(guò)于昂貴,甚至可能無(wú)法盈利。開(kāi)發(fā)安全關(guān)鍵型軟件需要現(xiàn)代方法,并且必須減少在軟件開(kāi)發(fā)生命周期后期發(fā)現(xiàn)的錯(cuò)誤數(shù)量。向左移動(dòng),在生命周期中盡早檢測(cè)和修復(fù)缺陷和安全漏洞可以顯著降低成本。測(cè)試自動(dòng)化在提高測(cè)試效率和結(jié)果方面發(fā)揮著關(guān)鍵作用。它是現(xiàn)代安全關(guān)鍵軟件開(kāi)發(fā)方法的重要組成部分。
如果您目前不是Parasoft C/C++test用戶(hù),但希望通過(guò)C/C++test 2023.2,為C、C++開(kāi)發(fā)人員賦能,歡迎聯(lián)系我們。了解更多有關(guān)Parasoft產(chǎn)品咨詢(xún),歡迎咨詢(xún)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn