• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Klockwork檢查工具部署的方案設(shè)計(jì)與實(shí)現(xiàn)

      2020-08-04 10:20:37李學(xué)強(qiáng)
      數(shù)碼世界 2020年7期

      摘要:在大型軟件項(xiàng)目開發(fā)過(guò)程中,為了保證軟件質(zhì)量,除了對(duì)軟件功能進(jìn)行測(cè)試,同時(shí)也會(huì)引入源代碼靜態(tài)檢查工具對(duì)源代碼進(jìn)行掃描,及時(shí)發(fā)現(xiàn)代碼中的缺陷。Klockwork工具是Klockwork公司基于專利技術(shù)分析引擎開發(fā)的一款出色的靜態(tài)分析軟件。本文針對(duì)大型軟件項(xiàng)目代碼靜態(tài)檢查的發(fā)展趨勢(shì),從多人并行開發(fā)代碼的流程出發(fā),通過(guò)對(duì)比Klockwork提交即檢查的方法,提出一種查詢?nèi)咳毕莶?duì)代碼提交執(zhí)行攔截的部署方法。希望能為軟件項(xiàng)目開發(fā)的代碼缺陷治理提供一種參考。本文首先在前言部分指出了當(dāng)前軟件項(xiàng)目在開發(fā)效率上的痛點(diǎn),并提出快速治理的方法 。然后介紹了多人并行開發(fā)的代碼提交流程,并詳細(xì)介紹了Klockwork工具的部署方法和使用效果。最后總結(jié)Klockwork工具部署的意義。

      關(guān)鍵詞:VerifyCI? Klockwork 代碼安全

      1 前言

      在軟件開發(fā)過(guò)程中,由其是多人同時(shí)開發(fā)時(shí),由于每個(gè)人的編碼習(xí)慣、能力大小、知識(shí)水平都有很大的不同,要想寫出沒(méi)有代碼缺陷的軟件幾乎是不可能的。如果有些代碼缺陷不能及時(shí)被發(fā)現(xiàn),如空指針訪問(wèn)、數(shù)組越界、內(nèi)存泄漏或溢出等,很可能會(huì)對(duì)軟件的可靠性、穩(wěn)定性造成很大的影響。Klockwork工具可以通過(guò)跟蹤代碼編譯過(guò)程,分析出絕大部分的此類代碼缺陷。不過(guò)對(duì)于大型軟件項(xiàng)目,Klockwork工具對(duì)代碼完成一次全量檢查,將耗費(fèi)大量的時(shí)間,根據(jù)Klockwork工具檢查結(jié)果進(jìn)行分析,從而對(duì)代碼進(jìn)行修改,修改后又要進(jìn)行Klockwork工具的檢查,這樣的反復(fù)操作將使軟件開發(fā)效率及其低下。也有軟件項(xiàng)目采用Klockwork工具進(jìn)行增量檢查,增量檢查需要保留上次的編譯環(huán)境,而且需要同步全量檢查結(jié)果,對(duì)環(huán)境的依賴太大,而且增量檢查由于檢查不全面,很可能會(huì)出現(xiàn)代碼缺陷不能全部檢查出來(lái)的情況。本文提出一種新的檢查方法,既能不影響開發(fā)效率,又能保證檢查出的代碼缺陷沒(méi)有遺漏。

      2 方案設(shè)計(jì)

      多人同時(shí)開發(fā)的大型軟件項(xiàng)目,一般代碼都是由專門的代碼托管軟件進(jìn)行管理。現(xiàn)在最為流行的代碼托管軟件主要是gerrit軟件,gerrit軟件經(jīng)常與jenkins軟件聯(lián)合管理代碼的提交、驗(yàn)證等。

      2.1 代碼合入流程

      如圖1所示,在多人同時(shí)進(jìn)行軟件開發(fā)時(shí),開發(fā)人員首先從代碼庫(kù)中將已經(jīng)完成的存量代碼更新到本地,然后就可以在存量的基礎(chǔ)上進(jìn)行代碼開發(fā),待本次代碼開發(fā)完成后,將本次開發(fā)完成的代碼提交到Gerrit,此時(shí)其他開發(fā)人員都可以通過(guò)Gerrit的web頁(yè)面看到該次提交的代碼內(nèi)容,可以對(duì)該次提交進(jìn)行評(píng)審,同時(shí)本次代碼提交也會(huì)觸發(fā)jenkins任務(wù),即VerifyCI,VerifyCI負(fù)責(zé)拖取本次代碼進(jìn)行編譯構(gòu)建和其他檢查,當(dāng)代碼評(píng)審和VerifyCI檢查全部通過(guò)后,代碼提交到Git庫(kù)里,這是代碼開發(fā)流程的整個(gè)過(guò)程。

      2.2 Klockwork檢查工具在VerifyCI中的部署

      如圖2所示,Klockwork檢查代碼庫(kù)中代碼的缺陷,檢查動(dòng)作可以定時(shí)器完成觸發(fā),也可以代碼入庫(kù)的動(dòng)作觸發(fā)。Klockwork檢查任務(wù)被觸發(fā)后,將從代碼庫(kù)中拖取代碼進(jìn)行掃描,Klockwork掃描會(huì)跟蹤編譯過(guò)程分析出代碼中存在的缺陷,并將缺陷生成報(bào)告以web站點(diǎn)的方式查看,在VerifyCI中并不直接對(duì)代碼進(jìn)行Klockwork掃描,而是通過(guò)Klockwork站點(diǎn)的api接口查詢存量代碼的缺陷治理情況。為了能推動(dòng)開發(fā)人員盡快處理代碼缺陷,在VerifyCI中查詢到存量代碼有未治理的代碼缺陷時(shí),使本次VerifyCI構(gòu)建失敗,并將失敗結(jié)果回填給Gerrit,從而限制代碼入庫(kù)。這種部署方式即可以快速得到VerifyCI的構(gòu)建結(jié)果,又可以推動(dòng)開發(fā)人員積極治理存量代碼中的缺陷。

      2.3 Klockwork檢查效果

      當(dāng)VerifyCI查詢到存量代碼存在代碼缺陷未治理時(shí),要通過(guò)郵件形式給出具體的缺陷信息,以方便開發(fā)人員分析和治理。由于在VerifyCI中查詢到未處理的代碼缺陷時(shí),將不允許新的代碼合入,這樣開發(fā)人員將不得不優(yōu)先處理存量代碼的缺陷問(wèn)題。極大的加快了代碼缺陷的治理速度,提交軟件質(zhì)量和開發(fā)效率。

      3 總結(jié)

      綜上所述,在軟件開發(fā)過(guò)程中,為了提高代碼質(zhì)量,一方面要努力提高開發(fā)人員的代碼設(shè)計(jì)能力,盡量做到按規(guī)范設(shè)計(jì)代碼,努力減少因不規(guī)范的編程行為而引入代碼缺陷。另一方面,要通過(guò)部署各種代碼檢查工具來(lái)為軟件質(zhì)量保駕護(hù)航,盡量早的發(fā)現(xiàn)代碼缺陷,并能夠快速進(jìn)行治理。本文設(shè)計(jì)的Klockwork工具部署方案同樣適用于部署Coverity等檢查工具。

      參考文獻(xiàn)

      [1]快速檢測(cè)代碼缺陷與安全漏洞的方法與實(shí)踐[J].陳學(xué)勤.指揮信息系統(tǒng)與技術(shù). 2010(05).

      [2]Klocwork在軍用軟件測(cè)試中的應(yīng)用[J].梅磊,劉先博.航天標(biāo)準(zhǔn)化.2017(03).

      [3]麒麟系統(tǒng)下Klocwork的靜態(tài)分析方法[J].馬萌,谷偉,趙煜.計(jì)算機(jī)與網(wǎng)絡(luò).2019(20).

      [4]關(guān)于Klocwork測(cè)試規(guī)則的二次開發(fā)測(cè)試規(guī)則的本地化[J].王寧.電子世界.2013(17).

      [5]基于Klocwork的C/C++軟件靜態(tài)檢查[J].姜文,劉立康.航空計(jì)算技術(shù).2016(04).

      作者簡(jiǎn)介

      李學(xué)強(qiáng)(1981.9.20-)男,漢,山東菏澤人,本科學(xué)歷碩士學(xué)位,中興通訊股份有限公司,助理工程師,研究方向:操作系統(tǒng)及支撐軟件開發(fā)。

      抚远县| 肥城市| 中山市| 海原县| 泽州县| 浪卡子县| 乌兰县| 聊城市| 丰台区| 甘洛县| 礼泉县| 莒南县| 大连市| 沧州市| 博兴县| 伽师县| 独山县| 昆山市| 武威市| 双城市| 霞浦县| 沈阳市| 剑河县| 京山县| 博野县| 镇坪县| 江安县| 淮阳县| 临泽县| 廉江市| 班戈县| 金昌市| 泽库县| 惠来县| 醴陵市| 辉县市| 车致| 镶黄旗| 民权县| 山丹县| 吉安县|