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

淺述基于Klocwork的QT開發(fā)環(huán)境軟件代碼審查

2021-02-03 08:40:52陳瑩趙玉麗
科學(xué)與信息化 2021年3期
關(guān)鍵詞:工程分析

陳瑩 趙玉麗

南京萊斯電子設(shè)備有限公司 江蘇 南京 210000

引言

QT是面向?qū)ο蟮膽?yīng)用跨平臺的C/C++語言工具包,QT應(yīng)用程序設(shè)計方法遵循面向?qū)ο蟮木幊谭椒ā>帉慟T應(yīng)用程序的主要方法是基于已有的QT類進(jìn)行編寫用戶類。它既可以開發(fā)GUI程序,也可以開發(fā)非GUI程序,比如控制臺工具和服務(wù)器。QT擁有很多的窗口部件,如按鈕、菜單、滾動條和應(yīng)用程序窗口等,這些窗口部件組合起來可以創(chuàng)建很多種用戶界面[1]。

1 背景介紹

QT開發(fā)環(huán)境能夠跨平臺運行,目前支持的平臺系統(tǒng)有:Linux(32位、64位)(包括中標(biāo)麒麟平臺),MacOSX以及Windows平臺。它提供給應(yīng)用程序開發(fā)者建立圖形用戶界面所需的功能。QT很容易擴(kuò)展,并且允許真正的組件編程。QT利用signal/slot(信號/槽)機(jī)制實現(xiàn)對象之間的通信。signal和slot沒有構(gòu)成一一對應(yīng)的關(guān)系,同一個signal可以連接很多個slot,多個signal也可以與某一個slot相連。雖然signal/slot機(jī)制比回調(diào)函數(shù)的速度緩慢,但緩慢速度并不明顯。特別是在嵌入式系統(tǒng)中這些signal和slot使用不多的場合,這種速度上的損失可以忍受,并且該種機(jī)制具有簡明性和靈活性[2]。開發(fā)團(tuán)隊在對應(yīng)的集成和測試中若能有效發(fā)現(xiàn)違反編碼規(guī)則的問題、軟件代碼缺陷和存在的安全隱患漏洞,如:內(nèi)存及資源管理錯誤、內(nèi)存泄漏、空指針引用、未初始化的變量、未經(jīng)驗證的用戶輸入、數(shù)組邊界采用不可信數(shù)據(jù),可以大大降低系統(tǒng)后續(xù)風(fēng)險,同時減少嚴(yán)重經(jīng)濟(jì)損失甚至災(zāi)難事故的發(fā)生概率[3-5]。應(yīng)用源代碼分析工具Klocwork,不需設(shè)計測試用例,也不需運行程序,就能夠快速檢測出Windows、Linux操作系統(tǒng)下C、C++、Java語言代碼漏洞、代碼設(shè)計缺陷,并同時可生成詳細(xì)、全面的缺陷修復(fù)率以及其他關(guān)鍵軟件度量的報告。

1 傳統(tǒng)模式的代碼審查

通常情況下,Klocwork可以通過新建一個測試項目,輸入項目名,選擇文件類型,并選擇要分析的dsw或dsp工程名,然后在valid configurations欄下面選擇debug選項,鉤選生成測試報告,從而完成測試項目的生成。

代碼審查的具體方法為:

1.1 設(shè)置環(huán)境變量

將qmake、nmake加入環(huán)境變量,或可修改Kwcc-config.xml加入頭文件的路徑,以消除分析錯誤防止分析結(jié)果不準(zhǔn)確。

1.2 創(chuàng)建一個新項目

如果這個項目是第一次分析,就在Klocwork上創(chuàng)建一個新項目,使用命令為kadmincreate-project<my-project-name>,如果不是第一次分析的,就不用再次創(chuàng)建新項目了,使用原來創(chuàng)建的項目名即可。

1.3 導(dǎo)入kb文件

導(dǎo)入kb文件,命令為:kwadmin import- config <myproject-name>QT 4.6.2kb

1.4 根據(jù).pro文件生成.out文件

打開VS命令窗口,執(zhí)行命令,如D:QTQT5.3inqmake.exe,執(zhí)行成功后,會在.pro工程目錄下生成makefile、makefile.debug、makefile.release三個文件。在VS命令窗口中,執(zhí)行kwinject nmake -f makefile.release命令,可以在.pro文件目錄下看到有.out文件生成,打開生成的.out文件,可以查看到正確的版本號和相關(guān)的.out信息[6]。

(1)執(zhí)行nmake -f makefileclean命令

在VS命令窗口中,執(zhí)行nmake -f makefile clean命令,可以根據(jù)輸入調(diào)試信息查看默認(rèn)用的哪個makefile。例如,nmake -f Makefile.release clean

(2)使用klocwork分析QT項目

使用Klocwork分析QT項目的命令為 kwbuildproject

-project<my-project-name>-f-o tables kwinject.out,此步驟即build文件。

(3)將分析后的項目結(jié)果導(dǎo)入數(shù)據(jù)庫

將分析后的項目結(jié)果導(dǎo)入數(shù)據(jù)庫的命令為:kwadmin load<my-project-name>tables,此時可進(jìn)入Klocwork start page中進(jìn)入 project list里查看.pro工程的問題列表。

但是Klocwork Insight版本對QT的支持并不完全,比如針對QT4.7和QT5.4等開發(fā)環(huán)境,無法生成對應(yīng)的out文件,目前缺少可以直接進(jìn)行廣泛代碼審查的測試腳本。下面就在實踐中總結(jié)的通過命令行方式進(jìn)行代碼審查的腳本方法進(jìn)行探討。

2 設(shè)置腳本進(jìn)行代碼審查

2.1 設(shè)置腳本對QT4.7開發(fā)環(huán)境下的代碼審查

(1)創(chuàng)建工程,創(chuàng)建檢查工程需要執(zhí)行如下指令

. /K10 /server /bin/kwadmin-urlhttp://安裝Klocwork工具的服務(wù)器IP地址: 8080 create -project,可以通過瀏覽器網(wǎng)頁檢查工程創(chuàng)建情況,登錄http://localhost:8080/輸入用戶名Administrator 密碼為空,查看工程創(chuàng)建情況。

1)編譯生成中間文件

cd到工程目錄下,找到Makefile文件,執(zhí)行makeclean命令; 執(zhí)行kwinject -o Myproject.out make生成out文件。

2)分析中間文件

kwbuildproject-add-analysis-options=--lef-planner-inmemory-project Myproject-o tables -f kwinject.out。

執(zhí)行命令后,到工程目錄下,生成tables目錄成功。

3)生成報告

執(zhí)行命令 kwadmin load Myproject tables。

4)查看報告

登錄 http://localhost:8080/查看工程,點擊工程選擇 issues列表,查看問題描述。

2.2 設(shè)置腳本對 QT5.4開發(fā)環(huán)境下的代碼審查

(1)創(chuàng)建工程,創(chuàng)建檢查工程需要執(zhí)行如下指令

. /K10 /server /bin/kwadmin-urlhttp://安裝Klocwork工具的服務(wù)器IP 地址: 8080 create - project,可以通過瀏覽器網(wǎng)頁檢查工程創(chuàng)建情況,登錄http://localhost:8080/輸入用戶名Administrator密碼為空,查看工程創(chuàng)建情況[7]。

(2)編譯生成中間文件

1)cd到QT安裝路徑下,…mingw491-32in,執(zhí)行qmake.exe命令。

2)cd到工程路徑下,執(zhí)行clean命令:…mingw32-make -f Makefile.Debugclean。

3)執(zhí)行kwinjectmingw32-make-f Makefile.Debug生成out文件。

(3)分析中間文件

kwbuildproject add-analysis-options=--lef-planner-in-memory--project Myproject -o tables -f kwinject.out。

執(zhí)行命令后,到工程目錄下,生成tables目錄成功。

(4)生成報告

執(zhí)行命令 kwadmin load Myproject tables。

(5)查看報告

登錄 http://localhost:8080/查看工程,點擊工程選擇issues列表,查看問題描述。

3 檢查結(jié)果分析與處理

通過腳本對QT環(huán)境下的代碼審查,可適用于各通用平臺,且不需要生成中間過程out文件,方法簡便易行。確認(rèn)是源代碼問題,修改源代碼后重新合入版本庫,啟動新一輪的Klocwork檢查;根據(jù)新的檢查結(jié)果確認(rèn)代碼缺陷是否已經(jīng)被解決,已經(jīng)解決掉的缺陷呈現(xiàn)狀態(tài)為前一次檢查出來的缺陷數(shù)量減少。確認(rèn)是誤報的缺陷,登錄Klocwork檢查的WebUI方面完成誤報缺陷的屏蔽,屏蔽成功之后分析結(jié)果的缺陷數(shù)也會減少[8-9]。

4 典型案例

某公司有個軟、硬件結(jié)合的大型開發(fā)項目。分別在Windows 7 操作系統(tǒng)、QT環(huán)境下安裝Klocwork進(jìn)行代碼檢查。對該模塊進(jìn)行檢查的掃描結(jié)果如下表所示。查結(jié)果報告中給出了模塊的告警數(shù)量,并詳細(xì)列舉了缺陷的類型與缺陷定位。開發(fā)工程師通過登錄檢查的WebUI頁面檢查結(jié)果報告,對產(chǎn)品源代碼進(jìn)行分析和處理,將缺陷歸零,有效提高了代碼質(zhì)量。

檢查的掃描結(jié)果表

工作實踐表明Klocwork檢查有助于及時發(fā)現(xiàn)并解決QT開發(fā)環(huán)境下軟件源代碼的各種缺陷,便于產(chǎn)品主管了解工作進(jìn)度和解決存在的問題,進(jìn)一步提升產(chǎn)品質(zhì)量。

5 結(jié)束語

本文設(shè)計了廣泛適用于通用平臺的Klocwork代碼審查工具的腳本,并通過QT4.7/QT5.4開發(fā)環(huán)境的適應(yīng)舉例闡明了該腳本的易用性和可行性。在klocwor代碼審查實踐的基礎(chǔ)上,對klocwork如何支持QT開發(fā)環(huán)境下的.pro文件問題審查進(jìn)行了詳細(xì)的分析說明,從而對軟件開發(fā)人員和測試人員有較好的參考價值。

猜你喜歡
工程分析
隱蔽失效適航要求符合性驗證分析
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統(tǒng)及其自動化發(fā)展趨勢分析
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
工程
中西醫(yī)結(jié)合治療抑郁癥100例分析
工程
工程
工程
主站蜘蛛池模板: 丰满少妇αⅴ无码区| 日韩高清一区 | 亚洲av无码人妻| 波多野结衣爽到高潮漏水大喷| 欧美α片免费观看| 亚洲电影天堂在线国语对白| 日韩精品一区二区深田咏美| 欧美不卡视频在线观看| 亚洲成人播放| a毛片免费在线观看| 国产91小视频在线观看| 高清久久精品亚洲日韩Av| 欧美一区二区三区国产精品| 成人日韩精品| 国产福利拍拍拍| 国产无遮挡裸体免费视频| 婷婷伊人久久| 久久国产精品影院| 无码专区在线观看| 欧洲极品无码一区二区三区| hezyo加勒比一区二区三区| 99热这里只有成人精品国产| 久久不卡精品| 欧洲精品视频在线观看| 欧美色亚洲| 欧美第一页在线| 99在线国产| 97在线观看视频免费| 欧美日韩激情在线| 高清无码手机在线观看| 亚洲经典在线中文字幕| 一级看片免费视频| 国产亚洲男人的天堂在线观看| 无码免费视频| 成人一区专区在线观看| 亚洲永久视频| 国产极品美女在线| 色吊丝av中文字幕| 麻豆精品久久久久久久99蜜桃| 91精品人妻互换| 亚洲综合日韩精品| 欧美区国产区| 无码专区在线观看| 国产资源免费观看| 国产一区亚洲一区| 国内精自线i品一区202| 青青青亚洲精品国产| 爱色欧美亚洲综合图区| 亚洲最新网址| 亚洲综合欧美在线一区在线播放| av在线无码浏览| 久久精品国产免费观看频道| 99久久成人国产精品免费| 久久久受www免费人成| 国产精品理论片| 精品人妻无码中字系列| 免费人欧美成又黄又爽的视频| 成人av专区精品无码国产| Jizz国产色系免费| 手机在线国产精品| 亚洲视频三级| 就去色综合| 国产日本欧美亚洲精品视| 欧美午夜性视频| 国产全黄a一级毛片| 国产成人久视频免费| 亚洲区一区| 成人亚洲国产| 中文国产成人精品久久| 国产女人在线| 97久久免费视频| 欧美成人A视频| 国产微拍一区二区三区四区| 三上悠亚在线精品二区| 国产精品自在线天天看片| 97人人做人人爽香蕉精品| 欧美区一区二区三| 无码国产偷倩在线播放老年人| 在线人成精品免费视频| 久久综合九九亚洲一区| 国产精品手机视频一区二区| 91视频99|