翻譯|行業(yè)資訊|編輯:胡濤|2023-10-19 11:50:01.820|閱讀 79 次
概述:本文將向您介紹如何解決積壓的靜態(tài)分析警告和技術(shù)負(fù)債,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
將靜態(tài)分析工具集成到開(kāi)發(fā)團(tuán)隊(duì)的日常工作流程中后,下一階段的工作是減少項(xiàng)目中積壓的警告和技術(shù)債務(wù)。
如果產(chǎn)品正在維護(hù)或開(kāi)發(fā)中,則可能有大量積壓工作需要處理。對(duì)于綠地項(xiàng)目,積壓的情況較少。然而,每個(gè)成熟階段的建議都是相同的。
處理積壓的警告的最佳起點(diǎn)是根據(jù)期望的結(jié)果確定優(yōu)先級(jí)并過(guò)濾結(jié)果。以安全為例,根據(jù)安全警告對(duì)積壓的工作進(jìn)行優(yōu)先級(jí)排序是有意義的,并按重要性進(jìn)行排名。
這是首次將靜態(tài)分析引入項(xiàng)目時(shí)使用的方法的延續(xù),但現(xiàn)在的重點(diǎn)是團(tuán)隊(duì)要分析的下一組易于理解的警告。Parasoft C/C++test 通過(guò)多種方式處理此問(wèn)題,我們將在下面介紹。
技術(shù)債務(wù)是在軟件開(kāi)發(fā)過(guò)程中因延誤重要工作或走捷徑而產(chǎn)生的成本。這種形式的債務(wù)與金融債務(wù)一樣,會(huì)隨著時(shí)間的推移而產(chǎn)生利息,如果不解決,解決起來(lái)可能會(huì)變得昂貴。
技術(shù)債務(wù)的例子包括:
不幸的是,技術(shù)債務(wù)是一個(gè)常見(jiàn)問(wèn)題,因?yàn)檐浖_(kāi)發(fā)團(tuán)隊(duì)通常優(yōu)先考慮快速交付功能而不是創(chuàng)建強(qiáng)大的代碼庫(kù)。
出于多種原因,解決技術(shù)債務(wù)至關(guān)重要。它可以:
解決技術(shù)債務(wù)對(duì)于構(gòu)建能夠適應(yīng)不斷變化的業(yè)務(wù)和客戶需求的可持續(xù)且可維護(hù)的軟件產(chǎn)品至關(guān)重要。
談到技術(shù)債務(wù),有兩大類。
當(dāng)團(tuán)隊(duì)有意識(shí)地走捷徑以滿足最后期限或?qū)崿F(xiàn)特定目標(biāo)時(shí),就會(huì)產(chǎn)生故意的技術(shù)債務(wù)。這種類型的技術(shù)債務(wù)通常是由于商業(yè)考慮(例如市場(chǎng)壓力)而產(chǎn)生的,并且被視為一種不可避免的罪惡。缺點(diǎn)是它可能會(huì)導(dǎo)致后續(xù)額外的工作,例如重構(gòu),這可能成本高昂。
另一方面,當(dāng)團(tuán)隊(duì)沒(méi)有意識(shí)到他們在開(kāi)發(fā)過(guò)程中做出的決策的影響時(shí),就會(huì)產(chǎn)生無(wú)意的技術(shù)債務(wù)。發(fā)生這種情況的原因可能是缺乏對(duì)特定領(lǐng)域的理解或?qū)I(yè)知識(shí)、缺乏資源或時(shí)間,或者僅僅是由于缺乏紀(jì)律或嚴(yán)格性。
這種類型的技術(shù)債務(wù)通常更加隱蔽,因?yàn)樗赡茈y以檢測(cè)和診斷,并且可能會(huì)導(dǎo)致不可預(yù)見(jiàn)的后果。無(wú)論技術(shù)債務(wù)的類型如何,重要的是要了解其存在并采取措施對(duì)其進(jìn)行有效管理,以確保軟件項(xiàng)目的長(zhǎng)期健康和成功。
如果不加以解決,無(wú)意的技術(shù)債務(wù)會(huì)隨著時(shí)間的推移而積累,最終導(dǎo)致軟件的維護(hù)和發(fā)展變得困難。無(wú)意的技術(shù)債務(wù)的一些例子包括:
有意承擔(dān)技術(shù)債務(wù)的前提是需要在未來(lái)某個(gè)時(shí)候償還。故意技術(shù)債務(wù)的一些例子包括:
技術(shù)債務(wù)的最佳實(shí)踐是采取積極主動(dòng)的方法來(lái)管理軟件開(kāi)發(fā)人員的代碼質(zhì)量,從而能夠降低積累過(guò)多技術(shù)債務(wù)的,并通過(guò)優(yōu)先考慮高質(zhì)量來(lái)確保他們的軟件長(zhǎng)期保持健康和可持續(xù)發(fā)展代碼和設(shè)計(jì)實(shí)踐并定期償還技術(shù)債務(wù)。這意味著對(duì)代碼質(zhì)量、測(cè)試和文檔進(jìn)行投資,并確保軟件隨著時(shí)間的推移保持可維護(hù)、可擴(kuò)展和安全。
靜態(tài)分析是一種檢查源代碼質(zhì)量和合規(guī)性問(wèn)題的自動(dòng)化方法。它對(duì)于識(shí)別安全問(wèn)題、安全漏洞和可靠性問(wèn)題或代碼將來(lái)可能更難以維護(hù)或擴(kuò)展的領(lǐng)域非常有用。
通過(guò)盡早發(fā)現(xiàn)技術(shù)債務(wù),團(tuán)隊(duì)可以在問(wèn)題變成更大問(wèn)題之前采取措施解決它。這有助于提高代碼質(zhì)量、減少開(kāi)發(fā)時(shí)間、降低勞動(dòng)力成本、提升軟件產(chǎn)品的整體價(jià)值。
用于高級(jí)分析的儀表板
Parasoft 的集中式報(bào)告和分析儀表板使開(kāi)發(fā)人員和管理人員能夠從不同的角度查看項(xiàng)目的當(dāng)前狀態(tài),并在需要時(shí)進(jìn)一步導(dǎo)航到更多細(xì)節(jié),以建立一組警告以供進(jìn)一步調(diào)查。請(qǐng)考慮以下儀表板,顯示項(xiàng)目當(dāng)前是否符合 CERT C 安全編碼標(biāo)準(zhǔn)。
使用此 Web 門戶,用戶可以根據(jù)需要更深入地進(jìn)行分析,深入到文件和代碼級(jí)別,并完全在 Web 門戶或 IDE 中調(diào)查警告。在此階段,可以對(duì)警告進(jìn)行優(yōu)先級(jí)排序、分配給開(kāi)發(fā)人員、抑制或標(biāo)記為誤報(bào)。請(qǐng)參閱 Parasoft 資源管理器中的以下示例。
管理違反編碼標(biāo)準(zhǔn)的行為
在大多數(shù)情況下,當(dāng)分析源代碼以確保編碼標(biāo)準(zhǔn)合規(guī)性時(shí),違規(guī)行為會(huì)被報(bào)告為靜態(tài)分析警告。在大型項(xiàng)目中,最初會(huì)有很多警告??焖儆行У毓芾硭鼈冎陵P(guān)重要。Parasoft 的違規(guī)瀏覽器是導(dǎo)航、評(píng)估、優(yōu)先排序和分配報(bào)告錯(cuò)誤以進(jìn)行修復(fù)的關(guān)鍵工具。
如果靜態(tài)分析規(guī)則違規(guī)被證明是有效但合理的、被認(rèn)為是無(wú)害的或不適用的,則開(kāi)發(fā)人員可以抑制錯(cuò)誤并記錄偏差。這些偏差通過(guò)項(xiàng)目的每個(gè)級(jí)別報(bào)告到儀表板和合規(guī)性文檔。
為了使現(xiàn)有項(xiàng)目能夠遵守編碼標(biāo)準(zhǔn),團(tuán)隊(duì)首先關(guān)注被視為強(qiáng)制性的規(guī)則至關(guān)重要。合規(guī)性通常是基于滿足強(qiáng)制性要求以及違反建議規(guī)則(如果有適當(dāng)記錄)。標(biāo)準(zhǔn)允許規(guī)則重新分類(如果它們是非強(qiáng)制性的),允許違規(guī)(如果合理且有記錄)。如果沒(méi)有這一點(diǎn),試圖糾正每一個(gè)違規(guī)行為就變得不可行。
Parasoft 的報(bào)告和分析利用人工智能 (AI) 和機(jī)器學(xué)習(xí) (ML),從與代碼庫(kù)的歷史交互和先前的靜態(tài)分析結(jié)果中學(xué)習(xí),以預(yù)測(cè)相關(guān)性并確定新發(fā)現(xiàn)的優(yōu)先級(jí)。
開(kāi)發(fā)經(jīng)理和領(lǐng)導(dǎo)者還可以通過(guò)可導(dǎo)航的界面來(lái)探索違規(guī)行為并在需要時(shí)自動(dòng)生成認(rèn)證證據(jù)報(bào)告,從而節(jié)省額外的工作時(shí)間。MISRA C 偏差報(bào)告的示例如下所示。
管理積壓的錯(cuò)誤和安全警告
對(duì)于采用靜態(tài)分析的團(tuán)隊(duì)來(lái)說(shuō),重要的是要了解沒(méi)有必要修復(fù)或分析所有警告。所有警告的創(chuàng)建方式并不相同,因此嚴(yán)重性級(jí)別是表明應(yīng)投入多少精力來(lái)調(diào)查和修復(fù)警告的最佳指標(biāo)。在深入研究積壓的警告時(shí),團(tuán)隊(duì)每次都會(huì)有效地把“底線”移得更遠(yuǎn)。
Parasoft Jtest和C/C++test使用戶能夠使用配置在 IDE 中確定警告的優(yōu)先級(jí)和過(guò)濾警告。例如,他們可以使用嚴(yán)重性級(jí)別和類別來(lái)創(chuàng)建一組適合分析的警告。新用戶配置的示例如下所示。
此配置可用于過(guò)濾 IDE 中的警告。
逐步移動(dòng)“底線”來(lái)處理下一個(gè)最高優(yōu)先級(jí)和類別是處理大量積壓警告的最佳方法。最終,軟件團(tuán)隊(duì)由于時(shí)間和預(yù)算而達(dá)到了一個(gè)截止點(diǎn)。但他們應(yīng)該感到放心,盡管仍有積壓的警告,但他們?cè)谫|(zhì)量和安全性方面取得了重大改進(jìn)。
防止技術(shù)債務(wù)需要采取積極主動(dòng)的方法,涉及整個(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)。以下是一些有助于防止技術(shù)債務(wù)的最佳實(shí)踐。
通過(guò)遵循這些最佳實(shí)踐,軟件開(kāi)發(fā)團(tuán)隊(duì)可以幫助防止技術(shù)債務(wù),并確保他們構(gòu)建安全、可靠、可維護(hù)的軟件產(chǎn)品。
在大型項(xiàng)目中,最初會(huì)有很多警告??焖儆行У毓芾硭鼈冎陵P(guān)重要。對(duì)于采用靜態(tài)分析的團(tuán)隊(duì)來(lái)說(shuō),重要的是要了解修復(fù)或分析所有警告是不必要的。相反,請(qǐng)確保選擇一個(gè)工具,使您能夠?qū)Ш健⒃u(píng)估、確定優(yōu)先級(jí)并分配報(bào)告的錯(cuò)誤以進(jìn)行修復(fù)。逐步移動(dòng)“底線”來(lái)處理下一個(gè)最高優(yōu)先級(jí)和類別是處理大量積壓警告的最佳方法。
了解更多有關(guān)Parasoft產(chǎn)品咨詢,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn