劉壯飛
【摘要】 隨著 IT行業中軟件產品的推陳出新,客戶對于軟件產品的要求也越來越高,因此如何高質量的交付軟件代碼,及時、持續地對代碼質量進行分析并給出合理的解決方案就成為了當下必須要解決的一個問題。本文主要從如何利用Sonar進行代碼的質量監控、問題的閉環管理以及同企業現有的內部問題管理平臺、消息統一推送平臺等工作流程的結合方面進行表述,簡單闡述了基于Sonar的質量分析平臺給軟件項目帶來的質量保障和質量提升。最后對自己在實際使用過程中遇到的問題進行了總結,并給出了相應的解決方案。
【關鍵詞】 質量分析 質量管理 Sonar 軟件質量
一、現存問題
IT系統在上線初,項目由于其唯一性、臨時性、成員的創造性和是團隊開發的產物等特點,流程規范性不夠、研發編程能力參差不齊,團隊成員磨合期不夠等諸多因素,導致軟件質量處于較低水平。如何提高代碼質量,做好產品質量控制就成為一個急需解決的課題。在進行質量控制的時候,必然會存在這樣或者那樣的問題,主要碰到的情況如下:
團隊成員代碼風格各異
潛在的低級錯誤引發的bug
重復代碼段維護困難
糟糕的復雜度分布
整個項目代碼質量無統一檢測標準
走查成本高,效率低,走形式,質量低
核查的問題無閉環
缺乏有效的手段對項目的質量進行持續監控
假如不對以上質量問題進行有效管控,那么必然在外部帶來客戶滿意度的下降,信任度降低,客戶方投資額的減少。內部帶來員工工作量的增加,加班強度的增強,間接管理成本增加,從而導致離職率增加,團隊不穩定,上級不滿意等各類情況。
那么,在軟件的質量管理過程中,究竟是什么因素會對軟件的質量產生重大的影響呢?毫無疑問,代碼質量是核心關鍵。那么,代碼質量是否有工具能夠進行檢測呢?接下來讓我們一起來了解下怎么使用工具高效閉環核查代碼。
二、Sonar介紹
Sonar 是 Codehaus 上面的一個開源項目,用于管理源代碼的質量。它從七個緯度來分析項目的質量:重復、編碼規則、注釋、復雜度、單元測試、問題和架構&設計。優勢如下:
1)Sonar 并不是簡單地將各種質量檢測工具的結果直接展現給客戶,而是通過不同的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地行相應的代碼質量管理。
2)通過插件機制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續集成工具。
3)Sonar 不僅提供了對 IDE 的支持,如:Eclipse 和IntelliJ IDEA里聯機查看結果;同時 Sonar 還對大量的持續集成工具提供了接口支持,可以很方便地在持續集成中使用Sonar。
4)此外,Sonar 的插件還可以對 Java 以外的其他25+編程語言提供支持,對國際化以及報告文檔化也有良好的支持。
三、應用案例
在項目中,利用Sonar的質量分析功能,當項目代碼被成功分析完成后,SonarServer 會將分析的結果存儲在相應的數據庫中,并以報告的形式將分析結果以圖表的形式展現在頁面上,實現對項目的持續監控,過程描述如下:
1、項目經理或QA首先從代碼版本庫上獲取穩定的軟件產品版本,使用Sonar,按照項目組設定的規則,進行代碼的分析;
3、將掃描出來的問題形成問題分析報告,向項目經理和項目組QA,供了解和決策。同時,針對分析出來的代碼問題創建問題視圖,自動調用企業任務管理平臺創建問題單;
5、各組長將收到的問題單進行分析,研發針對問題進行設計和解決,并完成程序編碼調整,最后通過版本管控平臺提交代碼。同時,由系統自動通過消息推送平臺將該任務單信息告知具體的研發。
6、研發在代碼提交的時候根據代碼所屬的歸屬模塊,調用該問題視圖數據進行判斷,若在問題視圖中存在該模塊,則限制代碼的提交,并要求修改后提交代碼,從而達到提前預防問題代碼上庫的情況;
8、研發回復任務單,完成問題的修復和解決,企業內部問題管理平臺判斷問題處于關閉狀態,調用質量分析平臺的Api,刪除該問題模塊對應的問題,實現問題的閉環管理。
通過上述過程,給項目提供一個全流程的、規范化的問題處理流程,有效解決軟件產品質量的分散問題,提升軟件產品的質量管理效率,給軟件產品的代碼質量帶來了以下好處:1)利用工具和創新方法實現對代碼質量的閉環管理,有分析、有解決和有后評估,從而提升項目管理、研發的工作效率;2)大大提升了研發環節的代碼走查、問題的預發現等環節的工作質量和效率,確保了軟件產品的質量,避免軟件的質量問題到測試和生產環節才發現問題,提升客戶滿意度。
四、總結
代碼質量管理對提高項目質量意義重大。本文介紹了Sonar 的特點和實際運用過程,并從項目實戰的角度講解了使用Sonar進行項目代碼質量管理的流程和注意事項,以期達到拋磚引玉的目的。