Parasoft靜態(tài)分析幫助電信工具制造商交付高質(zhì)量的軟件
在本文中,我將討論為什么靜態(tài)分析是實(shí)現(xiàn)軟件安全性和質(zhì)量目標(biāo)的必備技術(shù)的一些原因。我還將分享我們尊貴的客戶(hù)的靜態(tài)分析部署之旅之一的一些見(jiàn)解。
在擁擠的關(guān)鍵業(yè)務(wù)軟件領(lǐng)域中脫穎而出的最佳方法之一就是提供滿(mǎn)足客戶(hù)期望的安全、可靠和可信賴(lài)的產(chǎn)品。但是,交付無(wú)缺陷的軟件具有挑戰(zhàn)性,特別是如果您的項(xiàng)目利用復(fù)雜的結(jié)構(gòu)來(lái)優(yōu)化性能,包含數(shù)百萬(wàn)行代碼并且受到多家開(kāi)發(fā)人員的青睞。這就是為什么許多企業(yè)(例如G3 Technologies,一家提供定制工具和解決方案的無(wú)線(xiàn)電信組織)將靜態(tài)分析作為其開(kāi)發(fā)策略的一部分的原因。查看G3 Technologies案例研究以了解更多信息。
靜態(tài)分析如何支持代碼質(zhì)量和安全性?
靜態(tài)分析通過(guò)對(duì)照已知的編程模式檢查代碼來(lái)幫助組織實(shí)現(xiàn)其軟件安全和質(zhì)量目標(biāo),這些編程模式使軟件容易受到錯(cuò)誤和安全漏洞的攻擊。靜態(tài)分析代碼檢查器尋找可能導(dǎo)致內(nèi)存泄漏、代碼可維護(hù)性問(wèn)題和其他問(wèn)題的結(jié)構(gòu),并將這些結(jié)構(gòu)標(biāo)記為違規(guī)。例如,如果使用“goto”或“jump”語(yǔ)句,許多檢查器將報(bào)告違規(guī),因?yàn)樗鼈冊(cè)黾恿顺绦蜻壿嫷膹?fù)雜性,從而增加了發(fā)生軟件崩潰錯(cuò)誤的可能性。
代碼檢查器(也稱(chēng)為靜態(tài)分析規(guī)則)基于一組準(zhǔn)則,例如MISRA C 2012、CWE Top 25或OWASP Top 10,這些準(zhǔn)則已成為許多行業(yè)的標(biāo)準(zhǔn)。對(duì)于靜態(tài)分析部署,G3利用了Parasoft對(duì)所有主要編程指南的本機(jī)支持。此外,Parasoft使您能夠自定義使用哪些檢查程序分析代碼,從而使您能夠使用來(lái)自多個(gè)標(biāo)準(zhǔn)的混合和匹配檢查程序,以便您可以針對(duì)代碼量身定制分析。
G3在其持續(xù)集成過(guò)程中采用了1000多種Parasoft靜態(tài)分析規(guī)則,可幫助該公司確保生產(chǎn)代碼自由且無(wú)常見(jiàn)編程問(wèn)題。在部署Parasoft靜態(tài)分析工具的前六個(gè)月中,G3解決了大約50000個(gè)違規(guī)問(wèn)題,其中一些是關(guān)鍵錯(cuò)誤,例如類(lèi)型轉(zhuǎn)換問(wèn)題,未使用的變量和空指針取消引用。
高昂的軟件缺陷成本
雖然發(fā)現(xiàn)軟件缺陷總是很有價(jià)值的,但在開(kāi)發(fā)生命周期的早期發(fā)現(xiàn)它們是組織從其靜態(tài)分析投資中獲得最大價(jià)值的方式。下表顯示了與軟件開(kāi)發(fā)生命周期(SDLC)相關(guān)的發(fā)現(xiàn)缺陷的成本。
在他們的案例研究中,G3強(qiáng)調(diào)了在編碼階段發(fā)現(xiàn)錯(cuò)誤的價(jià)值。利用靜態(tài)分析,G3可以在軟件投入生產(chǎn)之前發(fā)現(xiàn)編程錯(cuò)誤,從而節(jié)省了與重新測(cè)試,重新認(rèn)證和重新部署有關(guān)的成本。但是,最重要的是,盡早發(fā)現(xiàn)缺陷可以使G3與客戶(hù)保持良好的信譽(yù)。他們積極主動(dòng)地盡早發(fā)現(xiàn)盡可能多的錯(cuò)誤,使該公司能夠快速交付客戶(hù)期望的高質(zhì)量軟件,同時(shí)避免后期缺陷檢測(cè)帶來(lái)的成本。
令人驚訝的是,一些公司在其項(xiàng)目中放棄了靜態(tài)分析。在擔(dān)任服務(wù)項(xiàng)目經(jīng)理之前,我曾與一位客戶(hù)簽約,負(fù)責(zé)在三個(gè)軟件子系統(tǒng)上執(zhí)行單元測(cè)試。該軟件包含大約111000行C和C++代碼。經(jīng)過(guò)幾個(gè)月的測(cè)試并確定了620多個(gè)缺陷,我決定對(duì)代碼進(jìn)行靜態(tài)分析作為實(shí)驗(yàn)。我發(fā)現(xiàn)在進(jìn)行一個(gè)小時(shí)的靜態(tài)分析后,大約一個(gè)小時(shí)內(nèi)就發(fā)現(xiàn)了超過(guò)80%的通過(guò)單元測(cè)試發(fā)現(xiàn)的缺陷。如果客戶(hù)采用靜態(tài)分析并輔以單元測(cè)試,則可以為客戶(hù)節(jié)省大量成本。
并非所有的靜態(tài)分析解決方案都是平等的
如果您已經(jīng)部署或?qū)⒁渴痨o態(tài)分析,則表示贊賞。用戶(hù)為提高代碼的安全性和可靠性而采取的任何步驟將受到用戶(hù)的贊賞。盡管我們贊揚(yáng)為改進(jìn)世界軟件所做的一切努力,但在決定使用靜態(tài)分析提供程序之前,您應(yīng)該考慮對(duì)您的組織重要的事情。
毋庸置疑,對(duì)于任何靜態(tài)分析解決方案而言,深入、徹底、準(zhǔn)確的代碼分析是最低要求。但是,某些供應(yīng)商將其靜態(tài)分析技術(shù)集中在開(kāi)發(fā)的特定方面,例如安全性。相反,Parasoft的方法是在應(yīng)用程序中構(gòu)建質(zhì)量和安全性。實(shí)際上,G3離開(kāi)其先前的靜態(tài)分析提供程序而支持Parasoft的原因之一是,其先前的供應(yīng)商將其關(guān)注范圍從總體軟件質(zhì)量上縮小了,而將重點(diǎn)放在了對(duì)安全性的高度關(guān)注上。
除了實(shí)現(xiàn)上的差異外,我們建議您尋找能夠證明您愿意在靜態(tài)分析過(guò)程中與您合作的靜態(tài)分析提供商。G3在Parasoft中找到了他們的合作伙伴,因?yàn)槲覀冎铝τ谠诳深A(yù)見(jiàn)的將來(lái)與G3合作。他們以前的供應(yīng)商不愿與G3合作改善他們的靜態(tài)分析解決方案。他們認(rèn)識(shí)到,與靜態(tài)分析工具提供者合作進(jìn)行增強(qiáng),不僅可以幫助他們更有效地分析代碼,還可以確保供應(yīng)商可以幫助G3長(zhǎng)期交付高質(zhì)量的產(chǎn)品。查看G3 Technologies案例研究以了解更多信息。
結(jié)論
靜態(tài)分析是任何軟件質(zhì)量和安全策略的基石部分。質(zhì)量實(shí)踐可幫助組織盡早發(fā)現(xiàn)軟件缺陷,從而降低了軟件開(kāi)發(fā)生命周期中質(zhì)量的總體成本。但是,并非所有靜態(tài)分析提供程序都相同。如果您正在探索靜態(tài)分析解決方案或正在尋找新的合作伙伴,請(qǐng)考慮提供商的實(shí)施方法,合作伙伴的意愿以及對(duì)編程指南的支持如何與您的軟件質(zhì)量和安全性目標(biāo)保持一致。
Parasoft自豪并榮幸地提供靜態(tài)分析技術(shù),以幫助G3 Technologies在滿(mǎn)足其嚴(yán)格的發(fā)布時(shí)間表的同時(shí)繼續(xù)交付高質(zhì)量的軟件。Parasoft的軟件測(cè)試解決方案以及我們與G3的合作關(guān)系使Parasoft成為關(guān)鍵的技術(shù)合作伙伴,從而確保了G3軟件應(yīng)用程序的首次開(kāi)發(fā)是正確的。Parasoft也已納入G3的持續(xù)集成流程中,以確保在解決所有已確定的缺陷之前,該軟件不會(huì)投入生產(chǎn)。您可以通過(guò)以下鏈接閱讀G3的客戶(hù)成功案例:G3 Technologies案例研究