环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產品分類

當前位置: 首頁 > 新聞熱點

靜態分析工具日益強大,可在產品開發早期發現缺陷

發布日期:2022-07-14 點擊率:53

工具已經從簡單的語法檢查器發展成強大的工具,可以用來發現在大規模代碼庫的復雜交互中所產生的缺陷。直到最近,它們仍被質量保證人員用來在接近項目完成的綜合創建期間評估代碼。


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


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


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


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


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


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


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


表1:可被靜態源代碼分析工具發現的典型錯誤。
表1:可被靜態源代碼分析工具發現的典型錯誤。


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


向開發早期推進


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


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


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


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


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


但Anderson補充道,隨著被分析代碼規模的增長,結果將有所改善。經常較早地使用靜態分析工具,還有助于培養開發人員發現他們個人編碼風格的缺點,并改變他們的編程方式以便防止重復發生相同類型的錯誤。


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


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


何時采用靜態工具?


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


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


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


作者:Richard A. Quinnell 特約技術編輯








下一篇: 業內重要廠商建立Home

上一篇: 工程師們的設計新幫手

主站蜘蛛池模板: 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 高压负荷开关-苏州雷尔沃电器有限公司| 元拓建材集团官方网站| 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 博客-悦享汽车品质生活| 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 北京租车牌|京牌指标租赁|小客车指标出租 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 芝麻黑-芝麻黑石材厂家-永峰石业 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 真空包装机-诸城市坤泰食品机械有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 焊接减速机箱体,减速机箱体加工-淄博博山泽坤机械厂 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 |