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