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