日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁 > 新聞熱點

靜態(tài)分析工具日益強(qiáng)大,可在產(chǎn)品開發(fā)早期發(fā)現(xiàn)缺陷

發(fā)布日期:2022-07-14 點擊率:52

工具已經(jīng)從簡單的語法檢查器發(fā)展成強(qiáng)大的工具,可以用來發(fā)現(xiàn)在大規(guī)模代碼庫的復(fù)雜交互中所產(chǎn)生的缺陷。直到最近,它們?nèi)员毁|(zhì)量保證人員用來在接近項目完成的綜合創(chuàng)建期間評估代碼。


最新發(fā)布的產(chǎn)品正在將這些工具的作用向開發(fā)流程的早期階段推進(jìn),以便幫助開發(fā)者在軟件錯誤蔓延前的更早期將其檢測出來。Klocwork公司的Insight和GrammaTech公司的CodeSonar Enterprise都能滿足開發(fā)人員的需要,即使在許多代碼段還缺失的情況下也能發(fā)揮作用。


軟件開發(fā)人員通常采用兩種工具來自動檢測他們代碼中的錯誤。一種是動態(tài)分析工具,可以在代碼執(zhí)行過程中查看代碼;另一種是靜態(tài)分析工具,通過算法檢查代碼的錯誤。這兩種工具各有優(yōu)缺點。


動態(tài)分析擅長于發(fā)現(xiàn)運(yùn)行時錯誤,如資源泄漏和動態(tài)存儲訛誤。開發(fā)人員可信賴動態(tài)分析工具所報告的任何錯誤都是真實的,因為這些錯誤是在實際代碼執(zhí)行期間被發(fā)現(xiàn)的。


但為了高效地使用動態(tài)分析,代碼必須被全面執(zhí)行,因此需要使用測試案例。這樣,動態(tài)分析工具在尋找錯誤方面的效率就取決于測試案例的質(zhì)量。另外,由于動態(tài)分析工具是與運(yùn)行軟件一起工作的,因此只能在開發(fā)過程的晚期階段起作用,此時代碼已經(jīng)完全編好并首次被整合。


靜態(tài)分析工具使用算法技術(shù)檢查源代碼中的錯誤,并標(biāo)明問題區(qū)域,以便編程人員做更詳細(xì)的檢查。這種算法方式無需使用測試案例,算法本身決定了分析工具發(fā)現(xiàn)錯誤的效率。不過,這種方法存在識別失誤的可能性:有可能標(biāo)記為錯誤的代碼事實上是可以正確執(zhí)行的。如果它們產(chǎn)生太多的錯誤時別,用工具供應(yīng)商術(shù)語而言就是低“準(zhǔn)確性”,靜態(tài)工具就會影響用戶開展后續(xù)工作,并有可能掩蓋真正的錯誤。


這兩種工具呈互補(bǔ)的關(guān)系,各自都擅長于發(fā)現(xiàn)對方很難發(fā)現(xiàn)的錯誤,但動態(tài)分析工具似乎在開發(fā)人員中更加普及。部分原因是早期的靜態(tài)分析工具更像是開發(fā)人員用來尋找相對簡單的編碼和格式錯誤的語法檢查器。


然而在過去十幾年中,隨著研究人員開發(fā)出更加高效的算法,靜態(tài)分析工具變得越來越強(qiáng)大。它們已經(jīng)能夠識別出大量的微小錯誤(見表1),其中有許多錯誤只在搶先多任務(wù)環(huán)境中的任務(wù)交織期間表現(xiàn)為執(zhí)行問題。


表1:可被靜態(tài)源代碼分析工具發(fā)現(xiàn)的典型錯誤。
表1:可被靜態(tài)源代碼分析工具發(fā)現(xiàn)的典型錯誤。


上述新的靜態(tài)分析工具額外的好處之一是:它們擁有增強(qiáng)的能力,可以發(fā)現(xiàn)代碼中有可能被惡意用戶用來突破安全防護(hù)的缺陷。開發(fā)人員很容易低估軟件安全缺陷,因為他們只是指望代碼能正常執(zhí)行。靜態(tài)分析工具的算法沒有預(yù)期性,只是一種規(guī)程,因此會不帶偏見地識別潛在的問題。


向開發(fā)早期推進(jìn)


直到最近,靜態(tài)源代碼分析工具還只是用于開發(fā)過程的晚期,即開發(fā)人員能夠完整訪問所有代碼段的綜合構(gòu)建階段。然而許多新推出的工具,包括Klocwork公司的Insight和GrammaTech公司的CodeSonar Enterprise,都已經(jīng)通過性能的增強(qiáng)使得開發(fā)者在代碼編寫的過程中使用這種靜態(tài)分析工具。


這種新一代靜態(tài)源代碼分析工具利用企業(yè)級軟件開發(fā)環(huán)境,整合了從事同一項目不同部分的開發(fā)團(tuán)隊的成果(見圖1)。通過實現(xiàn)代碼段分析掃描方面信息的對等交換,這種工具可以收集到精確檢測錯誤所需的范圍更廣的語境。


圖1:新的靜態(tài)源代碼分析工具可以通過收集中心數(shù)據(jù)庫中個別代碼段的數(shù)據(jù)、建立系統(tǒng)性觀點來最大化效率。
圖1:新的靜態(tài)源代碼分析工具可以通過收集中心數(shù)據(jù)庫中個別代碼段的數(shù)據(jù)、建立系統(tǒng)性觀點來最大化效率。


這種更廣范圍的語境,再加上為遺失的代碼自動建模,就可以幫助開發(fā)人員快速建立有效可靠的代碼檢查基礎(chǔ),即使當(dāng)時項目還沒有全部完成。在這個階段捕捉到的錯誤比開發(fā)過程晚期的錯誤更容易修正,代價也較低。另外,較早捕捉錯誤可以防止這些錯誤在系統(tǒng)中擴(kuò)散進(jìn)而影響后期開發(fā)的代碼行為。


然而,在早期使用這種靜態(tài)分析有個前提,即充分理解局部查看代碼所引起的局限性。“重要的是記住在軟件開發(fā)的早期階段,工具是不夠精確的,并可能忽略了程序間的影響。”GrammaTech公司工程副總裁Paul Anderson提醒道。


但Anderson補(bǔ)充道,隨著被分析代碼規(guī)模的增長,結(jié)果將有所改善。經(jīng)常較早地使用靜態(tài)分析工具,還有助于培養(yǎng)開發(fā)人員發(fā)現(xiàn)他們個人編碼風(fēng)格的缺點,并改變他們的編程方式以便防止重復(fù)發(fā)生相同類型的錯誤。


由于這種新一代工具被整個項目開發(fā)團(tuán)隊所使用,他們可以記錄分析結(jié)果的變化規(guī)律,從而幫助識別新的問題。例如Klocwork公司的Insight可以保存每次分析過程產(chǎn)生的數(shù)據(jù),從而讓開發(fā)人員在整個開發(fā)過程中跟蹤標(biāo)示出的錯誤,該公司首席技術(shù)官Gwyn Fisher表示。


該工具還允許授權(quán)的高級開發(fā)人員將錯誤標(biāo)示為偽錯誤或不相關(guān)錯誤,Fisher補(bǔ)充道,這樣,在隨后的分析操作中就不會再報告它們。這將有助于開發(fā)人員集中精力處理真正的錯誤,并使任何新引入的錯誤更加明顯,或者在交互代碼部分被一起分析時發(fā)生的錯誤更加突出。


何時采用靜態(tài)工具?


在開發(fā)過程中要多么早和多么頻繁地使用靜態(tài)代碼分析工具?這取決于具體的項目情況。“不同團(tuán)隊可以接受不同等級的偽錯誤。”GrammaTech公司的Anderson表示,“安全性非常關(guān)鍵的項目可能容忍10:1的假:真錯誤報告率,而其它項目50:50的比率就有問題,因為跟蹤偽錯誤非常浪費(fèi)時間。”


Klocwork公司的Fisher指出,“有些用戶可能從第一天就開始使用分析工具,此時工具的作用表現(xiàn)的相對較弱,他們能夠容忍過多的偽錯誤。其它用戶則寧愿等待架構(gòu)全部開發(fā)好再使用工具,即使那時缺陷密度會比較高。”


最后,項目組必須自己決定如何平衡在開發(fā)過程早期發(fā)現(xiàn)偽錯誤的成本和在開發(fā)過程晚期發(fā)現(xiàn)和修正錯誤的成本之間的關(guān)系。但無論如何要選用靜態(tài)分析工具,因為這些工具已被事實證明在發(fā)現(xiàn)代碼缺陷和安全弱點方面具有極高的價值。既然這些工具已經(jīng)交付到開發(fā)人員手中,缺陷可以被盡早發(fā)現(xiàn),那么靜態(tài)源代碼分析工具也將有助于降低開發(fā)成本。


作者:Richard A. Quinnell 特約技術(shù)編輯








下一篇: 業(yè)內(nèi)重要廠商建立Home

上一篇: 工程師們的設(shè)計新幫手

主站蜘蛛池模板: 日韩不卡在线 | 亚洲精品在线免费观看视频 | 国产一级免费在线观看 | 青青草国产在线观看 | 国产视频中文字幕 | 欧美在线一区二区三区 | 亚洲一区三区在线观看 | 黄视频网站免费观看 | 精品一区二区三区四区 | 久草在线视频中文 | 国产精品入口久久 | 亚洲精品美女在线观看 | 日日夜夜天天 | 免费看国产一级特黄aaaa大片 | 久久成人激情 | 黄色国产视频 | 国产 日韩 欧美 制服 另类 | 午夜激情视频 | 日本久久久久久 | 久久久久久久一区二区三区 | 国产一区二区三区四区区 | 精品视频成人 | 在线一区二区三区 | 亚洲视频在线看 | 羞羞视频在线观看 | 在线观看你懂的网站 | 一区二区三区精品视频 | 精品久久一区 | 国产亚洲精品久久久优势 | 亚洲精品日韩一区二区电影 | 美女亚洲一区 | 99久久精品免费看国产四区 | 欧美色999| 在线免费观看日本视频 | 1区2区视频| 欧美日韩综合精品 | 资源首页二三区 | 亚洲国产一区在线 | 宅女噜噜66国产精品观看免费 | 亚洲人成人一区二区在线观看 | 日本精品一区二区三区在线观看 |