2010-08-09 82 views
2

您將使用什麼方法與靜態代碼分析工具?靜態代碼分析方法

何時何地運行分析?多頻繁?

如何在日常構建中將其集成到持續構建環境?只有每晚?

+0

一個靜態分析工具做什麼?檢測單詞「foo」的用法?目標種類不重要嗎? – Borealid 2010-08-09 05:52:03

+0

不,不需要檢測單詞「foo」:)需要什麼(或者至少我的部門認爲是這樣)是一個工具,它運行在源代碼上並對其進行分析,以發現在運行時可以找到的錯誤,像空指針去引用,C++中的雙刪除,等' – 2010-08-09 05:55:40

回答

3

如果我在新的代碼庫上使用,那麼我將它們設置爲我想要的。如果我在現有代碼庫上使用它們,我會分階段啓用消息,以便報告特定類別的問題。一旦清除了特定類型的消息,我添加下一個類別。

我把靜態分析工具看作是編譯器的一部分。每個開發人員在每次構建時都會運行它們。如果可能的話,我也會把它們當作編譯器警告來對待 - 就像錯誤一樣。這樣,帶警告的代碼根本不會將其放到構建服務器上。如果您在特定情況下無法關閉警告,則會出現問題......並且只能通過協議關閉警告。

+0

在我的情況下,他們決定留下在測試代碼中發現的所有問題,以便代碼不需要再次測試(它已經發布)並解決問題下一個代碼在某個問題的區域發生變化。但我喜歡你的方法,我想我會建議。謝謝:) – 2010-08-09 07:17:51

3

我的經驗是,一般來說,靜態分析應該在開發過程早期使用,最好(或理想情況下)在單元測試和代碼簽入之前使用。代碼審查過程中也可以使用來自靜態分析的報告。這使軟件開發人員能夠開發出健壯的代碼,並且在某些情況下編寫可以通過靜態分析工具更加準確地分析的代碼。

早期使用的挑戰是軟件開發人員必須接受充分的培訓以使用靜態分析工具並能夠有效地對獲得的結果進行分類。這樣,他們可以採取具體步驟來提高軟件的質量。否則,使用該工具減少或標記的問題將被忽略,靜態分析的使用會隨着時間的推移而減少。

實際上大多數開發組織在開發過程的後期使用靜態分析。在這些階段,質量或測試工程師使用靜態分析工具。在許多情況下,它與構建系統相結合,以產生質量指標並提供有關軟件安全性和可靠性的指導。但是,如果識別的問題累積並跨越多個代碼組件,則所有問題將被修復的可能性將會降低。因此,一般來說後期使用靜態分析可能需要更多的時間和資源來解決已確定的問題。

+0

謝謝,我非常同意並親眼目睹了您在後期使用靜態分析時所描述的確切現象。 – 2011-08-14 19:51:40

0

在檢查服務器中的源代碼之前,同時使用靜態分析工具建立代碼審查任務(由另一個開發人員進行同行代碼審查)也可能是一個好主意。所以這將有助於提高代碼質量並防止無用代碼行成爲一天無用的代碼。