日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種嵌入式軟件白盒覆蓋測試系統(tǒng)設(shè)計

出處:單片機與嵌入式系統(tǒng)應(yīng)用 發(fā)布于:2011-09-04 19:08:31

    隨著嵌入式系統(tǒng)的廣泛應(yīng)用,人們對嵌入式系統(tǒng)軟件的質(zhì)量提出了更高的要求,而作為保證軟件質(zhì)量有效手段的測試技術(shù),也越來越受到關(guān)注。目前嵌入式軟件的開發(fā)語言以C等語言為卞,因此,對這些語言的測試顯得尤為重要,”。

  目前實用的嵌入式系統(tǒng)測試平臺卞要由國外廠商開發(fā),比較具有代表性的測試平臺有T eleloglc公司的Logi-scope .M etrow erk、公司的CodeTest, Windriver公司的CoverageScope和IPL公司的C ant at a等。

  國外廠商的嵌入式系統(tǒng)測試平臺功能較強,技術(shù)較先進,但一套測試系統(tǒng)價格往往高達數(shù)萬到十多萬美元,極大增加了嵌入式系統(tǒng)的開發(fā)成木,無法得到普遍的應(yīng)用,影響了國內(nèi)嵌入式系統(tǒng)的開發(fā)質(zhì)量。國內(nèi)的嵌入式系統(tǒng)測試平臺有基于目標(biāo)開發(fā)的測試系統(tǒng)。

  木系統(tǒng)實現(xiàn)了基于仿真的嵌入式C語言軟件覆蓋測試分析。通過有效的詞法語法分析、自動插裝、測試用例的生成和加入、動態(tài)仿真運行及覆蓋分析等模塊對源代碼進行覆蓋分析,縮短了嵌入式系統(tǒng)開發(fā)周期,有效地解決了傳統(tǒng)手工測試程序運行效率低、繁瑣等問題,保證了嵌入式軟件系統(tǒng)高效穩(wěn)定的運行。

  嵌入式軟件測試系統(tǒng)框圖

  嵌入式軟件測試系統(tǒng)的結(jié)構(gòu)框圖如所示。它卞要由5部分組成:程序的預(yù)處理過程(包括詞法語法分析)程序的自動插裝過程、測試用例的加入、動態(tài)仿真運行及覆蓋分析。

  被測試程序首先經(jīng)過預(yù)處理。由于源程序中存在宏定義次件包含和條件編譯等預(yù)處理命令,因此在進行詞法分析前必須進行預(yù)處理,將宏展開,以利于查找變量詞法分析是將預(yù)處理階段產(chǎn)生的中間代碼分解成單獨的詞的表示,語法分析是將輸入字符串識別為單詞符號流,卞要用來確定插裝的位置,在一些關(guān)鍵的字段和函數(shù)處插。

600)makesmallpic(this,600,1800);" height=383>

  嵌入式系統(tǒng)是根據(jù)IEEE(電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行的裝置”。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內(nèi)一個普遍被認同的定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。

  功能模塊設(shè)計

  仿真軟件主要功能

  ①源語言的規(guī)范化和處理,即規(guī)定描述模型的符號、語句、句法、語法,檢測源程序中的錯誤和將源程序翻譯成機器可執(zhí)行碼。

  ②仿真的執(zhí)行和控制。

  ③數(shù)據(jù)的分析和顯示。

  ④模型、程序、數(shù)據(jù)、圖形的存儲和檢索。可以通過對軟件的設(shè)計來實現(xiàn)這些功能。

  仿真軟件分為仿真語言、仿真程序包和仿真軟件系統(tǒng)三類。其中仿真語言是應(yīng)用廣泛的仿真軟件。仿真程序包是針對仿真的專門應(yīng)用領(lǐng)域建立起來的程序系統(tǒng)。軟件設(shè)認人員將常用的程序段設(shè)計成通用的子程序模塊,并設(shè)計一個主程序模塊,用于調(diào)用子程序模塊。仿真研究人員使用這種程序包可免去繁重的程序編制工作。仿真程序包除不具備仿真軟件的功能①以外,至少具備功能②、③、④中的任一種。仿真軟件系統(tǒng)以數(shù)據(jù)庫為將仿真軟件的所有功能有機地統(tǒng)一在一起,構(gòu)成一個完善的系統(tǒng)。它由建模軟件、仿真運行軟件(語言)、輸出結(jié)果分析軟件和數(shù)據(jù)庫管理系統(tǒng)組成。

   詞法語法分析模塊

   預(yù)處理

   在源程序中,空白符測匕格符、回車符和換行符等編輯性字符除了出現(xiàn)在文字常數(shù)中之外,在別處任何地方出現(xiàn)都沒意義,而注釋部分出現(xiàn)在程序中的任何地方。對于這些不是程序必要組成的部分,預(yù)處理時可以將其剔掉。

   詞法分析

    將預(yù)處理階段產(chǎn)生的中間代碼分解成單獨詞的表示,并將詞的基木信息表,如詞的行號、詞的列號及詞的類型等信息,為語法分析做準(zhǔn)備。詞的類型有:普通變量標(biāo)識符擻字表、關(guān)鍵字表運算符表。

   語法分析

   語法分析是編譯過程的一個邏輯階段。語法分析的任務(wù)是在詞法分析的基礎(chǔ)上將單詞序列組合成各類語法短語,如“程序”,“語句”,“表達式”等等。語法分析程序判斷源程序在結(jié)構(gòu)上是否正確。源程序的結(jié)構(gòu)由上下文無關(guān)文法描述。語法分析程序可以用YACC等工具自動生成

  語法分析的卞要任務(wù)是在詞法分析識別出的單詞符號串的基礎(chǔ)上,分析并判斷程序的語法結(jié)構(gòu)是否符合語法規(guī)則。由于木系統(tǒng)分析的程序是經(jīng)過嵌入式軟件編譯器編譯的,因此認為不存在語法上的錯誤,只是通過語法分析得到程序結(jié)構(gòu)及函數(shù)信息,為插裝做準(zhǔn)備。

  插裝模塊

  程序插裝概念由J.  G.  H uang教授首次提出,簡單地說就是借助向被測程序中插入操作來實現(xiàn)測試目的。在調(diào)試程序時,常常要在程序中插入一些打印語句,希望執(zhí)行程序時打印出所關(guān)心的信息。通過這些信息進一步了解執(zhí)行過程中程序的一些動態(tài)特性。比如,程序的實際執(zhí)行路徑,或是特定變量在特定時刻的取值。從這一思想發(fā)展出的程序插裝技術(shù)能夠按用戶的要求,獲取程序的各種.

600)makesmallpic(this,600,1800);" height=620>


  覆蓋率分析

  通過動態(tài)仿真運行模塊,覆蓋信息被寫入文件中,讀取存放記錄文件,分別對語句塊數(shù)和執(zhí)行分支數(shù)進行計算。根據(jù)覆蓋率公式,結(jié)合計算的結(jié)果,得到測試語句覆蓋汾支覆蓋與程序的有效代碼率并GUI顯示。將測試的結(jié)果與測試用例庫生成的測試用例期望值作比較,得出測試結(jié)論。

  語句覆蓋率算法分析

  語句覆蓋是軟件測試中基木的覆蓋標(biāo)準(zhǔn),因此在測試時應(yīng)將每個語句至少執(zhí)行1次。在 T estImp系統(tǒng)中得到語句覆蓋率的算法流程如所示,通過詞法分析后,讀單獨的詞語,如遇到能產(chǎn)生分支的關(guān)鍵詞(for .if .else .switch .goto .return .break .continue .do :`{”和“}’,)則繼續(xù)往卜判斷,否則返回繼續(xù)讀詞語。如果鏈表節(jié)點大于1,則判斷鏈表節(jié)點數(shù)與對應(yīng)層數(shù)是否相等,如果相等則計算出該層的總行數(shù),即用此時+}”行數(shù)減去棧中保存“{”的總行數(shù),然后保存該層總行數(shù),并用總行數(shù)減去近嵌套內(nèi)層行數(shù)之和,即得到該層行數(shù)對應(yīng)記錄。當(dāng)所有的詞語全部讀取完畢后,讀取動態(tài)執(zhí)行時寫入的插裝文件,讀取關(guān)鍵詞標(biāo)號,取對應(yīng)關(guān)鍵詞鏈表中的行數(shù)與總行數(shù)變量相加,直至插裝文件讀取完畢,此時可以輸出被覆蓋語句數(shù)。

  分支覆蓋率算法分析

  分支覆蓋率的計算一般也需要達到一定的指標(biāo)。在T estImp系統(tǒng)中得到分支覆蓋率的算法流程如


600)makesmallpic(this,600,1800);" height=472>

600)makesmallpic(this,600,1800);" height=408>

  該系統(tǒng)實現(xiàn)如卜幾個模塊:

  ①分析模塊。用打開文件菜單選擇要分析的源文件,并進行詞法分析。語法分析并沒有生成可見的語法樹,只是形成提供插裝的結(jié)構(gòu)信息。

  ②插裝模塊。選擇自動插裝菜單,系統(tǒng)會讀取詞法語法分析的結(jié)果,根據(jù)算法流程實現(xiàn)對源程序的自動插裝,插裝點有for ,if ,else ,case ,goto ,return ,break ,con-tinue .do ,while語句后及程序開始與結(jié)束處插入記錄函數(shù)指針,并在程序插入插裝函數(shù)體。

  ③編譯器配置模塊。根據(jù)不同嵌入式軟件選擇不同的編譯環(huán)境,該部分需在使用該系統(tǒng)之前對各種嵌入式編譯軟件進行配置,在木系統(tǒng)中有Visual C + + ,ARM編譯器ADS ,Keil環(huán)境沛福環(huán)境,Borland C環(huán)境,DSP編譯器CCS。

  ④覆蓋率。木系統(tǒng)已實現(xiàn)的覆蓋率有語句覆蓋與分支覆蓋,并將覆蓋率通過二維圖形形式體現(xiàn)。后續(xù)將實現(xiàn)條件覆蓋、多條件判定覆蓋、多條件覆蓋,M C/DC潞徑覆蓋等覆蓋率。

  實驗結(jié)果

  在實驗中,采用1個AT 89C51單片機鍵盤識別系統(tǒng)作為實驗對象。在該系統(tǒng)中,通過AT 89C51的P1口連接1個4x4的知陣鍵盤,并通過P0. 4 } P0. 6所連接的74LS138擴展連接到型號位7SEG-MPXGCA的6位LED選通端上,可以顯示所按卜鍵盤的編號,將RXD和T XD連接到串口。經(jīng)過試驗得到一個結(jié)論:將測試源程序進行分析并自動插裝,然后通過單片機的Keil編譯器對插裝后的源程序進行編譯,得到。此時插裝后的程序會將插裝的信急通過串口傳送到TestImp測試系統(tǒng)的聯(lián)機串口傳送界而中,并將其保存在指定文件中,為覆蓋測試做準(zhǔn)備。

  為該系統(tǒng)設(shè)計的基木測試用例是按卜單個1號鍵。在此測試用例卜,手工運行推算出語句覆蓋率和分支覆蓋率分別為55. 6%和42. 80}0 ,在測試系統(tǒng)運行后,得出的語句覆蓋率和分支覆蓋率分別為55. 6%和42. 8 0}o。測試結(jié)果如所示。

600)makesmallpic(this,600,1800);" height=398>

   實驗結(jié)果表明:在特定的測試用例卜,對嵌入式系統(tǒng)應(yīng)用木文設(shè)計的基于仿真嵌入式軟件白盒覆蓋測試系統(tǒng)與理論上推導(dǎo)出來的語句和分支覆蓋率指標(biāo)完全相同。


  
關(guān)鍵詞:測試嵌入式嵌入式軟件

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!