999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

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

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

1 前言

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

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

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

2.1 代碼合入流程

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

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

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

2.3 Klockwork檢查效果

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

3 總結(jié)

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

參考文獻(xiàn)

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

[2]Klocwork在軍用軟件測試中的應(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測試規(guī)則的二次開發(fā)測試規(guī)則的本地化[J].王寧.電子世界.2013(17).

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

作者簡介

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

主站蜘蛛池模板: 天堂成人av| 亚洲黄网在线| 999国产精品| 亚洲欧美日韩另类| 国产丰满大乳无码免费播放| 18禁黄无遮挡网站| 亚洲无码视频一区二区三区| 国产超薄肉色丝袜网站| 国产一在线观看| 一级爱做片免费观看久久| 亚洲欧美国产五月天综合| 在线色综合| 亚洲国产精品不卡在线| 国产精品视频系列专区| 香蕉在线视频网站| 色婷婷啪啪| 亚洲国产成人久久77| 国产精品原创不卡在线| 精品国产91爱| 综合色亚洲| 国产区在线观看视频| 久久这里只有精品2| 91网址在线播放| 久久中文电影| 亚洲一级毛片在线播放| jizz在线观看| 毛片卡一卡二| 情侣午夜国产在线一区无码| 亚洲狼网站狼狼鲁亚洲下载| 久久国产精品无码hdav| 国产欧美日韩在线一区| 久久频这里精品99香蕉久网址| 欧美a级完整在线观看| 亚洲一区二区黄色| 精品久久高清| 中美日韩在线网免费毛片视频| 亚洲动漫h| 亚洲无码高清视频在线观看| 亚洲永久精品ww47国产| 国产综合网站| 久久精品国产一区二区小说| 亚洲v日韩v欧美在线观看| 国产乱人伦精品一区二区| 女同久久精品国产99国| 无码人中文字幕| 亚洲欧美成人在线视频| 亚洲品质国产精品无码| 欧美日韩一区二区在线播放| 亚洲综合第一页| 成年女人18毛片毛片免费| 狂欢视频在线观看不卡| 91探花在线观看国产最新| 亚洲侵犯无码网址在线观看| 人人澡人人爽欧美一区| 亚洲中文字幕在线精品一区| 久草视频精品| 免费av一区二区三区在线| 人人看人人鲁狠狠高清| 亚洲第一黄色网址| 精品久久久久成人码免费动漫| 亚洲狠狠婷婷综合久久久久| 88国产经典欧美一区二区三区| 国产在线一二三区| 国产高清不卡| 久久综合国产乱子免费| 精品国产成人av免费| 91无码人妻精品一区二区蜜桃| 激情六月丁香婷婷四房播| 99视频在线精品免费观看6| 真实国产精品vr专区| 国产美女无遮挡免费视频网站 | 丝袜美女被出水视频一区| 另类综合视频| 亚洲性日韩精品一区二区| 日韩欧美高清视频| 色综合天天综合中文网| 手机成人午夜在线视频| 亚洲美女操| 亚洲AV无码不卡无码| 日本午夜在线视频| 久久77777| 亚洲国产精品日韩专区AV|