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ā)。

主站蜘蛛池模板: 国产精品视频a| 日本欧美成人免费| 天天综合网站| 久久久久久尹人网香蕉| 久久a毛片| 夜夜操天天摸| 91精品在线视频观看| 久久精品午夜视频| 免费看a级毛片| 一区二区自拍| 免费一级毛片不卡在线播放| 在线观看91精品国产剧情免费| 91视频青青草| 亚洲成av人无码综合在线观看| 精品午夜国产福利观看| 亚洲视频三级| 欧美亚洲国产精品久久蜜芽| 欧美国产综合色视频| 刘亦菲一区二区在线观看| 波多野结衣在线一区二区| 亚洲性一区| 中文字幕欧美日韩| 国产欧美网站| 蝌蚪国产精品视频第一页| 熟妇丰满人妻| 四虎国产精品永久一区| 亚洲一区二区三区麻豆| 欧美中文字幕在线视频| 久青草免费在线视频| 久久6免费视频| 日本不卡在线视频| 国产精品无码AⅤ在线观看播放| 亚洲精品视频免费看| 国产视频大全| yy6080理论大片一级久久| 在线观看亚洲精品福利片| 伊人久久大香线蕉综合影视| 在线观看欧美国产| 四虎综合网| 国产精品一区二区国产主播| 好久久免费视频高清| 精品国产免费观看| 亚洲伦理一区二区| 一级一级一片免费| 久久亚洲高清国产| 高清免费毛片| 在线观看国产精品第一区免费 | 久久99久久无码毛片一区二区| 色老头综合网| 国产视频一二三区| 国产成人综合日韩精品无码首页 | 亚洲成人高清在线观看| 久久人妻xunleige无码| 亚洲成AV人手机在线观看网站| 国产91小视频| 国产精品亚洲精品爽爽| 青青草国产在线视频| 国产精品亚洲精品爽爽| 国产成人精品在线1区| 欧美成人看片一区二区三区| 在线看AV天堂| 久久亚洲天堂| 无码中文字幕乱码免费2| 亚洲另类色| 成人久久精品一区二区三区| 亚洲天堂777| 国产夜色视频| 青青青国产精品国产精品美女| 天天操天天噜| 不卡的在线视频免费观看| 日本精品中文字幕在线不卡| 国产欧美视频在线| 又粗又大又爽又紧免费视频| 26uuu国产精品视频| 国产精品三区四区| 尤物视频一区| 99久久精品无码专区免费| 免费高清毛片| 免费a级毛片18以上观看精品| 国产成人亚洲日韩欧美电影| 激情无码字幕综合| 亚洲日产2021三区在线|