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

淺述基于Klocwork的QT開發環境軟件代碼審查

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

陳瑩 趙玉麗

南京萊斯電子設備有限公司 江蘇 南京 210000

引言

QT是面向對象的應用跨平臺的C/C++語言工具包,QT應用程序設計方法遵循面向對象的編程方法。編寫QT應用程序的主要方法是基于已有的QT類進行編寫用戶類。它既可以開發GUI程序,也可以開發非GUI程序,比如控制臺工具和服務器。QT擁有很多的窗口部件,如按鈕、菜單、滾動條和應用程序窗口等,這些窗口部件組合起來可以創建很多種用戶界面[1]。

1 背景介紹

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

1 傳統模式的代碼審查

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

代碼審查的具體方法為:

1.1 設置環境變量

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

1.2 創建一個新項目

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

1.3 導入kb文件

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

1.4 根據.pro文件生成.out文件

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

(1)執行nmake -f makefileclean命令

在VS命令窗口中,執行nmake -f makefile clean命令,可以根據輸入調試信息查看默認用的哪個makefile。例如,nmake -f Makefile.release clean

(2)使用klocwork分析QT項目

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

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

(3)將分析后的項目結果導入數據庫

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

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

2 設置腳本進行代碼審查

2.1 設置腳本對QT4.7開發環境下的代碼審查

(1)創建工程,創建檢查工程需要執行如下指令

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

1)編譯生成中間文件

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

2)分析中間文件

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

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

3)生成報告

執行命令 kwadmin load Myproject tables。

4)查看報告

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

2.2 設置腳本對 QT5.4開發環境下的代碼審查

(1)創建工程,創建檢查工程需要執行如下指令

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

(2)編譯生成中間文件

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

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

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

(3)分析中間文件

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

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

(4)生成報告

執行命令 kwadmin load Myproject tables。

(5)查看報告

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

3 檢查結果分析與處理

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

4 典型案例

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

檢查的掃描結果表

工作實踐表明Klocwork檢查有助于及時發現并解決QT開發環境下軟件源代碼的各種缺陷,便于產品主管了解工作進度和解決存在的問題,進一步提升產品質量。

5 結束語

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

猜你喜歡
工程分析
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統及其自動化發展趨勢分析
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
工程
中西醫結合治療抑郁癥100例分析
工程
工程
工程
主站蜘蛛池模板: 伊人91在线| 国产亚洲欧美在线中文bt天堂| 国产免费黄| 婷婷99视频精品全部在线观看| 国产成人福利在线| 亚洲一区国色天香| 亚洲国产看片基地久久1024 | 四虎永久在线| 日本少妇又色又爽又高潮| 成年看免费观看视频拍拍| 亚洲制服丝袜第一页| 国产特级毛片aaaaaaa高清| 91网站国产| 久久久久久午夜精品| 国产乱肥老妇精品视频| 白浆视频在线观看| 久热这里只有精品6| 欧美在线视频不卡第一页| 精品国产电影久久九九| 97久久超碰极品视觉盛宴| 在线看国产精品| 国产女人综合久久精品视| 日韩亚洲综合在线| 青青青亚洲精品国产| 成人精品免费视频| 亚洲乱码在线视频| 色网站免费在线观看| 欧美精品v日韩精品v国产精品| 日韩成人在线一区二区| 国产国产人免费视频成18| 91无码视频在线观看| 青青热久免费精品视频6| 亚洲成av人无码综合在线观看| 国产尹人香蕉综合在线电影| 永久在线播放| 国产成人综合在线观看| 再看日本中文字幕在线观看| 亚洲大尺码专区影院| 日韩中文精品亚洲第三区| 四虎综合网| 91亚洲精选| 欧美激情视频二区三区| 在线观看精品国产入口| av一区二区人妻无码| 亚洲欧美成aⅴ人在线观看| 亚洲AV成人一区国产精品| 国产一区二区三区日韩精品| 国产综合网站| 日韩大片免费观看视频播放| 国产精鲁鲁网在线视频| 欧洲在线免费视频| 亚洲男人天堂久久| 九月婷婷亚洲综合在线| 亚洲精品无码AV电影在线播放| 欧美午夜一区| 国产精品视屏| 久热99这里只有精品视频6| 人人91人人澡人人妻人人爽| 99热在线只有精品| 欧美亚洲激情| 亚洲an第二区国产精品| 97狠狠操| 国产精品无码AV片在线观看播放| 99视频精品全国免费品| 999精品视频在线| 国产成人综合在线观看| AV色爱天堂网| 国产福利在线观看精品| 国产一区二区三区夜色 | 国产高清不卡视频| 免费无遮挡AV| 蜜桃视频一区二区| 国产亚洲精品精品精品| 国产成人91精品免费网址在线| 免费国产高清精品一区在线| 亚洲精品国产首次亮相| 中文成人在线| 午夜视频免费试看| 日韩亚洲综合在线| 毛片手机在线看| h视频在线播放| 亚洲Av激情网五月天|