丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

如何入門(mén)靜態(tài)分析,還不會(huì)給團(tuán)隊(duì)帶來(lái)壓力?Parasoft教你一招

如果您最初沒(méi)有花些時(shí)間來(lái)確保已經(jīng)確定了為項(xiàng)目采取的正確策略,那么開(kāi)始入門(mén)的話可能會(huì)非常棘手。

假設(shè)您的靜態(tài)分析工具已經(jīng)安裝,并且已經(jīng)設(shè)置好了初始配置。在那之后,如果您一開(kāi)始沒(méi)有花些時(shí)間確保已經(jīng)確定好了為項(xiàng)目采取的正確策略,那么入門(mén)就可能會(huì)非常麻煩。在這里,我所說(shuō)的“入門(mén)”是指更好地理解將靜態(tài)分析集成到現(xiàn)有項(xiàng)目中的一般方法,以及如何提高靜態(tài)分析隨時(shí)間的投資回報(bào)。

什么是靜態(tài)分析?

簡(jiǎn)單來(lái)說(shuō),靜態(tài)分析是在不執(zhí)行的情況下檢查源代碼和二進(jìn)制代碼的過(guò)程,通常用于查找錯(cuò)誤或評(píng)估質(zhì)量。與需要運(yùn)行程序的動(dòng)態(tài)分析(例如Parasoft Insure ++)不同,靜態(tài)分析可以在源代碼上運(yùn)行而無(wú)需可執(zhí)行文件。

這意味著靜態(tài)分析可用于部分完整的代碼,庫(kù)和第三方源代碼。開(kāi)發(fā)人員可以訪問(wèn)靜態(tài)分析,用于編寫(xiě)或修改代碼,或者應(yīng)用于任意代碼庫(kù)。

支持安全的靜態(tài)分析

在應(yīng)用程序安全域中,靜態(tài)代碼分析采用靜態(tài)應(yīng)用程序安全性測(cè)試(SAST)。靜態(tài)分析可以支持安全漏洞檢測(cè),以及錯(cuò)誤檢測(cè),質(zhì)量指標(biāo)和編碼標(biāo)準(zhǔn)一致性。

靜態(tài)分析,支持功能安全和編碼標(biāo)準(zhǔn)

靜態(tài)分析工具也被強(qiáng)制性安全標(biāo)準(zhǔn)(如ISO 26262或EN 50128)強(qiáng)制要求(或在某些情況下可理解為“強(qiáng)烈推薦”),因?yàn)樗鼈兡軌驒z測(cè)難以發(fā)現(xiàn)的缺陷并提高軟件的安全性。當(dāng)然,靜態(tài)分析工具還可以幫助軟件團(tuán)隊(duì)遵守主要用于驗(yàn)證安全編碼的編碼標(biāo)準(zhǔn),例如CERT甚至MISRA。

將靜態(tài)分析引入您的項(xiàng)目

靜態(tài)分析工具的一個(gè)優(yōu)點(diǎn)是它們可以在項(xiàng)目的任何階段引入和使用,即使項(xiàng)目不完整和部分編碼也是有效的。引入靜態(tài)分析的最大挑戰(zhàn)是大量代碼會(huì)產(chǎn)生大量警告。因此,將靜態(tài)分析集成到項(xiàng)目中時(shí)的重點(diǎn)應(yīng)該是盡快使團(tuán)隊(duì)高效工作,并最大限度地減少團(tuán)隊(duì)被所有靜態(tài)分析警告所淹沒(méi)機(jī)會(huì)的概率。這并不是為了降低這些警告的重要性,但大多數(shù)開(kāi)發(fā)人員沒(méi)有奢侈地修復(fù)現(xiàn)有或遺留代碼,至少不是立即修復(fù)。

重點(diǎn)應(yīng)該是將工具集成到日常流程中,以便最大限度地提高訪問(wèn)和可用性,然后處理最關(guān)鍵的錯(cuò)誤和安全漏洞。一旦團(tuán)隊(duì)變得更加熟練,您就可以專注于優(yōu)化工具和流程,以提高投資回報(bào)。

從確定最終目標(biāo)開(kāi)始

為了充分利用靜態(tài)分析,了解最終目標(biāo)非常重要。例如,如果目標(biāo)是更好的安全性,那將決定分析和補(bǔ)救的重點(diǎn),或者如果目標(biāo)是遵守MISRA C等編碼標(biāo)準(zhǔn),那么重點(diǎn)將變得滿足編碼標(biāo)準(zhǔn),并根據(jù)需要向認(rèn)證實(shí)體證明。

當(dāng)?shù)谝淮尾捎渺o態(tài)分析時(shí),很容易陷入更大的陷阱(即更多分析和更多警告意味著您從工具中獲得最大價(jià)值)。這是一個(gè)常見(jiàn)的陷阱。相反,請(qǐng)始終專注于最終目標(biāo)。

如果以安全為重點(diǎn),請(qǐng)將重點(diǎn)放在提高安全性和減少其他類型警告的注意力上。當(dāng)然,關(guān)鍵錯(cuò)誤很重要,但它們不應(yīng)該分散您對(duì)于主要目標(biāo)的注意力。隨著時(shí)間的推移,隨著團(tuán)隊(duì)變得更加熟練,您將能夠納入其他次要目標(biāo),例如提高整體質(zhì)量或?qū)嵤┚幋a標(biāo)準(zhǔn)。隨著靜態(tài)分析成為每個(gè)開(kāi)發(fā)人員日常工作的一部分,他們將能夠更快地分析結(jié)果并更有效地修復(fù)錯(cuò)誤。在這個(gè)時(shí)候,將更有效地實(shí)現(xiàn)次要目標(biāo)。

在產(chǎn)品成熟度的每個(gè)階段引入靜態(tài)分析的策略

一旦了解了您要關(guān)注的主要目標(biāo),就需要確定正在開(kāi)發(fā)的產(chǎn)品的成熟度,因?yàn)樗鼤?huì)影響靜態(tài)分析的采用方式??紤]下面的主要開(kāi)發(fā)階段,并確定您的項(xiàng)目適合的位置,以便您了解哪種采用方法最適合您。

現(xiàn)有項(xiàng)目 - 當(dāng)前發(fā)展

最常見(jiàn)的情況是軟件組織決定使用靜態(tài)分析,并將其推廣到當(dāng)前項(xiàng)目。

每個(gè)項(xiàng)目都可以選擇在sprint開(kāi)始時(shí)或在主要新功能更新開(kāi)始時(shí)采用這些工具。實(shí)際上,軟件團(tuán)隊(duì)總是在工作 - 即使一個(gè)產(chǎn)品“完成”,另一個(gè)版本或變體正在進(jìn)行中。這種采用方案的關(guān)鍵方面是每天都有大量現(xiàn)有代碼和新代碼。推薦的集成方法被稱為“一條界限”方法,這意味著在開(kāi)發(fā)新代碼時(shí)將其改進(jìn),同時(shí)將不太重要的警告作為技術(shù)債務(wù)推遲。我們馬上談?wù)勥@個(gè)問(wèn)題。

現(xiàn)有項(xiàng)目 - 維護(hù)市場(chǎng)上的產(chǎn)品

對(duì)成熟產(chǎn)品采用靜態(tài)分析可能與仍在開(kāi)發(fā)中的項(xiàng)目有不同的目標(biāo)。這是一個(gè)處于軟件開(kāi)發(fā)生命周期的長(zhǎng)年中的產(chǎn)品,其中編寫(xiě)的新代碼很少,只能修復(fù)揮之不去的錯(cuò)誤和安全漏洞。對(duì)這些項(xiàng)目采用靜態(tài)分析的主要方法稱為“確認(rèn)和推遲”。在這種方法中,由于開(kāi)發(fā)的新代碼很少,所有發(fā)現(xiàn)的錯(cuò)誤和安全漏洞都會(huì)被添加到現(xiàn)有的技術(shù)債務(wù)中。

綠地項(xiàng)目(未開(kāi)發(fā)的新項(xiàng)目)

雖然軟件團(tuán)隊(duì)通常不會(huì)重新開(kāi)始,但新產(chǎn)品和項(xiàng)目是將新工具和技術(shù)集成到開(kāi)發(fā)過(guò)程中的理想點(diǎn)。

在這些項(xiàng)目中,幾乎沒(méi)有特定于項(xiàng)目的現(xiàn)有代碼,但它仍然可能依賴于第三方和開(kāi)源軟件。開(kāi)發(fā)人員可以從一開(kāi)始就將靜態(tài)分析集成到他們的開(kāi)發(fā)環(huán)境中,從而在編寫(xiě)代碼時(shí)確保高質(zhì)量的標(biāo)準(zhǔn)。這允許采用編碼標(biāo)準(zhǔn)并確保在出現(xiàn)時(shí)處理關(guān)鍵的靜態(tài)分析警告,從而減少技術(shù)債務(wù)堆中的錯(cuò)誤和漏洞。在這種情況下采用的方法恰當(dāng)?shù)孛麨椤熬G地”。

靜態(tài)分析采用方法:如何管理早期靜態(tài)分析報(bào)告

一旦將靜態(tài)分析工具安裝到項(xiàng)目中,該工具通常會(huì)報(bào)告相當(dāng)長(zhǎng)的違規(guī)和警告報(bào)告。特別是在大型代碼庫(kù)中,因此如何直接管理這些初始報(bào)告會(huì)影響將工具集成到項(xiàng)目中的成功。

并非所有警告都是至關(guān)重要的,因此不需要立即處理所有警告。學(xué)習(xí)立即解決問(wèn)題和推遲的是成功的關(guān)鍵。如上所述,產(chǎn)品的成熟度對(duì)方法有直接影響,下面將更詳細(xì)地概述。

界限法

顧名思義,在這種方法中,開(kāi)發(fā)人員決定在初步分析之后,他們不會(huì)讓任何更嚴(yán)重的警告和違規(guī)進(jìn)入代碼庫(kù)。換句話說(shuō),他們承諾分析每個(gè)關(guān)鍵警告以確定其準(zhǔn)確性,如果它確實(shí)是一個(gè)錯(cuò)誤,就及時(shí)修復(fù)。

團(tuán)隊(duì)還可能決定在現(xiàn)有代碼中添加已發(fā)現(xiàn)的關(guān)鍵警告,以將其添加到其報(bào)告工具中的錯(cuò)誤列表中。這些類型的警告的示例可能是嚴(yán)重的安全漏洞,如SQL注入,或嚴(yán)重的內(nèi)存錯(cuò)誤,如緩沖區(qū)溢出。在大多數(shù)情況下,可以推遲不太嚴(yán)重的警告以供之后分析。你可能會(huì)想,“這不是會(huì)增加我們的技術(shù)債務(wù)嗎?”,說(shuō)得沒(méi)錯(cuò)!這些警告中的任何潛在錯(cuò)誤都已經(jīng)在技術(shù)債務(wù)堆中了。至少在現(xiàn)在,它們被識(shí)別出來(lái)并且以后更容易修復(fù)。

確認(rèn)和推遲處理方法

如果產(chǎn)品已經(jīng)處在市場(chǎng)上并且正在維護(hù)中,那么識(shí)別代碼中的錯(cuò)誤和安全漏洞仍然是需要的,但開(kāi)發(fā)人員對(duì)所有這些警告都分析(更不用說(shuō)修復(fù))是不可行的。

在這種情況下,查看最重要的報(bào)告并確定行動(dòng)方案才是最有意義的。其余的警告都得到了確認(rèn),因?yàn)檐浖F(tuán)隊(duì)認(rèn)識(shí)到它們存在,但它們大多數(shù)都會(huì)被推遲處理。(這再次增加了該組織的技術(shù)債務(wù),但如上所述,這些漏洞在技術(shù)上已經(jīng)存在作為技術(shù)債務(wù)。)這種方法不同于界限方法,因?yàn)樵诖_定關(guān)鍵警告后,您只需推遲其余的,沒(méi)有任何分析。

綠地方法

一個(gè)只有少部分現(xiàn)有代碼的項(xiàng)目是靜態(tài)分析的理想起點(diǎn)。在這種情況下,軟件團(tuán)隊(duì)可以調(diào)查出現(xiàn)的所有警告并修復(fù)發(fā)現(xiàn)的錯(cuò)誤。與其他方法不同,只需要管理一些警告,因此開(kāi)發(fā)人員可以解決額外的問(wèn)題。這也是通過(guò)這些工具實(shí)現(xiàn)和實(shí)施編碼標(biāo)準(zhǔn)的理想時(shí)間,因?yàn)榭梢栽贗DE中以及在將任何代碼提交到版本控制之前識(shí)別和修復(fù)違規(guī)(您可以在此處描述的其他方案中執(zhí)行此操作)。

在成熟的三個(gè)主要階段采用靜態(tài)分析,可以通過(guò)如何處理積壓的警告來(lái)區(qū)分,如下圖所示:

在成熟的三個(gè)主要階段采用靜態(tài)分析:在綠地項(xiàng)目中,大多數(shù)報(bào)告的警告都經(jīng)過(guò)調(diào)查和修復(fù),幾乎沒(méi)有進(jìn)入技術(shù)債務(wù)堆。正在開(kāi)發(fā)的項(xiàng)目往往會(huì)積壓大量的警告,這些警告大部分都是推遲處理,只處理嚴(yán)重警告,維護(hù)中的產(chǎn)品往往會(huì)推遲大多數(shù)警告。

配置與過(guò)濾

開(kāi)源或輕量級(jí)靜態(tài)分析工具與商業(yè)高級(jí)靜態(tài)分析工具之間的主要區(qū)別之一是能夠配置為分析啟用哪組檢查器,并根據(jù)警告類別,文件名,嚴(yán)重性等過(guò)濾掉報(bào)告的結(jié)果屬性。這有助于實(shí)現(xiàn)不被淹沒(méi)的目標(biāo) - 開(kāi)發(fā)人員可以專注于他們感興趣的警告類型,并減少在任何給定時(shí)間提供的信息量。

配置檢查器 和 過(guò)濾結(jié)果 之間也存在差異。盡管最初限制全局配置中的規(guī)則數(shù)量似乎更好,但通常應(yīng)使用過(guò)濾來(lái)限制報(bào)告范圍,而不是完全消除檢查程序。如果在配置中關(guān)閉了后來(lái)證明重要的規(guī)則,則警告存儲(chǔ)庫(kù)中將沒(méi)有歷史記錄,因此您將無(wú)法確定錯(cuò)誤是由最近的更改引入還是已在代碼中引入在采用靜態(tài)分析之前。

我建議使用配置將規(guī)則集限制為可預(yù)見(jiàn)的對(duì)軟件團(tuán)隊(duì)有用的規(guī)則。同樣,從最終目標(biāo)入手:如果提高安全性是關(guān)鍵目標(biāo),則啟用所有與安全相關(guān)的規(guī)則,禁用不太重要的規(guī)則以及啟用CERT C等內(nèi)置安全編碼標(biāo)準(zhǔn)之一是有意義的。然后,如果您正在使用Parasoft C / C ++ test等高級(jí)靜態(tài)分析解決方案,則可以利用其內(nèi)置的管理工具來(lái)處理靜態(tài)分析報(bào)告中生成的數(shù)據(jù),從而推動(dòng)未來(lái)的開(kāi)發(fā)重點(diǎn)。

總結(jié)

靜態(tài)分析工具使軟件組織能夠檢測(cè)和跟蹤錯(cuò)誤安全漏洞,而無(wú)需執(zhí)行代碼。這些工具可應(yīng)用于現(xiàn)有,傳統(tǒng)和第三方代碼并提供質(zhì)量保障。

靜態(tài)分析的采用在一定程度上取決于項(xiàng)目的成熟度。大量代碼確實(shí)會(huì)導(dǎo)致大量警告。這是完全可管理的,采用的成功與否取決于團(tuán)隊(duì)如何決定解決結(jié)果。為項(xiàng)目的每個(gè)主要成熟度級(jí)別引入了各種技術(shù),以及如何將這些工具集成到開(kāi)發(fā)人員,團(tuán)隊(duì)負(fù)責(zé)人和經(jīng)理的日常工作流程中。

在我的另一篇文章中《如何將靜態(tài)分析集成到日常工作流程中?看Parasoft給您支招》,重點(diǎn)討論將靜態(tài)分析集成到您的日常工作流程中,推薦閱讀。


點(diǎn)擊下方“了解更多”查看Parasoft產(chǎn)品詳情及其試用下載

↓↓↓

1.《如何入門(mén)靜態(tài)分析,還不會(huì)給團(tuán)隊(duì)帶來(lái)壓力?Parasoft教你一招》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。

2.《如何入門(mén)靜態(tài)分析,還不會(huì)給團(tuán)隊(duì)帶來(lái)壓力?Parasoft教你一招》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/gl/2225989.html

上一篇

09帕克如何使用?我來(lái)告訴你答案焦點(diǎn)|帕克滿分酒隱藏的秘密

下一篇

行程卡,短信查!

如何處理靜態(tài)域?我來(lái)告訴你答案【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域?我來(lái)告訴你答案【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域相關(guān)介紹,前言 目前流行前后分離部署,但有時(shí)需要將前端文件與后端文件一起打包發(fā)布,這是與sprint boot的靜態(tài)資源訪問(wèn)相關(guān)的問(wèn)題。 不單只是靜態(tài)資源打包,比如使用本地某個(gè)目錄作為文件存儲(chǔ),也可通過(guò)WebM...

如何處理靜態(tài)域?終于找到答案了【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域?終于找到答案了【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域相關(guān)介紹,前言 目前流行前后分離部署,但有時(shí)需要將前端文件與后端文件一起打包發(fā)布,這是與sprint boot的靜態(tài)資源訪問(wèn)相關(guān)的問(wèn)題。 不單只是靜態(tài)資源打包,比如使用本地某個(gè)目錄作為文件存儲(chǔ),也可通過(guò)WebM...

如何處理靜態(tài)域看這里!【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域看這里!【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域相關(guān)介紹,前言 目前流行前后分離部署,但有時(shí)需要將前端文件與后端文件一起打包發(fā)布,這是與sprint boot的靜態(tài)資源訪問(wèn)相關(guān)的問(wèn)題。 不單只是靜態(tài)資源打包,比如使用本地某個(gè)目錄作為文件存儲(chǔ),也可通過(guò)WebM...

關(guān)于如何處理靜態(tài)域,你需要知道這些【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

關(guān)于如何處理靜態(tài)域,你需要知道這些【快學(xué)springboot】6.WebMvcConfigurer配置靜態(tài)資源和解決跨域

如何處理靜態(tài)域相關(guān)介紹,前言 雖然現(xiàn)在都流行前后端分離部署,但有時(shí)候還是需要把前端文件跟后端文件一起打包發(fā)布,這就涉及到了springboot的靜態(tài)資源訪問(wèn)的問(wèn)題。不單只是靜態(tài)資源打包,比如使用本地某個(gè)目錄作為文件存儲(chǔ),也可...

如何處理靜態(tài)域看這里!如何入門(mén)靜態(tài)分析,還不會(huì)給團(tuán)隊(duì)帶來(lái)壓力?Parasoft教你一招

如何處理靜態(tài)域看這里!如何入門(mén)靜態(tài)分析,還不會(huì)給團(tuán)隊(duì)帶來(lái)壓力?Parasoft教你一招

如何處理靜態(tài)域相關(guān)介紹,如果您最初沒(méi)有花些時(shí)間來(lái)確保已經(jīng)確定了為項(xiàng)目采取的正確策略,那么開(kāi)始入門(mén)的話可能會(huì)非常棘手。 假設(shè)您的靜態(tài)分析工具已經(jīng)安裝,并且已經(jīng)設(shè)置好了初始配置。在那之后,如果您一開(kāi)始沒(méi)有花些時(shí)間確保已經(jīng)確定好了...

如何處理靜態(tài)域看這里!詳解使用 Nginx 部署靜態(tài)頁(yè)面的方法 值得收藏!

如何處理靜態(tài)域看這里!詳解使用 Nginx 部署靜態(tài)頁(yè)面的方法 值得收藏!

如何處理靜態(tài)域相關(guān)介紹,Nginx簡(jiǎn)介 Nginx是俄羅斯人編寫(xiě)的非常輕的HTTP服務(wù)器,Nginx發(fā)音為“engine X”的高性能HTTP和反向代理服務(wù)器,也是IMAP/POP3/SMTP代理服務(wù)器。 Nginx 是由俄...