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

基于黑盒測試的嵌入式系統平臺設計與實現

2016-04-12 00:00:00何丹丹
現代電子技術 2016年21期

摘 要: 針對嵌入式系統匯編語言詞法、語法分析的設計與實現,提出了Lex與Yacc之間的關系,然后兩者通過gcc命令進行編譯形成綜合分析。最后運行該綜合分析器就可以對51系列的匯編語言進行分析。提出了被測源程序靜態結構的分析方法,建立了程序流程圖的過程,除此之外,還強調了被測源程序插樁處理與覆蓋率分析的具體理論和使用規則,這為黑盒測試結果提供了科學的方法。

關鍵詞: 黑盒測試; 嵌入式系統; 程序流程圖; 插樁處理

中圖分類號: TN919?34 文獻標識碼: A 文章編號: 1004?373X(2016)21?0172?03

Design and implementation of embedded system platform based on black?box testing

HE Dandan

(Dalian Maritime University, Dalian 116026, China)

Abstract: Aiming at the design and implementation of the assembly language morphology and syntax analysis of the embedded system, the relationship between Lex and Yacc is put forward, and the two items are compiled with gcc command to form the synthesis analyzer. The synthesis analyzer can analyze the assembly language of 51 series. The static structure analysis method of the tested source program is proposed. The process of the program flow chart was established. The specific theories and service rules of the instrumentation processing and coverage rate analysis of the tested source program are emphasized, which provide a scientific method for black?box testing results.

Keywords: black?box testing; embedded system; program flow chart; instrumentation processing

0 引 言

黑盒測試是從用戶觀點出發的測試,依據需求功能說明書中的預期用途、定時和性能的要求,推斷測試結果。黑盒測試根據測試階段可分為單元測試、集成測試、確認測試、系統測試四個階段[1]。嵌入式計算機系統具有與傳統軟件測試不同的新特性,因此需要采取針對性的測試方法。通用的測試方法可分為靜態時間分析和動態時間分析。

1 嵌入式軟件測試的環境分析

在線仿真配備了CPU芯片接口,提供和應用程序交流信息橋,不足之處在于對硬件的依賴性較強,測試范圍較窄;目標機仿真測試結果真實,但由于實際運行中連接外部設備,很難辨識軟件和硬件錯誤。在實際測試中,根據測試效率、成本、可靠性、自動化程度等因素選擇測試環境[2]。

2 嵌入式測試系統的技術實現

CodeTest一方面吸取軟件插樁技術,另一方面從硬件測試那里吸取從總線獲取數據的技術,并進行升級改造。在硬件測試時,CodeTest選擇插入點的方式為主動獲取關鍵數據。和CodeTest相比,純軟件測試對目標測試的影響大大降低。因此選用Cereal仿真器。

嵌入式軟件測試系統由功能測試模塊、代碼測試模塊、數據分析和文檔報告模塊、通信接口轉換模塊組成。對于黑盒測試來說,功能測試模塊居主導地位,它主要通過接收目標系統輸出信號和需要的信號進行比對來判定目標系統在功能上是否達到最優[3]。

3 詞法語法分析的設計與實現

3.1 Lex?Yacc

Lex是檢測字符匹配性的詞法生成程序,Yacc是測定語法的生成程序。一個Lex程序由三段組成:首先是C和Lex定義;第二段是C代碼;第三段是C函數。一個Yacc程序也是由三段組成,分別是聲明、語法規則和C代碼。Lex同Yacc的工作原理如圖1所示。

3.2 Lex?Yacc之間的聯系

Lex程序用來計算數字字符串,能對各種符號進行識別,當插碼時可以以注釋的形式插入插樁代碼,等程序完成,可以自行取消代碼插樁,不影響整體進程。Yylval用來傳遞Lex與Yacc之間數字字符串轉化后的數值,利用lineno傳遞正在處理的代碼行號和標號。本次設計全程在Linux下,通過Lex編譯后生成詞法分析程序的C代碼,通過Yacc編譯后生成語法分析程序的C程序代碼。兩者通過gcc命令進行編譯形成綜合分析。最后運行該綜合分析器就可以對51系列的匯編語言進行分析[4?5]。

3.3 被測源程序靜態結構分析

Lex?Yacc工具對單文件逐行掃描,得出當前語句各類參數類型,不同參數類型分別進入不同的單鏈表中。其中除了順序單鏈表外,其他四種處理方式基本相同。待詞法、語法分析完畢,五個單鏈表中存儲了對應的匯編程序。因為單鏈表本身只是一個轉換器,無法顯示匯編程序之間的邏輯關系,所以需要對程序進行二次分析,確定所有邏輯關系。其中五個單鏈表形成的流程圖如圖2所示。

針對程序流程圖的建立,首先搜索匹配節點,根據節點不同進入相應分支處理。當前語句在順序節點,則進入順序處理模塊。從關鍵字“結束行號+1”開始遍歷單鏈表,存在兩種結果:一是算法出錯;另外一種就是在主程序中時則表明當前分支分析完成。接著要判斷條件跟蹤鏈表中的順序分支(規定為右分支)是否都已分析完畢。

4 覆蓋率分析及評測

4.1 被測源程序覆蓋率分析

虛擬插樁技術就是在匯編語言基本結構的特點上,在源程序的插樁點處設置斷點,在源程序執行到斷點處,響應斷點處指令,給出具體的PC地址,自動記錄并打印出來,接連下去形成PC值的數據鏈。通過查詢五類單鏈表與之建立對應關系,就可以獲得到源程序的真實運行軌跡,進而計算出各類覆蓋指標。

4.2 基于代碼的覆蓋評測

在仿真測試平臺原型系統上,基于代碼的覆蓋測試首先需要選定適合用作黑盒測試的子過程模塊。提取的子過程模塊必須具備獨立運行的能力,根據覆蓋測試的標準和要求對代碼邏輯結構進行認真分析,設計出多個測試用例,然后通過手工運行該子程序的方式,在某一特定測試用例驅動下運行,測定出運行路徑,通過計算得出兩種覆蓋率理論評測指標,與仿真測試平臺上實現的兩種覆蓋率相對比,得出覆蓋率分析法與虛擬插樁的正確性驗證結果。

5 嵌入式系統平臺設計

設計一個可以代替人工進行黑盒測試的平臺系統,見圖3,其基本原理是通過腳本語言記錄狀態信息,之后通過PC回放測試信息以判斷結果是否與記錄腳本一致,以此決定本次測試是否通過。為此,在編輯源代碼時就需要滿足錄制腳本和腳本回放兩個階段的需求。

5.1 插裝代碼分析

在PC上運行插裝系統最重要的原則就是要保證軟件原有功能的穩定性和完整性。因此在設計嵌入式系統的插裝代碼時不能改變程序的原有邏輯和原有執行流程,應盡量降低在嵌入式系統所占的資源,盡可能將部分功能和操作交付于PC進行。

嵌入式系統中的模擬用戶輸入模塊的主要功能是將計算機發送的命令進行分析,并將結果回復到處理模塊中,其操作模擬流程見圖4。

5.2 系統狀態的定義和獲取

(1) 聲音信息的獲取

嵌入式系統中對聲音信息的獲取主要是通過識別每個聲音惟一的ID編號和固定的音頻編碼進行的。工作時,由系統中的服務函數獲得ID聲音的音頻編碼并發送到PC中。

(2) 獲取LED信息

LED的運行方法和聲音相似,都有一套惟一的LED編碼,并由LED控制器控制。常用的設計方法是將LED中的編碼放到嵌入式系統中的緩沖區內,通過定時刷新函數提取LED信息[6]。

(3) 獲取LCD信息

由于LCD需要顯示的信息較多,且各消息屬性復雜,因此較難提取。目前常用的提取方法是點陣截取法和消息截取法。由于點陣截取法操作簡單、測試結果準確率高,因此本文使用點陣截取法獲取LCD信息。

(4) 系統狀態的獲取

主動請求和被動獲取是嵌入式系統獲取信息的主要方式。主動請求是指嵌入式系統在處理完PC發出的操作命令時,主動將搜集好的信息發送到PC上。被動獲取是指嵌入式系統并不主動發送檢測信息,而是當狀態出現時才決定是否繼續后續操作。

5.3 自動化比較和測試

軟件是否準確輸出結果,需要經過多次測試實際輸出和預期輸出的差別。本文在設計嵌入式系統時綜合考慮了一些智能比較思想來優化設計流程。由于實際的嵌入式系統會產生上百個復雜的狀態信息[7],為便于比較,本文采用了相對比較的辦法對錄制腳本時的狀態變遷進行比較。

最后設計完成的嵌入式系統需對腳本進行測試,這是交互式應用的重要組成部分。腳本測試的準確度主要依賴于所選用的測試工作和腳本技術。當前主要的腳本技術有共享腳本、數據驅動腳本、結構化腳本等。這些腳本都包括了三個命令,即人工操作命令、狀態檢查命令、邏輯控制命令。測試腳本主要就是對這三個命令進行檢查,其中在自動化檢測中采用何種腳本記錄測試結果可依據模塊要求進行選定。

6 結 語

黑盒測試技術的匯編語言測試系統用例研究在我國已經很多,本文最大的亮點是引入虛擬插樁技術,實現真正插樁,即在被測源程序的插樁點處設置中斷指令,當源程序運行到該點處時自動運行斷點指令,給出具體的PC地址,進而給出一系列地址數據,根據事先設定的用例判定運行效果,得出黑盒測試的正確驗證結果。此方法最大的優點在于高效、精確、成本較低,在實際運用中具有較高的實用價值。

參考文獻

[1] 孫昌愛,靳若明,劉超,等.實時嵌入式軟件的測試技術[J].小型微型計算機系統,2000,21(9):920?924.

[2] 杜曉東.面向嵌入式系統的測試工具研究[D].成都:電子科技大學,2003.

[3] 蘇銘,宋宗宇,王華.多計算機的自動插樁與監測系統[J].計算機工程與應用,2002(4):79?82.

[4] 楊作梅,張旭東.1ex與yacc[M].北京:電子工業出版社,2003.

[5] 鄧支益,何亦征,田翼.嵌入式軟件測試研究[J].航空電子技術,2003,34(1):37?42.

[6] 曹文靜,宮云戰.軟件測試性計算方法研究[J].計算機工程與設計,2003,24(10):67?70.

[7] 魏光新,蘇麗.邏輯覆蓋測試工具的設計與實現[J].計算機工程與應用,2000(5):106?109.

主站蜘蛛池模板: 青青草国产一区二区三区| 久久久久人妻精品一区三寸蜜桃| 国产精品无码翘臀在线看纯欲| 久久99国产综合精品女同| 日韩第九页| 午夜影院a级片| 国产九九精品视频| 精品国产亚洲人成在线| 直接黄91麻豆网站| 国产性生交xxxxx免费| 亚洲国产精品国自产拍A| 毛片a级毛片免费观看免下载| 精品视频第一页| 五月激情综合网| 操操操综合网| 中文成人无码国产亚洲| 狠狠五月天中文字幕| 2021国产精品自产拍在线| 久久人人97超碰人人澡爱香蕉| 日韩福利视频导航| 亚洲国产高清精品线久久| 免费人欧美成又黄又爽的视频| 亚洲人成影视在线观看| 亚洲第一视频区| 99视频在线免费观看| 欧美国产精品不卡在线观看| 国产精品理论片| 日韩精品一区二区三区免费在线观看| 成人免费视频一区二区三区| 免费无码在线观看| 国产成人AV男人的天堂| A级全黄试看30分钟小视频| 国产白浆视频| 欧美爱爱网| 五月婷婷亚洲综合| 久久久精品久久久久三级| 久久99国产视频| 亚洲日韩每日更新| 国产主播喷水| 日本在线欧美在线| 日韩第九页| 国产男女XX00免费观看| 不卡网亚洲无码| 亚洲资源站av无码网址| 午夜丁香婷婷| 99精品免费欧美成人小视频| 国产黄在线观看| 国产在线91在线电影| 狠狠色噜噜狠狠狠狠色综合久| 国产真实乱子伦视频播放| 国产sm重味一区二区三区| 欧美在线天堂| 经典三级久久| 亚洲天堂.com| 国产小视频网站| 亚洲午夜福利精品无码不卡| 国产理论最新国产精品视频| 日韩成人午夜| 免费看a级毛片| 亚洲天堂免费在线视频| 青青青国产免费线在| 精品无码一区二区在线观看| 东京热一区二区三区无码视频| 亚洲午夜国产片在线观看| 亚洲无码高清一区| 亚洲精品欧美日本中文字幕| 3344在线观看无码| 91在线高清视频| 五月激情婷婷综合| 中文字幕啪啪| 美女高潮全身流白浆福利区| 国产黄在线免费观看| 精品人妻无码区在线视频| 香蕉视频在线观看www| 欧美日韩中文国产va另类| 无码AV日韩一二三区| 福利在线不卡| 婷婷午夜天| 伊人AV天堂| 日韩精品久久无码中文字幕色欲| 亚洲高清免费在线观看| 日韩a在线观看免费观看|