• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于持續(xù)集成的C/C++軟件覆蓋率測(cè)試

      2018-03-20 09:10:17劉立康
      關(guān)鍵詞:插樁數(shù)據(jù)文件測(cè)試用例

      姜 文,劉立康

      (西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)

      0 引 言

      軟件測(cè)試[1-2]是保證軟件質(zhì)量和可靠性的重要手段。其中覆蓋率測(cè)試就是監(jiān)控軟件代碼覆蓋率的一種有效的測(cè)試方法,通過(guò)一系列的測(cè)試集來(lái)找出哪些代碼沒(méi)有被執(zhí)行到,統(tǒng)計(jì)程序各類語(yǔ)句執(zhí)行的覆蓋率,并對(duì)代碼的執(zhí)行路徑覆蓋范圍進(jìn)行評(píng)估、分析。

      隨著軟件開(kāi)發(fā)技術(shù)的不斷發(fā)展,軟件持續(xù)集成[3-5]技術(shù)已經(jīng)成為大型軟件開(kāi)發(fā)過(guò)程中重要的組成部分。通過(guò)持續(xù)集成工具構(gòu)建覆蓋率工程可以方便地進(jìn)行軟件代碼的覆蓋率測(cè)試,及時(shí)提供軟件開(kāi)發(fā)過(guò)程中的覆蓋率數(shù)據(jù),從而有效監(jiān)控和改進(jìn)軟件源代碼的質(zhì)量,改進(jìn)和提升軟件開(kāi)發(fā)和測(cè)試工作。

      1 代碼覆蓋率測(cè)試與軟件插樁技術(shù)

      1.1 代碼覆蓋率測(cè)試

      覆蓋率測(cè)試[6-10]是一種白盒測(cè)試方法。覆蓋率度量指標(biāo)有多種,包括語(yǔ)句覆蓋、分支覆蓋、函數(shù)覆蓋、條件覆蓋、分支/條件覆蓋、路徑覆蓋等。其中語(yǔ)句覆蓋是最基本的覆蓋標(biāo)準(zhǔn)。覆蓋率測(cè)試以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ),設(shè)計(jì)若干測(cè)試用例,在這些測(cè)試用例運(yùn)行時(shí),提取相關(guān)的覆蓋率信息。

      1.2 軟件插樁技術(shù)

      插樁技術(shù)[11-14]是在源程序的某些位置插入語(yǔ)句或程序段,但并不破壞程序的完整性的一種技術(shù)。在插樁過(guò)程中,插樁的位置根據(jù)程序的結(jié)構(gòu),測(cè)試的要求以及實(shí)現(xiàn)的測(cè)試目的進(jìn)行設(shè)定。軟件插樁技術(shù)能夠根據(jù)實(shí)際需要,獲取軟件的各種信息。代碼插樁是實(shí)現(xiàn)覆蓋率測(cè)試的關(guān)鍵技術(shù)之一,如今大多數(shù)的覆蓋率測(cè)試工具均采用代碼插樁技術(shù)。

      1.3 代碼覆蓋率測(cè)試的應(yīng)用

      代碼覆蓋率測(cè)試主要應(yīng)用在兩個(gè)方面:

      (1)評(píng)估測(cè)試質(zhì)量:根據(jù)軟件的代碼覆蓋率檢查報(bào)告,發(fā)現(xiàn)漏測(cè)場(chǎng)景,開(kāi)發(fā)工程師分析之后給出改進(jìn)建議,測(cè)試工程師補(bǔ)充新的測(cè)試點(diǎn)和新的測(cè)試用例;

      (2)幫助識(shí)別冗余代碼:開(kāi)發(fā)工程師對(duì)代碼覆蓋率檢查報(bào)告進(jìn)行分析之后,發(fā)現(xiàn)冗余代碼,對(duì)程序代碼進(jìn)行優(yōu)化與重構(gòu)。

      2 Linux環(huán)境下C/C++代碼覆蓋率測(cè)試的原理與流程

      2.1 C/C++代碼覆蓋率測(cè)試的原理

      在Linux上的C/C++軟件開(kāi)發(fā)一般使用gcc/g++作為編譯器。gcov工具[15-16]是伴隨著gcc發(fā)布的,是gcc附帶的一個(gè)代碼覆蓋率分析工具,配合gcc共同實(shí)現(xiàn)對(duì)單個(gè)或多個(gè)C/C++文件進(jìn)行語(yǔ)句和分支覆蓋率測(cè)試。

      gcc編譯應(yīng)用程序時(shí)加選項(xiàng)-fprofile -arcs和-ftest-coverage。這樣,在編譯過(guò)程中,gcc對(duì)每個(gè)c/cpp文件生成一個(gè)*.gcno數(shù)據(jù)文件,并且同時(shí)對(duì)應(yīng)用程序進(jìn)行插樁。運(yùn)行插樁后的程序時(shí),每個(gè)c/cpp程序的動(dòng)態(tài)信息會(huì)保存在*.gcda數(shù)據(jù)文件中。

      *.gcno文件包含了基本塊圖和相應(yīng)塊的源碼的行號(hào)信息。包含基本塊的信息,代碼行和塊的映射關(guān)系。

      *.gcda文件包含了程序分支跳變的次數(shù)和其他概要信息(gcda只能在程序運(yùn)行完畢后產(chǎn)生)。包含代碼行執(zhí)行的情況以及覆蓋率的信息歸納。

      gcov工具利用編譯時(shí)生成的.gcno數(shù)據(jù)文件以及運(yùn)行時(shí)生成的.gcda數(shù)據(jù)文件,得到程序的代碼覆蓋信息,并且以注釋源代碼的形式顯示執(zhí)行過(guò)和未執(zhí)行過(guò)的代碼。

      2.2 程序代碼覆蓋率測(cè)試流程

      gcc和gcov進(jìn)行應(yīng)用程序覆蓋率測(cè)試的流程如圖1所示。

      圖1 gcov覆蓋率測(cè)試流程

      覆蓋率數(shù)據(jù)產(chǎn)生的過(guò)程如下:

      (1)插樁編譯程序源代碼;生成可執(zhí)行文件和源代碼文件相應(yīng)的*.gcno文件。

      (2)運(yùn)行測(cè)試程序,生成源代碼文件相應(yīng)的*.gcda文件。

      (3)使用gcov獲取文本形式的覆蓋率數(shù)據(jù)文本文件*.gcov;也可以使用lcov工具獲取html形式的覆蓋率數(shù)據(jù)。

      gcov工具計(jì)算速度快,可以準(zhǔn)確計(jì)算覆蓋率。被測(cè)程序的編譯插樁是由gcc完成,gcov負(fù)責(zé)數(shù)據(jù)的分析和顯示。但是gcov工具只能支持語(yǔ)句以及分支兩種覆蓋率測(cè)試功能,不適用于大型軟件和復(fù)雜開(kāi)發(fā)環(huán)境的覆蓋率測(cè)試,不能給出軟件開(kāi)發(fā)過(guò)程中新增代碼的覆蓋率測(cè)試。

      3 基于持續(xù)集成的軟件覆蓋率測(cè)試原理與流程

      3.1 代碼覆蓋率測(cè)試原理

      軟件代碼覆蓋率測(cè)試通過(guò)持續(xù)集成工具,完成對(duì)軟件各模塊的插樁編譯、版本包出包。在版本包測(cè)試過(guò)程中完成代碼覆蓋率數(shù)據(jù)采集,對(duì)相關(guān)數(shù)據(jù)進(jìn)行加工處理后生成覆蓋率報(bào)告。

      覆蓋率數(shù)據(jù)分為三種類型:

      (1)當(dāng)前軟件代碼的覆蓋率。

      通過(guò)覆蓋率測(cè)試獲得當(dāng)前軟件代碼的覆蓋率數(shù)據(jù)和各模塊的覆蓋率數(shù)據(jù)。這個(gè)數(shù)據(jù)反映了軟件開(kāi)發(fā)過(guò)程中程序代碼總體的代碼覆蓋率狀況。

      (2)新增代碼的覆蓋率。

      通過(guò)基線版本代碼和當(dāng)前版本軟件代碼的比較分析,得到新增與修改的代碼的列表文件,結(jié)合測(cè)試過(guò)程中得到的覆蓋率數(shù)據(jù),獲得新增代碼的覆蓋率。這個(gè)數(shù)據(jù)反映了軟件開(kāi)發(fā)過(guò)程中新增程序代碼或修改了的程序代碼覆蓋率狀況。

      (3)生成VBS(validation before submission)數(shù)據(jù)庫(kù)。

      VBS數(shù)據(jù)庫(kù)由測(cè)試用例覆蓋軟件模塊代碼行的數(shù)據(jù)組成,反映了軟件模塊代碼行和測(cè)試用例的對(duì)應(yīng)關(guān)系。

      3.2 代碼覆蓋率測(cè)試流程

      基于持續(xù)集成的覆蓋率測(cè)試流程如圖2所示。

      圖2 基于持續(xù)集成的覆蓋率測(cè)試流程

      (1)下載代碼:從版本庫(kù)下載基線版本代碼和更新當(dāng)前代碼版本包。

      (2)插樁編譯鏈接:對(duì)當(dāng)前版本代碼進(jìn)行插樁編譯,生成插樁編譯進(jìn)程文件和插樁信息文件包,出插樁版本包。

      (3)軟件代碼預(yù)處理:對(duì)基線版本代碼、更新后的當(dāng)前代碼和插樁信息文件包進(jìn)行預(yù)處理,生成插樁數(shù)據(jù)庫(kù)Frame.bin(里面包含了插樁文件、函數(shù)、有效行信息)和相關(guān)文件。

      (4)HLT(HIGH LEVEL TEST)測(cè)試:在測(cè)試環(huán)境中對(duì)插樁版本包進(jìn)行HLT測(cè)試,測(cè)試過(guò)程中收集相關(guān)數(shù)據(jù),每個(gè)軟件模塊生成覆蓋率數(shù)據(jù)文件為*.hcovd;每個(gè)測(cè)試用例生成用例ID命名的*.bin覆蓋率數(shù)據(jù)文件。

      (5)處理覆蓋率數(shù)據(jù)文件:將插樁信息文件包、覆蓋率數(shù)據(jù)文件*.hcovd和用例的覆蓋率文件*.bin提交覆蓋率數(shù)據(jù)處理中心,軟件模塊的覆蓋率數(shù)據(jù)文件*.hcovd匯總處理生成Case.bin數(shù)據(jù)庫(kù);用例的覆蓋率文件*.bin匯總處理生成VBS數(shù)據(jù)庫(kù)。

      (6)生成覆蓋率報(bào)告:將插樁數(shù)據(jù)庫(kù)Frame.bin和相關(guān)文件提交覆蓋率數(shù)據(jù)中心;將覆蓋率數(shù)據(jù)庫(kù)Case.bin提交覆蓋率數(shù)據(jù)中心。覆蓋率數(shù)據(jù)中心依據(jù)提交的相關(guān)數(shù)據(jù)生成可以閱讀的覆蓋率報(bào)告。

      4 覆蓋率工程的實(shí)現(xiàn)

      工程采用軟件配置管理工具SVN和持續(xù)集成工具ICP-CI開(kāi)展持續(xù)集成工作。軟件產(chǎn)品開(kāi)發(fā)階段每天都要把源代碼合入版本庫(kù)中,通過(guò)持續(xù)集成(CI)系統(tǒng)進(jìn)行集成構(gòu)建。通常每周進(jìn)行一次覆蓋率檢查。覆蓋率檢查工程子系統(tǒng)關(guān)系圖如圖3所示。

      圖3 覆蓋率檢查工程子系統(tǒng)關(guān)系圖

      4.1 CI系統(tǒng)上進(jìn)行插樁編譯和集成構(gòu)建

      大型軟件系統(tǒng)通常采用分布式CI系統(tǒng)。CI系統(tǒng)由主控服務(wù)器(CI Master)和代理服務(wù)器(CI Agent)組成,代碼中心和CovReport均為特殊的代理服務(wù)器,如圖3虛線方框所示。

      4.1.1 搭建覆蓋率檢查工程

      在主控服務(wù)器的ICP-CI工具頁(yè)面上搭建覆蓋率檢查工程,工程命名為:“產(chǎn)品名_版本號(hào)_COV”,通過(guò)代理服務(wù)器標(biāo)簽將各種任務(wù)下發(fā)代理服務(wù)器執(zhí)行。

      4.1.2 代碼更新和下載基線版本代碼

      代碼中心登陸SVN版本庫(kù),完成當(dāng)前代碼更新和下載基線版本代碼。

      (1)當(dāng)前代碼更新。

      編寫代碼更新的批處理腳本,并把代碼更新的腳本配置在任務(wù)中,執(zhí)行代碼更新任務(wù)。對(duì)于配置管理工具SVN,調(diào)用SVN的“update”命令更新代碼中心的軟件代碼。

      (2)下載基線版本包代碼。

      通常每周進(jìn)行一次全量集成構(gòu)建,生成轉(zhuǎn)測(cè)試版本包,提交測(cè)試組進(jìn)行全面測(cè)試,測(cè)試通過(guò)后產(chǎn)生測(cè)試(Tested)基線。覆蓋率檢查工程需要從版本庫(kù)下載某個(gè)特定的測(cè)試基線版本代碼,下載的版本代碼的文件壓縮包為BaseCode.zip。

      4.1.3 插樁編譯

      CI系統(tǒng)的代理服務(wù)器從代碼中心下載更新后的當(dāng)前代碼壓縮包CurrentCode.zip,采用功能更為強(qiáng)大的插樁工具Avatar進(jìn)行軟件代碼的插樁編譯。

      (1)makefile文件的修改。

      使用Avatar進(jìn)行插樁編譯時(shí),需要鏈接Avatar的靜態(tài)庫(kù):

      -L /opt/Linux_avatar_64-INCSCore_suse_10_x86-64;

      插樁編譯腳本增加插樁工具的初始化部分,清理之前插樁工程遺留的文件和目錄,腳本內(nèi)容如下:

      if [-e /opt/linux_avatar_64/HLLT_init.sh]; then

      source /opt/linux_avatar_64/ HLLT_init.sh

      rm-rf /opt/linux_avatar_64/llt

      (2)插樁編譯成功的判斷標(biāo)準(zhǔn)。

      完成插樁編譯之后,如果模塊的進(jìn)程文件與插樁信息文件包都生成了,則表示插樁編譯成功;如果僅有插樁信息文件包生成,則表示插樁編譯沒(méi)有成功,插樁信息文件包中的插樁信息文件名必定是亂碼。

      4.1.4 生成插樁版本包

      插樁編譯任務(wù)完成后,在ICP-CI工具的任務(wù)頁(yè)面配置出包任務(wù)package,將出包腳本配置到任務(wù)中。運(yùn)行出包腳本,生成包含各模塊的進(jìn)程文件和插樁信息文件包的插樁版本包。代理服務(wù)器將插樁版本包提交到代碼中心。

      4.2 插樁數(shù)據(jù)預(yù)處理

      在標(biāo)簽為CovReport的CI代理服務(wù)器上進(jìn)行插樁數(shù)據(jù)預(yù)處理,從代碼中心下載基線代碼版本BaseCode.zip、當(dāng)前代碼版本包CurrentCode.zip和插樁信息文件包。覆蓋率工程需要基線版本代碼作為統(tǒng)計(jì)新增代碼覆蓋率的參考基準(zhǔn)。

      插樁數(shù)據(jù)預(yù)處理過(guò)程如下:

      (1)解壓BaseCode.zip、CurrentCode.zip和插樁信息文件包,采用專用的統(tǒng)計(jì)分析工具處理相關(guān)文件。

      (2)生成插樁數(shù)據(jù)庫(kù)Frame.bin,F(xiàn)rame.bin文件合并了所有插樁編譯生成的數(shù)據(jù)文件,給出插樁文件函數(shù)的代碼行信息。數(shù)據(jù)記錄了文件名、文件路徑、函數(shù)名、函數(shù)起始行號(hào)、函數(shù)終止行號(hào)等信息。

      (3)當(dāng)前代碼版本包中的非新增與修改的代碼文件的信息寫入相關(guān)文件;所有插樁編譯模塊的源文件名稱與源文件路徑寫入相關(guān)文件。

      4.3 HLT測(cè)試檢查

      代碼中心將插樁版本包提交到測(cè)試任務(wù)集成控制中心(test integration control center,TICC),TICC自動(dòng)完成測(cè)試用例管理、測(cè)試環(huán)境配置、測(cè)試版本安裝與卸載、自動(dòng)化測(cè)試用例執(zhí)行等任務(wù)。

      HLT測(cè)試檢查過(guò)程如下所示:

      (1)在自動(dòng)化工廠環(huán)境中卸載前一次的插樁版本包,安裝新的插樁版本包,下發(fā)自動(dòng)化測(cè)試用例連跑任務(wù),并打開(kāi)測(cè)試套。

      (2)測(cè)試套在用例執(zhí)行開(kāi)始前清除前一次的覆蓋率數(shù)據(jù),用例執(zhí)行結(jié)束之后,從執(zhí)行環(huán)境上收集用例對(duì)應(yīng)的覆蓋率數(shù)據(jù)。將每個(gè)用例的覆蓋數(shù)據(jù)整理,合并成一個(gè)用例ID命名的*.bin文件。

      (3)執(zhí)行測(cè)試結(jié)果回收整理,完成HLT測(cè)試檢查后,會(huì)生成模塊的覆蓋率數(shù)據(jù)文件*.hcovd。覆蓋率數(shù)據(jù)文件的文件名稱通常由以下格式組成:

      模塊名_模塊鏈接的時(shí)間_插樁編譯時(shí)間戳_代碼覆蓋率數(shù)據(jù)文件生成的時(shí)間_生成覆蓋率文件的測(cè)試執(zhí)行機(jī)IP地址.hcovd

      4.4 覆蓋率數(shù)據(jù)匯總處理

      將軟件模塊的覆蓋率數(shù)據(jù)文件*.hcovd和用例的覆蓋率數(shù)據(jù)文件*.bin提交到覆蓋數(shù)據(jù)處理服務(wù)器(標(biāo)簽為CaseBinBuider),代碼中心將插樁信息文件包也提交到覆蓋率數(shù)據(jù)處理服務(wù)器。對(duì)覆蓋率數(shù)據(jù)文件*.hcovd進(jìn)行加工處理,生成覆蓋率數(shù)據(jù)庫(kù)Case.bin。對(duì)用例的覆蓋率數(shù)據(jù)文件*.bin加工處理,生成VBS數(shù)據(jù)庫(kù)。

      4.5 數(shù)據(jù)統(tǒng)計(jì)和出覆蓋率報(bào)告

      代碼覆蓋率數(shù)據(jù)中心(標(biāo)簽為CovCenter)進(jìn)行覆蓋率數(shù)據(jù)統(tǒng)計(jì)工作。將插樁數(shù)據(jù)庫(kù)Frame.bin、覆蓋率數(shù)據(jù)流Case.bin和其他相關(guān)的數(shù)據(jù)文件提交到CovCenter,開(kāi)展如下工作:

      (1)代碼覆蓋中心將各種覆蓋率信息寫入MYSQL數(shù)據(jù)庫(kù)。

      (2)生成可以閱讀的覆蓋率報(bào)告,覆蓋率結(jié)果文件為Cover.xml。代碼覆蓋率報(bào)告提供了宏觀的軟件代碼覆蓋率信息。將這些數(shù)據(jù)提交公司質(zhì)量部門,作為軟件開(kāi)發(fā)過(guò)程的度量指標(biāo)之一,監(jiān)測(cè)軟件開(kāi)發(fā)過(guò)程。

      5 VBS數(shù)據(jù)庫(kù)

      VBS數(shù)據(jù)庫(kù)提供了微觀的覆蓋率信息,提供代碼軌跡與測(cè)試用例的對(duì)應(yīng)關(guān)系。

      5.1 VBS數(shù)據(jù)庫(kù)內(nèi)容

      在HLT檢查過(guò)程中,執(zhí)行測(cè)試結(jié)果回收整理的環(huán)境將每個(gè)用例的覆蓋數(shù)據(jù)進(jìn)行整理,合并成一個(gè)用例ID命名的*.bin文件。將這些文件匯總處理生成VBS數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)內(nèi)容如表1所示。

      表1 VBS數(shù)據(jù)庫(kù)內(nèi)容

      數(shù)據(jù)庫(kù)字段主要由TestCase(用例名稱)、CodeLine(執(zhí)行用例覆蓋的代碼行)和Codefile(代碼所在的文件名)組成。

      5.2 VBS數(shù)據(jù)庫(kù)的功能

      (1)程序代碼、測(cè)試用例、功能特性之間的對(duì)應(yīng)關(guān)系。

      在修改程序代碼時(shí),通過(guò)VBS數(shù)據(jù)庫(kù)篩選可以查到代碼行相關(guān)聯(lián)的測(cè)試用例;通過(guò)TMSS數(shù)據(jù)庫(kù)可以查到測(cè)試用例相關(guān)聯(lián)的軟件功能特性,如圖4所示。

      圖4 代碼、測(cè)試用例、功能特性關(guān)聯(lián)圖

      TMSS(test management service system)測(cè)試信息管理中心,負(fù)責(zé)測(cè)試用例、自動(dòng)化測(cè)試腳本以及測(cè)試任務(wù)相關(guān)信息的管理。TMSS中的測(cè)試用例信息庫(kù)提供測(cè)試用例與軟件功能特性之間的對(duì)應(yīng)關(guān)系。

      (2)幫助了解開(kāi)發(fā)單元的功能特性。

      長(zhǎng)期的增量開(kāi)發(fā),功能越來(lái)越多,特性交互場(chǎng)景也越來(lái)越多,即使編一行代碼也要花費(fèi)很多時(shí)間去分析]和梳理交互場(chǎng)景,對(duì)開(kāi)發(fā)人員經(jīng)驗(yàn)的要求逐漸提高。提交文件名和代碼行號(hào),查看影響本行代碼的測(cè)試用例,查看本行代碼涉及的功能特性、場(chǎng)景,可以幫助理解代碼。

      (3)方便問(wèn)題單修改。

      修改完問(wèn)題單后,通過(guò)篩選給出影響代碼的用例集進(jìn)行回歸測(cè)試,快速驗(yàn)證修改代碼的兼容性。

      (4)提高開(kāi)發(fā)質(zhì)量和效率。

      將VBS篩選功能集成到研發(fā)桌面上,開(kāi)發(fā)人員一鍵便可完成代碼的影響分析,從而提高程序代碼開(kāi)發(fā)的效率和質(zhì)量。

      (5)提升測(cè)試用例。

      測(cè)試人員通過(guò)對(duì)用例對(duì)應(yīng)的代碼和軟件功能特性的對(duì)比分析,可以發(fā)現(xiàn)測(cè)試用例存在的一些問(wèn)題,從而修改優(yōu)化測(cè)試用例或者增加新的測(cè)試用例。

      6 典型案例

      某公司的一個(gè)軟、硬件結(jié)合的大型開(kāi)發(fā)項(xiàng)目,總的代碼量超過(guò)兩百萬(wàn)行。軟件產(chǎn)品采用C/C++進(jìn)行軟件開(kāi)發(fā)。采用的配置管理工具為SVN;持續(xù)集成工具為ICP-CI。CI系統(tǒng)由1臺(tái)主控服務(wù)器、14臺(tái)代理服務(wù)器組成,1臺(tái)用作代碼中心,2臺(tái)用于插樁數(shù)據(jù)預(yù)處理。每周進(jìn)行一次覆蓋率檢查。表2給出其中一次檢查的覆蓋率數(shù)據(jù)。

      在軟件開(kāi)發(fā)過(guò)程中,覆蓋率測(cè)試主要關(guān)注新增代碼的覆蓋率情況,選擇測(cè)試用例注重新增代碼的測(cè)試,要求新增代碼覆蓋率大于65%,對(duì)于整體的代碼覆蓋率,各軟件產(chǎn)品根據(jù)產(chǎn)品自身情況靈活分析和處理。

      (1)表2中軟件產(chǎn)品版本包新增代碼覆蓋率數(shù)據(jù)大于65%,滿足度量指標(biāo)要求。

      (2)表2中模塊MK1、MK2、MK4和MK5新增代碼覆蓋率數(shù)據(jù)大于65%,滿足度量指標(biāo)要求。

      (3)表2中模塊MK3和MK4新增代碼覆蓋率數(shù)據(jù)低于65%,需要根據(jù)模塊的測(cè)試報(bào)告分析該模塊未被測(cè)試用例覆蓋到的場(chǎng)景,需要對(duì)未覆蓋到的場(chǎng)景增加自動(dòng)化測(cè)試用例。

      表2 軟件產(chǎn)品版本包與版本中模塊的代碼覆蓋率

      7 結(jié)束語(yǔ)

      工作實(shí)踐表明,基于持續(xù)集成的代碼覆蓋率檢查在軟件開(kāi)發(fā)過(guò)程可以發(fā)揮重要作用,有助于及時(shí)發(fā)現(xiàn)開(kāi)發(fā)和測(cè)試過(guò)程存在的各種問(wèn)題。根據(jù)代碼覆蓋率的檢查報(bào)告分析測(cè)試場(chǎng)景,及時(shí)補(bǔ)充測(cè)試用例和優(yōu)化代碼。代碼覆蓋率作為軟件度量指標(biāo),給軟件開(kāi)發(fā)過(guò)程管理提供了一項(xiàng)重要的評(píng)價(jià)指標(biāo)。軟件開(kāi)發(fā)過(guò)程中做好代碼覆蓋率檢查工作,有助于提高軟件產(chǎn)品的質(zhì)量,降低軟件開(kāi)發(fā)的成本。

      [1] MYERS G J,BADGETT T,SANDLER C.Art of software tes-

      ting[M].3rd ed.Hoboken,New Jersey,U.S:John Wiley& Sons,2012.

      [2] 趙 翀,孫 寧.軟件測(cè)試技術(shù):基于案例的測(cè)試[M].北京:機(jī)械工業(yè)出版社,2013.

      [3] 姜 文,劉立康.基于SVN的應(yīng)用軟件持續(xù)集成[J].計(jì)算機(jī)測(cè)量與控制,2016,24(3):109-113.

      [4] DUVALL P M,MATYAS S,GLOVE A.持續(xù)集成軟件質(zhì)量改進(jìn)和風(fēng)險(xiǎn)降低之道[M].北京:電子工業(yè)出版社,2012.

      [5] 姜 文,劉立康.軟件配置管理中的基線問(wèn)題研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(6):6-10.

      [6] 于全喜.嵌入式軟件路徑覆蓋測(cè)試數(shù)據(jù)采集研究與實(shí)現(xiàn)[D].西安:西安理工大學(xué),2009.

      [7] DELAMARO M E,VINCENZI A M R,MALDONADO J C.A strategy to perform coverage testing of mobile applications[C]//Proceedings of the 2006 international workshop on automation of software test.New York,NY,USA:ACM,2006:118-124.

      [8] WOODWARD M R,HENNELL M A.On the relationship between two control-flow coverage criteria all JJ-paths MCDC[J].Information and Software Technology,2006,48(7):433-440.

      [9] MALEVRIS N,YATES D F.The collateral coverage of data flow criteria when branch testing[J].Information and Software Technology,2006,48(8):676-686.

      [10] WU X,LI J J,WEISS D,et al.Coverage-based testing on embedded systems[C]//Proceedings of the 29th international conference on software engineering workshops.Minneapolis,Minnesota,US:IEEE,2007:204-209.

      [11] 郭 銳,李 博,彭寶新.用于覆蓋測(cè)試的代碼插樁程序設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2013,13(30):9072-9077.

      [12] 張 榮,王曙燕.基于插樁技術(shù)的動(dòng)態(tài)測(cè)試研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(4):50-52.

      [13] 路 翠.嵌入式軟件白盒測(cè)試中插樁技術(shù)的研究與應(yīng)用[D].北京:北京工業(yè)大學(xué),2010.

      [14] 王 偉.基于多Agent的嵌入式軟件測(cè)試系統(tǒng)研究與實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2011.

      [15] 王叔娥.嵌入式軟件動(dòng)態(tài)分析技術(shù)的研究[D].成都:電子科技大學(xué),2011.

      [16] 朱 麗.嵌入式軟件動(dòng)態(tài)測(cè)試平臺(tái)的研究與實(shí)現(xiàn)[D].福州:福建師范大學(xué),2013.

      猜你喜歡
      插樁數(shù)據(jù)文件測(cè)試用例
      砂土中樁靴插樁對(duì)臨近筒型基礎(chǔ)的影響研究
      基于TXL的源代碼插樁技術(shù)研究
      基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
      基于性能分析的自適應(yīng)插樁框架
      基于混合遺傳算法的回歸測(cè)試用例集最小化研究
      數(shù)據(jù)文件恢復(fù)專題問(wèn)答
      數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
      SQL數(shù)據(jù)文件恢復(fù)工具
      基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
      基于順序塊的嵌入式白盒測(cè)試插樁技術(shù)研究
      新干县| 金堂县| 神木县| 广昌县| 江都市| 吴堡县| 香格里拉县| 五大连池市| 芦山县| 河东区| 阳新县| 广西| 洪洞县| 平昌县| 巧家县| 星座| 临高县| 沙湾县| 康马县| 石嘴山市| 嵊泗县| 马鞍山市| 绥阳县| 江口县| 奉贤区| 阳信县| 郑州市| 浠水县| 大安市| 聂拉木县| 拉萨市| 石城县| 溧阳市| 常州市| 武平县| 康平县| 皮山县| 桐梓县| 昌江| 大悟县| 武安市|