對于基于軟件進行運營來說,軟件風險等同于業(yè)務風險。如果軟件存在缺陷,導致無法連續(xù)運作,對企業(yè)的業(yè)務影響甚廣。因此,從軟件開發(fā)生命周期 (SDLC) 的早期就解決安全和質量缺陷,對構建可信軟件至關重要。
Linx Printing Technologies在英國劍橋郡,歷史可以追溯到1987年。經(jīng)過30多年的發(fā)展,該公司的噴碼與標識設備已經(jīng)銷往全球90多個國家及地區(qū)。
挑戰(zhàn):幫助Linx開發(fā)人員構建更高質量的代碼
Omara Williams是Linx公司軟件工程經(jīng)理,領導嵌入式軟件團隊,負責Linx產(chǎn)品上運行的軟件質量和安全。
Omara Williams介紹到:“我們需要這款嵌入式軟件能夠實時運行,這面臨著許多挑戰(zhàn)。例如,需要全天候與生產(chǎn)線保持通信,在幾乎所有情況下,Linx打印機和軟件都需要不間斷地正常運行。停機可能會導致生產(chǎn)線運作中斷、產(chǎn)品標簽產(chǎn)生錯誤,最終導致客戶蒙受經(jīng)濟損失。”
解決方案:借助Coverity靜態(tài)應用安全測試制定“零缺陷”策略
Omara Williams的首要任務是通過制定“零缺陷”策略,使團隊使用的軟件盡可能穩(wěn)定和安全。在這之前,他們需要先解決掉一些難題。
她指出:“我曾經(jīng)使用過新思科技的Coverity靜態(tài)應用安全測試,可以幫忙解決軟件安全和質量缺陷問題。但首先,我必須說服Linx管理層,Coverity靜態(tài)應用安全測試是一項高回報的投資。隨即,我向主管重點概述了軟件運行的現(xiàn)狀以及面臨的挑戰(zhàn);這些挑戰(zhàn)在未來可能會導致代碼穩(wěn)定性問題;以及如何使用Coverity靜態(tài)應用安全測試來識別這些問題。最終,他了解到其中的好處,并決定在公司部署Coverity靜態(tài)應用安全測試。”
同時,還有有一些阻力來自Linx軟件開發(fā)人員。Omara Williams本身是一名軟件開發(fā)人員,對此不足為奇。與大多數(shù)開發(fā)團隊一樣,Linx團隊的重點是快速生成代碼,因此他們通常拒絕引入任何可能減緩開發(fā)過程的應用。但是Omara Williams深知Coverity靜態(tài)應用安全測試可以幫助Linx開發(fā)人員識別關鍵的軟件質量缺陷,以便在開發(fā)周期初期就修復這些缺陷,并仍能達到業(yè)務發(fā)展所需的速度。
Omara Williams表示:“是的,采用新的應用會產(chǎn)生 ‘這會讓我們慢下來’、‘會有太多的誤報’的顧慮。但我們都認同這一點:我們的當務之急是Linx打印機需要滿足客戶生產(chǎn)線的要求,客戶應該相信Linx打印機上運行的軟件是穩(wěn)定、安全和準確的。我與開發(fā)團隊每周召開會議,與他們一起審查Coverity靜態(tài)應用安全測試對代碼的分析。他們了解到Coverity靜態(tài)應用安全測試是一個有用的工具,可以幫助他們更快地編寫更可信的代碼。我們的下一步是將代碼缺陷降至零?!?/p>
效果:編碼缺陷顯著減少
Omara Williams團隊使用Coverity靜態(tài)應用安全測試發(fā)現(xiàn)編碼缺陷,并及時進行修復。他們對實現(xiàn)“零缺陷”目標的信心增強了。
Omara Williams 說:“我們將Coverity靜態(tài)應用安全測試整合到Jenkins CI/CD渠道中。我們每天都運行Coverity靜態(tài)應用安全測試,每晚都查看掃描結果匯總。Coverity靜態(tài)應用安全測試還與我們的Jira bug追蹤系統(tǒng)集成。當Coverity發(fā)現(xiàn)缺陷時,會創(chuàng)建一個相關的Jira票證來追蹤其修復進度?!?/p>
Omara Williams接著說:“我們基于Feature Branching工作流開展工作。開發(fā)人員在開發(fā)新功能時會開啟代碼的一個新分支。在功能分支通過Coverity靜態(tài)應用安全測試并獲得批準之前,我們不會提交給開發(fā)分支。只有通過掃描合格后,我們才能將其合并到開發(fā)分支中,然后最終投入生產(chǎn)?!?/p>
Linx在2019年設定“零缺陷”目標,在2021年將其實現(xiàn)。隨著代碼的更改或新代碼的引入,Coverity靜態(tài)應用安全測試將繼續(xù)幫助Linx識別和修復代碼缺陷問題。迄今為止,Coverity靜態(tài)應用安全測試已經(jīng)幫Linx分析了170萬行代碼。在部署后第一年,Coverity靜態(tài)應用安全測試發(fā)現(xiàn)的問題中,有97%得到了解決。在接下來的24個月里,Coverity靜態(tài)應用安全測試幫助Linx將軟件風險控制在極低的水平。
Omara Williams贊賞到:“效果很喜人。憑借Coverity靜態(tài)應用安全測試,開發(fā)人員能及時發(fā)現(xiàn)編碼錯誤,更高效地編寫代碼。一開始,大家擔心Coverity會降低開發(fā)速度或產(chǎn)生大量誤報。而現(xiàn)在我們都把Coverity視為軟件團隊中的一員。得益于此,開發(fā)團隊在將代碼送去進行質量評估之前,就已經(jīng)發(fā)現(xiàn)其中的問題并解決掉?!?/p>
Omara Williams總結道:“采用Coverity靜態(tài)應用安全測試的項目非常成功,我們與新思科技的合作非常愉快。在過去36個月里,Linx取得了斐然的成績,像是開啟了一段令人難忘的軟件安全之旅。在安裝和維護期間,我們獲得了新思科技技術人員和客戶服務團隊的大力支持。支持團隊響應迅速,效率高,在規(guī)定的時間內回應了我們所有的請求?!?/p>