• <menu id="w2i4a"></menu>
  • logo Parasoft C/C++test 使用教程

    文檔首頁>>Parasoft C/C++test 使用教程>>將靜態(tài)分析集成到日常工作流程中

    將靜態(tài)分析集成到日常工作流程中


    為了成功地將靜態(tài)分析應(yīng)用到您的項(xiàng)目中,重要的是要確保您的靜態(tài)分析工具易于使用,并且開發(fā)人員可以輕松訪問,并預(yù)先提供有用、可操作的信息。在本文中,學(xué)習(xí)如何通過有效的日常工作流程最大程度地利用靜態(tài)分析。

    如果您還沒有閱讀上一篇有關(guān)靜態(tài)分析入門的文章,那么我建議您先閱讀一遍,以了解如何從靜態(tài)分析工具解釋您的第一份報(bào)告并處理初始分析而又不會(huì)使團(tuán)隊(duì)感到不知所措。

    這個(gè)小入門系列的第二部分是關(guān)于如何將靜態(tài)分析工具集成到您的日常工作流程中的。您如何每天整合靜態(tài)分析?

    事實(shí)證明,這是關(guān)鍵。確保在您的項(xiàng)目中成功采用靜態(tài)分析,要圍繞確保工具易于使用和開發(fā)人員易于使用的方式進(jìn)行,并預(yù)先提供有用,可操作的信息。這是在開發(fā)人員正在使用的環(huán)境(IDE)(例如Eclipse或Visual Studio)中最佳實(shí)現(xiàn)的。靜態(tài)分析警告的發(fā)送方式與IDE中的編譯器錯(cuò)誤相同,并且在代碼中突出顯示了這些警告,以使分析和修復(fù)更加容易。例如,請(qǐng)參閱以下集成在Eclipse中的Parasoft Jtest靜態(tài)分析警告的屏幕截圖:


    正如您在Eclipse中的Java應(yīng)用程序的以上示例中所看到的那樣,Parasoft Jtest的靜態(tài)分析結(jié)果以警告/錯(cuò)誤視圖(1)的形式提供,并且可以與任何其他錯(cuò)誤進(jìn)行交互信息。選擇錯(cuò)誤會(huì)將編輯器窗格(2)帶到相關(guān)代碼行,這還將在代碼中顯示可用于跟蹤警告根本原因的控制流跟蹤。如果需要補(bǔ)救,可以照常通過項(xiàng)目導(dǎo)航視圖(3)提交代碼。

    那么,開發(fā)人員在分析每個(gè)警告時(shí)會(huì)做什么?最好在流程圖中對(duì)此進(jìn)行描述,如下所示:


    步驟1:匯總和過濾警告


    它從匯總和過濾靜態(tài)分析結(jié)果開始,這是確定優(yōu)先級(jí)并關(guān)注關(guān)鍵警告的關(guān)鍵的第一步。通常,質(zhì)量檢查人員和團(tuán)隊(duì)負(fù)責(zé)人會(huì)在心中確定質(zhì)量目標(biāo),并圍繞此目標(biāo)構(gòu)建分析的配置。為了提高安全性,例如,將啟用與安全性相關(guān)的檢查器以及諸如CERT C的安全編碼標(biāo)準(zhǔn)。


    步驟2-4:調(diào)查、確定優(yōu)先級(jí)并修復(fù)警告


    然后,開發(fā)人員根據(jù)團(tuán)隊(duì)制定的政策和產(chǎn)品的成熟度,調(diào)查并修復(fù)發(fā)現(xiàn)的警告。正如我在上一篇文章中所解釋的,在一個(gè)未開發(fā)的項(xiàng)目中,大多數(shù)警告將被調(diào)查并確定優(yōu)先級(jí),因?yàn)榇a量相對(duì)較小,而在成熟階段的后期,過濾和優(yōu)先級(jí)將更加嚴(yán)格,因此開發(fā)人員只能處理真正的嚴(yán)重警告。無論哪種情況,過程都是相同的。


    步驟5:簽到來源


    響應(yīng)靜態(tài)分析警告進(jìn)行更改后,將代碼檢入版本控制中,并在下一次構(gòu)建期間再次進(jìn)行分析。簡(jiǎn)短而緊湊的反饋循環(huán)可在編寫和修改代碼時(shí)極大地提高代碼的質(zhì)量和安全性。

    集成到構(gòu)建系統(tǒng)和持續(xù)集成管道中

    靜態(tài)分析工具和構(gòu)建系統(tǒng)的主要集成點(diǎn)是通過命令行界面。以這種方式使用的靜態(tài)分析的行為有點(diǎn)像編譯器在構(gòu)建結(jié)構(gòu)中的行為。文件的處理方式相同,盡管輸出不是可執(zhí)行文件,而是存儲(chǔ)在存儲(chǔ)庫中的結(jié)果,并按文件和內(nèi)部版本號(hào)進(jìn)行索引。


    例如,使用Parasoft C/C++test,可以由Parasoft的報(bào)告和分析系統(tǒng)(Parasoft DTP)處理,該系統(tǒng)既是存儲(chǔ)庫又是分析結(jié)果的智能引擎。這項(xiàng)分析和附帶的信息將反饋給每個(gè)開發(fā)人員的IDE,并可以通過Parasoft的網(wǎng)絡(luò)門戶向經(jīng)理和團(tuán)隊(duì)負(fù)責(zé)人提供。

    在上圖中,您將看到我們?nèi)绾螌?/span>Parasoft靜態(tài)分析工具集成到持續(xù)集成管道中。 Parasoft DTP是用于警告的中央存儲(chǔ)庫和分析引擎。


    總結(jié)


    將靜態(tài)分析集成到日常工作流程中,既需要開發(fā)人員直接在IDE中訪問靜態(tài)分析,又需要執(zhí)行項(xiàng)目范圍的分析、報(bào)告和管理的能力。直接支持開發(fā)人員使用代碼的地方以及團(tuán)隊(duì)負(fù)責(zé)人和經(jīng)理使用他們自己的趨勢(shì)信息和報(bào)告訪問相同的信息,這對(duì)于在項(xiàng)目中完全利用靜態(tài)分析至關(guān)重要。

    渴望更多?稍后再返回本系列的下一部分。我將解釋如何處理靜態(tài)分析警告積壓和技術(shù)債務(wù)


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();