亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Klocwork在軍用軟件測試中的應用

        2017-09-20 09:41:34劉先博
        航天標準化 2017年3期
        關鍵詞:測試工具測試人員軍用

        梅 磊 劉先博

        (中國電子科技集團38所,合肥,230000)

        Klocwork在軍用軟件測試中的應用

        梅 磊 劉先博

        (中國電子科技集團38所,合肥,230000)

        文摘:分析在軟件測試工作中出現(xiàn)的大量重復性工作,引用軟件工程化管理的自動化測試思維,自主定制測試腳本,在Windows系統(tǒng)及國產(chǎn)麒麟操作系統(tǒng)下使用Klocwork測試工具進行自動化測試設計、實現(xiàn)和應用,通過在項目開發(fā)過程中定期循環(huán)交替進行Klocwork的全面檢查,發(fā)現(xiàn)集成測試和系統(tǒng)測試所不能發(fā)現(xiàn)的問題,提高項目代碼的質量,降低整個測試過程的成本。

        靜態(tài)分析;靜態(tài)測試;軟件工程化。

        隨著我國國防實力的穩(wěn)步提升以及軍用裝備信息化建設要求的提高,對軍用裝備軟件系統(tǒng)的要求也越來越高,其安全性與穩(wěn)定性已成為裝備研發(fā)過程的重中之重。然而,在軍用軟件開發(fā)期間,由于人為因素引入的錯誤,隱藏了許多難以發(fā)現(xiàn)的缺陷。通過使用多種專用的軟件代碼靜態(tài)分析工具,既可以有效提高我們測試人員的測試效率,又可以即時的、準確的分析源代碼,識別軟件中嚴重的安全性缺陷和質量缺陷,延長復雜軟件的生命周期。有效地使用軟件靜態(tài)分析工具實現(xiàn)對軍用軟件問題的發(fā)掘與探索、提高軟件測試工作的質量和效率已經(jīng)成為軟件測試領域的應用熱點。

        Klocwork軟件是Klocwork公司基于專利技術分析引擎開發(fā)、綜合了近年來各種最先進的靜態(tài)分析技術而形成的一款具有很多突出特征的靜態(tài)分析工具,利用其專利技術能發(fā)現(xiàn)全面且詳細的軟件缺陷種類,它支持現(xiàn)行市面常用的編程語言(如C、C++和Java等)。同時,還支持多種度量以及代碼規(guī)范的檢查,可以通過設置相應的閾值,提高檢測效率。特別針對C/C++語言引用的非法指針、內(nèi)存泄漏、數(shù)組越界及緩沖區(qū)溢出等缺陷的檢測擁有不俗的表現(xiàn)。該工具對軟件架構、編程規(guī)則的違反情況提供可視化的架構分析及優(yōu)化建議,并與多種主流的IDE開發(fā)環(huán)境進行集成,可持續(xù)為大型及超大型(上千萬代碼行)軟件項目提供測試支持。

        1 Klocwork的工作內(nèi)容和工作流程

        1.1 工作內(nèi)容

        由于Klocwork的測試環(huán)境通常不直接向用戶提供自動測試框架或者腳本,而往往要借助于集成開發(fā)環(huán)境或腳本來實現(xiàn)自動化測試。通常測試前,首先就要明確被測軟件的測試環(huán)境,在被測軟件和測試工具中建立穩(wěn)固的聯(lián)系,這樣才能順利保證靜態(tài)分析工作的進行。

        Klocwork是一種基于Client/Server架構的源代碼靜態(tài)分析工具,支持多語言、多平臺的各類集成開發(fā)環(huán)境。同時,利用On The Fly技術可以在配置完成后瞬間開始進行分析,并且可以拖拽式地生成測試報告,極大地提高和方便測試人員在本地查看、修改代碼中的錯誤。在外場的開發(fā)人員和測試人員也可以非常方便地利用Klocwork的這一特點,應用Trace Back技術來對發(fā)現(xiàn)的問題繼續(xù)追溯,對Bug的發(fā)現(xiàn)和管理也提供了一種新的思路。如果在遇到外場軟件項目開發(fā)周期緊張的情況下,測試人員可用便攜式測試設備在實裝環(huán)境下完成軟件的靜態(tài)分析工作,然后將測試數(shù)據(jù)注入本地測試分析數(shù)據(jù)庫內(nèi),以供每位測試人員對測試結果進行分析和整理,極大地改善了測試環(huán)境的局限性,提高了外場測試工作的靈活性。

        Klocwork的代碼靜態(tài)分析環(huán)境結構如圖1所示。

        在當前版本的Klocwork分析界面中,工具將找到的缺陷明確分為致命(critical)、嚴重(severe)、錯誤(error)和非預期(unexpected)等10個等級,并且對于各類問題都有明確、詳細的解釋與說明。同時,對于發(fā)現(xiàn)的每個問題,通過簡易的操作便可追溯到具體的代碼行,直觀、簡潔地對問題進行分析與修改。特別是,作為嚴重影響軟件正常工作、在日常測試工作中最為重視的致命性錯誤,Klocwork將空指針引用、緩沖區(qū)溢出、數(shù)組越界、內(nèi)存泄漏等19類錯誤列入其中,并針對每類典型錯誤都列舉了實例,便于操作人員的理解和使用。

        Klocwork可以對當前我國軍用雷達裝備的軟件系統(tǒng)研發(fā)平臺及環(huán)境提供完整的支持。其主要特點包括:多語言——C、C++、匯編等;多平臺——Windows、Linux等;支持多種編譯器——ARM系列、TI系列、WinderRiver系列、Microsoft Visual C++、Green Hills系列等;支持的集成開發(fā)環(huán)境——Microsoft Visual Studio 6.0及以上、Tornado 2.0及以上、Visual DSP++5.0及以上、QT4.8.0及以上等。

        1.2 工作流程

        針對基于Klocwork搭建的自動化測試流程必須基于各種編輯器的命令行操作界面方式來設計,同時按照測試人員的測試需求,軟件模塊的優(yōu)先級,以及不同程度下軟件代碼的復雜程度,通過設計和編寫符合要求的自動化測試腳本來實現(xiàn)靜態(tài)分析的自動化測試過程。在命令行界面編譯模式下的Klocwork測試工作流程如圖2所示。

        Klocwork測試工作主要有以下幾個步驟。

        a)打開安裝路徑E∶KlocworkServer 10.0config的文件夾中kwfilter.conf文件,查看當前Klockwork命令是否支持被測軟件的編譯器。

        b)運行make-f Makefile clean來清理陳舊的構建,或手動刪除已生產(chǎn)的目標文件。

        c)使用被測軟件的編譯器在相匹配的編譯環(huán)境中對被測軟件進行編譯。

        d)啟動KMC服務功能,并創(chuàng)建項目,設置項目屬性,同時添加被測軟件源代碼文件。

        e)開始測試執(zhí)行階段,利用kwinject命令來獲取編譯過程信息:kwinject C∶Program Files (x86)Analog DevicesVisualDSP 5.0gmake-378"-f dsp3.mak dsp3_Debug。

        f)通過kwbuildproject命令來分析被測軟件源代碼:kwbuildproject--urlhttp∶//localhost∶8080/my_project-o my_tables kwinject.out。

        g)待工具分析結束后,將分析結果上傳至服務器,如kwadmin--url http∶//server2∶8080/ load my_project my_tables。

        h)登陸http∶//localhost∶8080/即可查看靜態(tài)分析結果。

        Klocwork對于不同編譯環(huán)境下的分析執(zhí)行過程雖然大同小異,但仍存在一定程度上的差異。因此,導致編譯過程或分析過程出現(xiàn)錯誤,而無法正常得到靜態(tài)分析結果。以下將從當前軍用軟件常用開發(fā)平臺(Windows、基于linux平臺開發(fā)的軍用軟件逐漸轉向使用國產(chǎn)麒麟系統(tǒng))來分別描述在不同平臺下,配合不同類型的集成開發(fā)環(huán)境,Klocwork的靜態(tài)測試過程。

        2 基于Windows系統(tǒng)的靜態(tài)測試

        由于歷史原因使得國內(nèi)很多的軍用軟件開發(fā)環(huán)境仍是基于Windows系統(tǒng),即基于Windows系統(tǒng)開發(fā)而來的軟件在日常的測試工作中還是占了很大一個部分,因此靈活地使用Klocwork對這類程序進行靜態(tài)分析就顯得尤為重要。下面將以Windows系統(tǒng)下基于DSP++5.0開發(fā)環(huán)境的軍用軟件靜態(tài)測試過程為例,詳細描述此類軟件的靜態(tài)分析過程。基于Windows系統(tǒng)的靜態(tài)分析環(huán)境見表1。

        表1 基于Windows平臺的靜態(tài)分析環(huán)境

        具備靜態(tài)分析測試環(huán)境后,按照如圖3所示流程進行配置,并進行分析執(zhí)行過程。

        a)打開Visual DSP++的IDE,導入被測軟件Pro_1的項目文件,并進行編譯。

        b)在CMD運行模式下,測試DSP++編譯器的可用性:gmake-378-h(huán)。

        c)將當前工作路徑轉換至Pro_1源代碼所在路徑E:mcfx_4dspPro_1。

        d)Clean項目Pro_1的生成文件,并用命令行對源代碼重新進行編譯:gmake-378-f Pro_1.mak Pro_1_Debug“.constant_object_parameter.c”。

        e)編譯通過后,再次執(zhí)行Clean操作,并使用kwinject命令重新獲取編譯過程信息:kwinjectgmake-378-fPro_1.mak Pro_1_Debug,編譯結束后,在Pro_1的根目錄下生成kwinject.out的文件。

        f)在Klocwork中創(chuàng)建Pro_1項目ksadmin-url http∶//localhost∶8080/create-project mcfx_4dsp_1。

        g)對Pro_1使用kwbuildproject命令進行分析:kwbuildproject-urlhttp∶//localhost∶8080/mcfx _4dsp_3-o my_tables kwinject.out,同時在Pro_1根目錄下生成my_tables文件夾。

        h)向服務器數(shù)據(jù)庫上傳本次分析結果:kwadmin-urlhttp∶//localhost∶8080/loadmcfx_4dsp _3 my_tables。

        i)登陸服務器客戶端,查看靜態(tài)分析結果。

        3 基于國產(chǎn)麒麟系統(tǒng)的靜態(tài)測試

        近年來,隨著網(wǎng)絡技術和信息技術的飛速發(fā)展,網(wǎng)絡技術和信息技術安全已經(jīng)與我國政治、經(jīng)濟、國防、文化等公共安全密不可分。而我國操作系統(tǒng)市場在以往一直被微軟的Windows壟斷,所以推動國產(chǎn)操作系統(tǒng)的發(fā)展也是國家重要的發(fā)展方向。中標麒麟(GeoKylin)操作系統(tǒng)是目前國內(nèi)安全級別最高的操作系統(tǒng),并且可以為各類用戶提供全方位的應用安全保護,可以為軍用軟件提供更加安全、可靠的運行環(huán)境?;谥袠索梓胂到y(tǒng)的靜態(tài)分析環(huán)境見表2。

        表2 基于麒麟平臺的靜態(tài)分析環(huán)境

        由于麒麟系統(tǒng)基于linux內(nèi)核,與Windows系統(tǒng)下使用Klocwork進行靜態(tài)分析的過程會有異同,而且更加繁瑣。為了能夠縮減配置的步驟,提高開展靜態(tài)分析的效率,我們利用系統(tǒng)提供的命令,編寫靜態(tài)分析腳本,部分腳本如下所示:

        “#####功能:klocwork自動分析項目腳本

        #************被測軟件參數(shù)************

        #被測軟件名稱

        project_name="Pro_2"

        #被測軟件makefile文件路徑

        project_path=/home/Project Case/Pro_2/exe

        #********klocwork安裝的參數(shù)***********

        #klocwork安裝目錄

        kloc_dir=$HOME/klocwork

        #klocwork server

        KWSRV=http∶//localhost∶8080

        #*****************************

        ……

        #Create a project

        kwadmin--url$KWSRVcreate-project $project_name

        ……

        #Analyze the project

        clean_tables_dir$tables_directory

        mkdir$tables_directory

        kwbuildproject--url$KWSRV/$project_name-f-o$tables_directory kwinject.out

        ……”。

        在使用過程中應特別要注意的是,在使用前,需要將被測軟件參數(shù)中的項目名稱和路徑修改為Pro_2對應的項目信息。若為初次使用,必須要設置Klocwork安裝的參數(shù),而且項目名稱、路徑均不能使用中文。腳本自動執(zhí)行完成后,系統(tǒng)會將靜態(tài)分析結果自動上傳至測試數(shù)據(jù)服務器以供測試人員使用。

        4 測試結果分析

        對某軍用軟件項目4種主流測試工具(Pro_1、Pro_2經(jīng)過Klocwork、QAC、Testbed、C++Test)進行靜態(tài)分析測試,測試效率與測試結果統(tǒng)計分別見表3、表4。表3為幾種主流測試工具對同一項目測試后的統(tǒng)計時間;表4為工程項目經(jīng)過測試后得到的缺陷級別、缺陷類型及缺陷個數(shù)的統(tǒng)計結果。

        由表3可以得出,對于項目Pro_1的靜態(tài)測試工作,4種測試工具所用時間差距不大,基本可忽略不計。其中Klocwork由于省略了測試類型人工選擇的過程,所耗時間最短,擁有較高的測試效率,而Testbed由于測試類型較多,所以花費的時間最長。后期,選用更大代碼量的項目Pro_2來進行靜態(tài)分析,從測試結果來看,Klocwork自動化測試方法的優(yōu)越性便體現(xiàn)出來,成為唯一一個在1h以內(nèi)完成測試分析的工具。因此,對于軟件項目而言,代碼量越大,Klocwork的自動化測試過程所體現(xiàn)的優(yōu)越性會越明顯。

        表3 主流靜態(tài)分析工具測試效率比較

        表4 主流靜態(tài)分析工具測試結果比較

        表4列舉了4種測試工具發(fā)現(xiàn)的10種同類問題及個數(shù)的統(tǒng)計結果,而對于個別只被其中某一種或兩種工具檢測到的問題,此次則未列入其中。

        由結果可以得出,在此次靜態(tài)分析測試過程中,Klocwork共發(fā)現(xiàn)了70個問題缺陷,雖然問題總數(shù)稍少于QAC,但其中所包含的致命缺陷(19)和重要缺陷(18)均為4種工具中發(fā)現(xiàn)個數(shù)最多的。而這也恰恰是我們針對軟件靜態(tài)分析最為重視的地方,因為這些問題的存在不僅會導致軟件程序的易讀性、維護性等方面出現(xiàn)問題,特別情況下,還可能導致出現(xiàn)程序死機、異常退出等嚴重狀況。同時,Klocwork工具所發(fā)現(xiàn)的缺陷更多的是一類比較隱秘、不易發(fā)現(xiàn)的問題,如數(shù)組越界、資源泄漏等,都容易造成不可意料的經(jīng)濟損失和安全隱患。

        各類代碼靜態(tài)分析工具均有各自的側重點。如:QAC分析偏重編碼風格、冗余代碼、函數(shù)類型等編碼規(guī)則方面的審查;Klocwork軟件則側重于內(nèi)存泄露、空指針引用等靜態(tài)分析方面;Testbed傾向于發(fā)現(xiàn)代碼本身不符合編碼規(guī)則的問題;而C++Test能夠很好地發(fā)現(xiàn)變量未初始化和資源泄露等各類代碼結構的問題。因此,在日常工作中,通常會將各種測試工具配合使用,取長補短,不僅能提高代碼靜態(tài)分析的覆蓋率,而且能很好的提高測試效率、拓展測試的深度與廣度,這種方式也逐漸成為大多數(shù)軟件測評機構的選擇之一。

        直接針對代碼進行靜態(tài)分析可以在系統(tǒng)測試前找到很多問題、大幅度減少在系統(tǒng)測試時發(fā)現(xiàn)問題以及修復問題的時間,最終提高軟件測試環(huán)節(jié)的效率。在項目開發(fā)過程中定期循環(huán)交替進行Klocwork的全面檢查,能夠發(fā)現(xiàn)集成測試和系統(tǒng)測試所不能發(fā)現(xiàn)的問題,不斷提高項目代碼的質量,降低整個測試過程的人力成本、時間成本。這對于軍用軟件較高產(chǎn)品成熟度的要求顯得尤為重要,也使得自動化測試工具Klocwork的廣泛使用,已然成為當前普遍的應用趨勢。

        [1]尹浩,于秀山.程序設計缺陷分析與實踐[M].北京∶電子工業(yè)出版社,2011.

        [2]蔡建平.嵌入式軟件測試實用技術[M].清華大學出版社,2010.

        [3]黎連業(yè),王華,李淑春.軟件測試與測試技術[M].清華大學出版社,2009.[4]許育誠.軟件測試與質量管理[M].電子工業(yè)出版社,2004.

        [5]杜會斌,吳曉娟,周旭.自動測試在軍事電子技術中的應用[J].無線電工程,2005,35(9).

        [6]MARK,F(xiàn)WESTER.軟件測試自動化技術與實例詳解[M].電子工業(yè)出版社,2000.

        [7]路曉麗,等.軟件測試技術[M].機械工業(yè)出版社,2007.

        [8]Cem Kaner,Jack Falk,Hung Quoc Nguyen.計算機軟件測試[M].機械工業(yè)出版社,2005.

        [9]呂云翔,王洋,肖咚.軟件測試案例教程[M].機械工業(yè)出版社,2011.

        [10]梅爾斯.軟件測試的藝術[M].機械工業(yè)出版社,2006.

        梅磊(1987年—),碩士,軟件系統(tǒng)研究部助理工程師,研究領域:軟件測試、軟件工程化。

        猜你喜歡
        測試工具測試人員軍用
        邊緣智力兒童及其智力測試工具的研究進展
        移動應用眾包測試人員信譽度復合計算模型研究
        軟件導刊(2022年9期)2022-09-22 05:59:54
        威力無比的軍用霰彈槍
        軍事文摘(2020年14期)2020-12-17 06:27:24
        Http并發(fā)連接測試工具
        軍用機器人揭秘
        高校分析測試中心測試隊伍建設方案初探
        山東化工(2018年20期)2018-04-02 16:30:53
        淺析軟件測試中的心理學應用
        中國工農(nóng)紅軍軍用號譜
        猜謎
        福祿克推出先進的連接式測試工具系統(tǒng)
        精品亚洲成a人无码成a在线观看| 在线视频日韩精品三区| 亚洲无人区乱码中文字幕动画| 国产情侣一区二区| 国产成人无码a区在线观看视频 | 免费看一级a女人自慰免费| 日本熟妇视频在线中出| av剧情演绎福利对白| 日本高清视频www| 国产av国片精品有毛| 少妇人妻200篇白洁| 中文乱码字幕高清在线观看| 久久久亚洲精品免费视频| 蜜桃视频在线免费视频| 久久久免费精品re6| 亚洲国产精品一区二区第四页| 一区二区三区蜜桃在线视频| 国产精品精品国产色婷婷| 欧美精品黑人粗大免费| 亚洲美女影院| 伊人久久大香线蕉综合av| 粗大猛烈进出高潮视频大全| 在线观看免费人成视频色9| 韩国一级成a人片在线观看| 性感熟妇被我玩弄到高潮| 欧洲熟妇色| 中文无码成人免费视频在线观看 | 日本国产一区二区三区在线观看| 国产精品一区久久综合| 色www永久免费视频| 99视频这里有精品| 亚洲国产线茬精品成av| 久久99亚洲精品久久久久| 色翁荡息又大又硬又粗又视频图片| 无码高潮久久一级一级喷水 | 色系免费一区二区三区| 亚洲国产av综合一区| 18黑白丝水手服自慰喷水网站| 亚洲国产精品线路久久| 中文字幕日韩一区二区不卡| 天天做天天爱夜夜爽|