• 
    

    
    

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

      ?

      嵌入式軟件覆蓋率測試的研究與應(yīng)用

      2014-09-15 17:59孫隴平
      現(xiàn)代電子技術(shù) 2014年18期
      關(guān)鍵詞:嵌入式軟件測試方法

      孫隴平

      摘 要: 覆蓋率測試是檢驗軟件測試完整性、充分性的重要方式,這里介紹了覆蓋率測試基礎(chǔ)理論、覆蓋率的測試類型、覆蓋率測試工作流程、比較了覆蓋率測試工具Bullseye Coverage、LDRA TestBed。并通過LDRA Testbed測試工具對被測軟件程序插裝,分析插裝程序輸出的結(jié)果得到語句覆蓋率、分支覆蓋率等數(shù)據(jù),以達(dá)到對軟件問題的查找和對測試充分性、全面性的驗證。同時給出了Turbo C開發(fā)環(huán)境下DOS操作系統(tǒng)的嵌入式軟件,利用LDRA Testbed進(jìn)行覆蓋率分析和通過查看未覆蓋的代碼定位軟件問題、測試用例覆蓋情況的詳細(xì)步驟。

      關(guān)鍵詞: 嵌入式軟件; 覆蓋率測試; LDRA Testbed; 測試方法

      中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)18?0067?03

      Research and application of embedded software coverage rate testing

      SUN Long?ping

      (Jiangsu Automation Research Institute, Lianyungang 222061, China)

      Abstract: Coverage testing is an important method to check software integrity and adequacy. This article introduces cover testing theories, testing methods, testing process and compares testing tools, Bullseye Coverage and LDRA TestBed Use testing tool,LDRA Testbed, to instrument tested program, analyze the output of instumentation software to get the data of Statement coverage and branch coverage, and find out the software int question, to check coverage testing adequacy and comprehensiveness. At the same time, it provides the following steps: Embedded software, which running under Turbo developement environment and DOS system, use LDRA Testbed to analyze software coverage, through viewing the code of uncovered prograss to position software problem and check testcase coverage.

      Keywords: embedded software; coverage rate testing; LDRA Testbed; testing method

      隨著嵌入式設(shè)備在越來越多的領(lǐng)域中得到使用,與之相依附的嵌入式軟件也得到了快速的發(fā)展。面對日益復(fù)雜的嵌入式軟件,如何進(jìn)行快速、全面、有效地測試已經(jīng)成為當(dāng)前測試工作的焦點。嵌入式軟件通常與硬件聯(lián)系緊密,常規(guī)的測試方法和技術(shù)難以對軟件進(jìn)行全面測試。因此,必須采用基于對軟件程序進(jìn)行插裝的覆蓋率測試技術(shù),實現(xiàn)對嵌入式軟件的測試,以達(dá)到降低測試難度,提高測試效率。

      1 覆蓋率測試

      1.1 覆蓋率測試概念

      覆蓋率測試(也稱邏輯測試)是度量測試完整性和查找軟件問題的必要手段,是測試有效性的度量。

      覆蓋率測試的目的是確保軟件所有的程序至少被執(zhí)行一次,盡可能全的覆蓋軟件程序的各個語句及其分支結(jié)構(gòu),所以設(shè)計測試用例要盡可能多地覆蓋軟件程序的內(nèi)部邏輯結(jié)構(gòu),以便發(fā)現(xiàn)軟件中的錯誤和問題。覆蓋率測試的類型如下:語句覆蓋率,被測軟件程序中每行語句至少執(zhí)行一次,語句覆蓋率=至少被執(zhí)行一次的語句數(shù)量/可執(zhí)行的語句總數(shù);判定覆蓋率,被測軟件程序中每個判定表達(dá)式至少獲得一次“true”值和“false”值,以確保程序的每一個分支至少都通過一次,判定覆蓋率=判定結(jié)果被評價的次數(shù)/判定結(jié)果的總數(shù); 條件覆蓋率,確保判定表達(dá)式中每個條件的各種可能的值至少出現(xiàn)一次,條件覆蓋率=條件操作數(shù)值至少被評價一次的數(shù)量/條件操作數(shù)值的總數(shù);判定/條件覆蓋率,確保判定表達(dá)式的每個條件的所有可能取值至少出現(xiàn)一次,并使每個判定表達(dá)式所有可能的結(jié)果也至少出現(xiàn)一次,判定/條件覆蓋率=條件操作數(shù)值或判定結(jié)果至少被評價一次的數(shù)量/(條件操作數(shù)值總數(shù)+判定結(jié)果總數(shù));路徑覆蓋率,測試用例覆蓋被測程序中所有可能的路徑,路徑覆蓋率=至少被執(zhí)行到一次的路徑數(shù)/總的路徑數(shù)。

      1.2 覆蓋率測試方法

      覆蓋率測試通過對被測軟件程序進(jìn)行插裝,并對插裝后的被測軟件程序編譯生成可執(zhí)行程序。然后在軟件運行的實際環(huán)境中運行該可執(zhí)行程序,同時執(zhí)行功能、性能、接口、人機(jī)交互界面、強(qiáng)度、安全性、邊界、恢復(fù)性測試等測試用例和測試數(shù)據(jù)。如果覆蓋率沒有到軟件規(guī)定要求,分析原因后,必要時補(bǔ)充軟件的功能、性能、接口、人機(jī)交互界面等測試類型的測試用例,保證覆蓋率測試指標(biāo)滿足軟件要求。覆蓋率測試的工作流程如圖1所示。覆蓋率測試的關(guān)鍵是對軟件程序進(jìn)行插裝,插裝是在保證軟件程序邏輯完整的基礎(chǔ)上,插入一些探針,通過分析探針執(zhí)行拋出的特征數(shù)據(jù),達(dá)到對軟件覆蓋情況的測試。

      1.3 覆蓋率測試工具

      由于當(dāng)前潛入式軟件開發(fā)語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統(tǒng)和Boland C++,Gun C++,Inter C++等開發(fā)環(huán)境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

      圖1 覆蓋率測試工作流程

      LDRA TestBed是LDRA公司研發(fā)的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規(guī)則對代碼評審;分析代碼的復(fù)雜度、密度和可測試性,達(dá)到對軟件質(zhì)量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進(jìn)行單元測試;對軟件代碼進(jìn)行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進(jìn)行管理。

      LDRA Testbed提供了BitMap插樁技術(shù)來解決覆蓋率測試。BitMap是一種位圖技術(shù),插裝后的軟件在實際環(huán)境運行時將探針的特征值信息存放到一個固定大小的數(shù)組中,當(dāng)需要對代碼覆蓋率進(jìn)行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內(nèi)容提供給Testbed進(jìn)行覆蓋率分析。

      TestBed作為覆蓋率測試工具,具有以下特性:

      (1) 能夠與被測軟件編譯器相結(jié)合對源程序進(jìn)行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

      (2) 根據(jù)插裝軟件輸出的覆蓋數(shù)據(jù),能夠快速、清晰的分析出軟件總體、每個函數(shù)的語句覆蓋率、分支覆蓋率等;

      (3) 根據(jù)分析出的函數(shù)覆蓋率數(shù)據(jù),幫助測試人員快速定位未覆蓋的軟件程序,便于改進(jìn)測試用例沒計的缺陷,進(jìn)而提高軟件的覆蓋率。

      2 基于LDRA TestBed的覆蓋率測試應(yīng)用

      2.1 被測軟件概況

      被測軟件是基于Turbo C開發(fā)環(huán)境的嵌入式軟件,運行于微機(jī)板上TF存儲卡的DOS系統(tǒng),通過接收上位機(jī)的控制參數(shù)及獲取外部導(dǎo)航設(shè)備的導(dǎo)航信息、傳感器的傳感器數(shù)據(jù)后,經(jīng)數(shù)據(jù)處理后向外部設(shè)備發(fā)送控制命令,達(dá)到對外部設(shè)備的控制。

      圖2 軟件運行連接圖

      2.2 覆蓋率測試應(yīng)用

      被測軟件通過以下步驟實現(xiàn)覆蓋率測試:

      (1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

      (2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進(jìn)行插裝,Testbed在和test.c同目錄下產(chǎn)生inszt_test.c文件該文件為經(jīng)過插裝后的程序文件。

      (3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數(shù)據(jù)填入該數(shù)組;在main函數(shù)中添加覆蓋數(shù)據(jù)輸出到test.txt代碼,如下所示:

      char str[sizeof(bitmaparr)];

      FILE *dfile=fopen("c:\\test.txt","wt");

      int j=sizeof(bitmaparr)/sizeof(int);

      for (int i=0;i

      {

      sprintf(str,"%d\n",bitmaparr[i]);

      fprintf(dfile, str);

      }

      fclose(dfile);

      (4) 將inszt_test.c文件,刪除前面的“inszt_”標(biāo)識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產(chǎn)生可執(zhí)行的目標(biāo)文件test.exe;

      (5) 啟動軟件并執(zhí)行功能、性能、接口、邊界、性能、安全性、恢復(fù)性等測試類型,將軟件輸出的test.txt(文件中的數(shù)字內(nèi)容為186個大于等于0,小于等于255的整型數(shù)字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進(jìn)行分析,即可獲得相應(yīng)的程序或分支覆蓋率。

      分析后找到test.dyn.htm文件就可以看到覆蓋率分析數(shù)據(jù)如圖3所示。

      圖3 軟件覆蓋率分析數(shù)據(jù)

      (6) 如某一個函數(shù)覆蓋率沒有達(dá)到100%,需要進(jìn)入函數(shù)具體分析界面,如圖4所示。其中線框起來的是未執(zhí)行到的部分,需要查找原因,如果是用例設(shè)計不夠充分,需要添加設(shè)計測試用例,執(zhí)行插裝軟件后再分析覆蓋數(shù)據(jù),直到覆蓋率指標(biāo)達(dá)到要求為止。

      圖4 軟件程序覆蓋執(zhí)行情況

      3 結(jié) 語

      通過嵌入式軟件覆蓋率測試研究與應(yīng)用,發(fā)現(xiàn)LDRA TestBed不僅能夠快速地對軟件程序進(jìn)行插裝、覆蓋數(shù)據(jù)分析,而且根據(jù)覆蓋率結(jié)果的函數(shù)覆蓋情況,快速定位到未執(zhí)行的程序。針對開發(fā)人員可以定位軟件錯誤,針對測試人員,根據(jù)代碼覆蓋情況可以梳理、優(yōu)化、減少冗余的測試用例,爭取達(dá)到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應(yīng)用,能夠大幅度提高覆蓋水平,規(guī)避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

      參考文獻(xiàn)

      [1] 范勇,蘭景英,李繪卓.軟件測試技術(shù)[M].西安:西安電子科技大學(xué)出版社,2009.

      [2] 鄭人杰.軟件工程[M].北京:清華大學(xué)出版社,1999.

      [3] 上海創(chuàng)景計算機(jī)系統(tǒng)有限公司.LDRA Testbed中文技術(shù)說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

      [4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術(shù),2009(5):65?67.

      [5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

      [6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術(shù),2011(4):117?120.

      由于當(dāng)前潛入式軟件開發(fā)語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統(tǒng)和Boland C++,Gun C++,Inter C++等開發(fā)環(huán)境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

      圖1 覆蓋率測試工作流程

      LDRA TestBed是LDRA公司研發(fā)的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規(guī)則對代碼評審;分析代碼的復(fù)雜度、密度和可測試性,達(dá)到對軟件質(zhì)量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進(jìn)行單元測試;對軟件代碼進(jìn)行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進(jìn)行管理。

      LDRA Testbed提供了BitMap插樁技術(shù)來解決覆蓋率測試。BitMap是一種位圖技術(shù),插裝后的軟件在實際環(huán)境運行時將探針的特征值信息存放到一個固定大小的數(shù)組中,當(dāng)需要對代碼覆蓋率進(jìn)行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內(nèi)容提供給Testbed進(jìn)行覆蓋率分析。

      TestBed作為覆蓋率測試工具,具有以下特性:

      (1) 能夠與被測軟件編譯器相結(jié)合對源程序進(jìn)行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

      (2) 根據(jù)插裝軟件輸出的覆蓋數(shù)據(jù),能夠快速、清晰的分析出軟件總體、每個函數(shù)的語句覆蓋率、分支覆蓋率等;

      (3) 根據(jù)分析出的函數(shù)覆蓋率數(shù)據(jù),幫助測試人員快速定位未覆蓋的軟件程序,便于改進(jìn)測試用例沒計的缺陷,進(jìn)而提高軟件的覆蓋率。

      2 基于LDRA TestBed的覆蓋率測試應(yīng)用

      2.1 被測軟件概況

      被測軟件是基于Turbo C開發(fā)環(huán)境的嵌入式軟件,運行于微機(jī)板上TF存儲卡的DOS系統(tǒng),通過接收上位機(jī)的控制參數(shù)及獲取外部導(dǎo)航設(shè)備的導(dǎo)航信息、傳感器的傳感器數(shù)據(jù)后,經(jīng)數(shù)據(jù)處理后向外部設(shè)備發(fā)送控制命令,達(dá)到對外部設(shè)備的控制。

      圖2 軟件運行連接圖

      2.2 覆蓋率測試應(yīng)用

      被測軟件通過以下步驟實現(xiàn)覆蓋率測試:

      (1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

      (2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進(jìn)行插裝,Testbed在和test.c同目錄下產(chǎn)生inszt_test.c文件該文件為經(jīng)過插裝后的程序文件。

      (3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數(shù)據(jù)填入該數(shù)組;在main函數(shù)中添加覆蓋數(shù)據(jù)輸出到test.txt代碼,如下所示:

      char str[sizeof(bitmaparr)];

      FILE *dfile=fopen("c:\\test.txt","wt");

      int j=sizeof(bitmaparr)/sizeof(int);

      for (int i=0;i

      {

      sprintf(str,"%d\n",bitmaparr[i]);

      fprintf(dfile, str);

      }

      fclose(dfile);

      (4) 將inszt_test.c文件,刪除前面的“inszt_”標(biāo)識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產(chǎn)生可執(zhí)行的目標(biāo)文件test.exe;

      (5) 啟動軟件并執(zhí)行功能、性能、接口、邊界、性能、安全性、恢復(fù)性等測試類型,將軟件輸出的test.txt(文件中的數(shù)字內(nèi)容為186個大于等于0,小于等于255的整型數(shù)字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進(jìn)行分析,即可獲得相應(yīng)的程序或分支覆蓋率。

      分析后找到test.dyn.htm文件就可以看到覆蓋率分析數(shù)據(jù)如圖3所示。

      圖3 軟件覆蓋率分析數(shù)據(jù)

      (6) 如某一個函數(shù)覆蓋率沒有達(dá)到100%,需要進(jìn)入函數(shù)具體分析界面,如圖4所示。其中線框起來的是未執(zhí)行到的部分,需要查找原因,如果是用例設(shè)計不夠充分,需要添加設(shè)計測試用例,執(zhí)行插裝軟件后再分析覆蓋數(shù)據(jù),直到覆蓋率指標(biāo)達(dá)到要求為止。

      圖4 軟件程序覆蓋執(zhí)行情況

      3 結(jié) 語

      通過嵌入式軟件覆蓋率測試研究與應(yīng)用,發(fā)現(xiàn)LDRA TestBed不僅能夠快速地對軟件程序進(jìn)行插裝、覆蓋數(shù)據(jù)分析,而且根據(jù)覆蓋率結(jié)果的函數(shù)覆蓋情況,快速定位到未執(zhí)行的程序。針對開發(fā)人員可以定位軟件錯誤,針對測試人員,根據(jù)代碼覆蓋情況可以梳理、優(yōu)化、減少冗余的測試用例,爭取達(dá)到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應(yīng)用,能夠大幅度提高覆蓋水平,規(guī)避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

      參考文獻(xiàn)

      [1] 范勇,蘭景英,李繪卓.軟件測試技術(shù)[M].西安:西安電子科技大學(xué)出版社,2009.

      [2] 鄭人杰.軟件工程[M].北京:清華大學(xué)出版社,1999.

      [3] 上海創(chuàng)景計算機(jī)系統(tǒng)有限公司.LDRA Testbed中文技術(shù)說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

      [4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術(shù),2009(5):65?67.

      [5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

      [6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術(shù),2011(4):117?120.

      由于當(dāng)前潛入式軟件開發(fā)語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統(tǒng)和Boland C++,Gun C++,Inter C++等開發(fā)環(huán)境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

      圖1 覆蓋率測試工作流程

      LDRA TestBed是LDRA公司研發(fā)的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規(guī)則對代碼評審;分析代碼的復(fù)雜度、密度和可測試性,達(dá)到對軟件質(zhì)量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進(jìn)行單元測試;對軟件代碼進(jìn)行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進(jìn)行管理。

      LDRA Testbed提供了BitMap插樁技術(shù)來解決覆蓋率測試。BitMap是一種位圖技術(shù),插裝后的軟件在實際環(huán)境運行時將探針的特征值信息存放到一個固定大小的數(shù)組中,當(dāng)需要對代碼覆蓋率進(jìn)行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內(nèi)容提供給Testbed進(jìn)行覆蓋率分析。

      TestBed作為覆蓋率測試工具,具有以下特性:

      (1) 能夠與被測軟件編譯器相結(jié)合對源程序進(jìn)行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

      (2) 根據(jù)插裝軟件輸出的覆蓋數(shù)據(jù),能夠快速、清晰的分析出軟件總體、每個函數(shù)的語句覆蓋率、分支覆蓋率等;

      (3) 根據(jù)分析出的函數(shù)覆蓋率數(shù)據(jù),幫助測試人員快速定位未覆蓋的軟件程序,便于改進(jìn)測試用例沒計的缺陷,進(jìn)而提高軟件的覆蓋率。

      2 基于LDRA TestBed的覆蓋率測試應(yīng)用

      2.1 被測軟件概況

      被測軟件是基于Turbo C開發(fā)環(huán)境的嵌入式軟件,運行于微機(jī)板上TF存儲卡的DOS系統(tǒng),通過接收上位機(jī)的控制參數(shù)及獲取外部導(dǎo)航設(shè)備的導(dǎo)航信息、傳感器的傳感器數(shù)據(jù)后,經(jīng)數(shù)據(jù)處理后向外部設(shè)備發(fā)送控制命令,達(dá)到對外部設(shè)備的控制。

      圖2 軟件運行連接圖

      2.2 覆蓋率測試應(yīng)用

      被測軟件通過以下步驟實現(xiàn)覆蓋率測試:

      (1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

      (2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進(jìn)行插裝,Testbed在和test.c同目錄下產(chǎn)生inszt_test.c文件該文件為經(jīng)過插裝后的程序文件。

      (3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數(shù)據(jù)填入該數(shù)組;在main函數(shù)中添加覆蓋數(shù)據(jù)輸出到test.txt代碼,如下所示:

      char str[sizeof(bitmaparr)];

      FILE *dfile=fopen("c:\\test.txt","wt");

      int j=sizeof(bitmaparr)/sizeof(int);

      for (int i=0;i

      {

      sprintf(str,"%d\n",bitmaparr[i]);

      fprintf(dfile, str);

      }

      fclose(dfile);

      (4) 將inszt_test.c文件,刪除前面的“inszt_”標(biāo)識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產(chǎn)生可執(zhí)行的目標(biāo)文件test.exe;

      (5) 啟動軟件并執(zhí)行功能、性能、接口、邊界、性能、安全性、恢復(fù)性等測試類型,將軟件輸出的test.txt(文件中的數(shù)字內(nèi)容為186個大于等于0,小于等于255的整型數(shù)字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進(jìn)行分析,即可獲得相應(yīng)的程序或分支覆蓋率。

      分析后找到test.dyn.htm文件就可以看到覆蓋率分析數(shù)據(jù)如圖3所示。

      圖3 軟件覆蓋率分析數(shù)據(jù)

      (6) 如某一個函數(shù)覆蓋率沒有達(dá)到100%,需要進(jìn)入函數(shù)具體分析界面,如圖4所示。其中線框起來的是未執(zhí)行到的部分,需要查找原因,如果是用例設(shè)計不夠充分,需要添加設(shè)計測試用例,執(zhí)行插裝軟件后再分析覆蓋數(shù)據(jù),直到覆蓋率指標(biāo)達(dá)到要求為止。

      圖4 軟件程序覆蓋執(zhí)行情況

      3 結(jié) 語

      通過嵌入式軟件覆蓋率測試研究與應(yīng)用,發(fā)現(xiàn)LDRA TestBed不僅能夠快速地對軟件程序進(jìn)行插裝、覆蓋數(shù)據(jù)分析,而且根據(jù)覆蓋率結(jié)果的函數(shù)覆蓋情況,快速定位到未執(zhí)行的程序。針對開發(fā)人員可以定位軟件錯誤,針對測試人員,根據(jù)代碼覆蓋情況可以梳理、優(yōu)化、減少冗余的測試用例,爭取達(dá)到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應(yīng)用,能夠大幅度提高覆蓋水平,規(guī)避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

      參考文獻(xiàn)

      [1] 范勇,蘭景英,李繪卓.軟件測試技術(shù)[M].西安:西安電子科技大學(xué)出版社,2009.

      [2] 鄭人杰.軟件工程[M].北京:清華大學(xué)出版社,1999.

      [3] 上海創(chuàng)景計算機(jī)系統(tǒng)有限公司.LDRA Testbed中文技術(shù)說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

      [4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術(shù),2009(5):65?67.

      [5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

      [6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術(shù),2011(4):117?120.

      猜你喜歡
      嵌入式軟件測試方法
      基于泊松對相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計測試方法
      無線電發(fā)射設(shè)備雜散發(fā)射的測試方法探討
      基于人工智能的模塊化嵌入式軟件開發(fā)研究
      基于云計算的軟件自動化測試方法
      DLD-100C型雷達(dá)測試方法和應(yīng)用
      實時嵌入式軟件的測試技術(shù)
      全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
      S700K轉(zhuǎn)轍機(jī)保持力測試方法探討
      對改良的三種最小抑菌濃度測試方法的探討
      基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
      大渡口区| 曲沃县| 石屏县| 通州市| 囊谦县| 大同市| 察雅县| 扶沟县| 河东区| 长岛县| 洛浦县| 普宁市| 太谷县| 宜良县| 调兵山市| 雷波县| 和林格尔县| 久治县| 霍邱县| 韶山市| 错那县| 三门县| 巴彦淖尔市| 苍梧县| 民和| 芒康县| 团风县| 双流县| 苗栗市| 繁峙县| 桓台县| 微山县| 韶山市| 泾源县| 铁岭县| 大悟县| 沂南县| 黄山市| 七台河市| 乌兰察布市| 大城县|