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

基于黑盒測試的嵌入式系統(tǒng)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2016-04-12 00:00:00何丹丹
現(xiàn)代電子技術(shù) 2016年21期

摘 要: 針對(duì)嵌入式系統(tǒng)匯編語言詞法、語法分析的設(shè)計(jì)與實(shí)現(xiàn),提出了Lex與Yacc之間的關(guān)系,然后兩者通過gcc命令進(jìn)行編譯形成綜合分析。最后運(yùn)行該綜合分析器就可以對(duì)51系列的匯編語言進(jìn)行分析。提出了被測源程序靜態(tài)結(jié)構(gòu)的分析方法,建立了程序流程圖的過程,除此之外,還強(qiáng)調(diào)了被測源程序插樁處理與覆蓋率分析的具體理論和使用規(guī)則,這為黑盒測試結(jié)果提供了科學(xué)的方法。

關(guān)鍵詞: 黑盒測試; 嵌入式系統(tǒng); 程序流程圖; 插樁處理

中圖分類號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言

黑盒測試是從用戶觀點(diǎn)出發(fā)的測試,依據(jù)需求功能說明書中的預(yù)期用途、定時(shí)和性能的要求,推斷測試結(jié)果。黑盒測試根據(jù)測試階段可分為單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試四個(gè)階段[1]。嵌入式計(jì)算機(jī)系統(tǒng)具有與傳統(tǒng)軟件測試不同的新特性,因此需要采取針對(duì)性的測試方法。通用的測試方法可分為靜態(tài)時(shí)間分析和動(dòng)態(tài)時(shí)間分析。

1 嵌入式軟件測試的環(huán)境分析

在線仿真配備了CPU芯片接口,提供和應(yīng)用程序交流信息橋,不足之處在于對(duì)硬件的依賴性較強(qiáng),測試范圍較窄;目標(biāo)機(jī)仿真測試結(jié)果真實(shí),但由于實(shí)際運(yùn)行中連接外部設(shè)備,很難辨識(shí)軟件和硬件錯(cuò)誤。在實(shí)際測試中,根據(jù)測試效率、成本、可靠性、自動(dòng)化程度等因素選擇測試環(huán)境[2]。

2 嵌入式測試系統(tǒng)的技術(shù)實(shí)現(xiàn)

CodeTest一方面吸取軟件插樁技術(shù),另一方面從硬件測試那里吸取從總線獲取數(shù)據(jù)的技術(shù),并進(jìn)行升級(jí)改造。在硬件測試時(shí),CodeTest選擇插入點(diǎn)的方式為主動(dòng)獲取關(guān)鍵數(shù)據(jù)。和CodeTest相比,純軟件測試對(duì)目標(biāo)測試的影響大大降低。因此選用Cereal仿真器。

嵌入式軟件測試系統(tǒng)由功能測試模塊、代碼測試模塊、數(shù)據(jù)分析和文檔報(bào)告模塊、通信接口轉(zhuǎn)換模塊組成。對(duì)于黑盒測試來說,功能測試模塊居主導(dǎo)地位,它主要通過接收目標(biāo)系統(tǒng)輸出信號(hào)和需要的信號(hào)進(jìn)行比對(duì)來判定目標(biāo)系統(tǒng)在功能上是否達(dá)到最優(yōu)[3]。

3 詞法語法分析的設(shè)計(jì)與實(shí)現(xiàn)

3.1 Lex?Yacc

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

3.2 Lex?Yacc之間的聯(lián)系

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

3.3 被測源程序靜態(tài)結(jié)構(gòu)分析

Lex?Yacc工具對(duì)單文件逐行掃描,得出當(dāng)前語句各類參數(shù)類型,不同參數(shù)類型分別進(jìn)入不同的單鏈表中。其中除了順序單鏈表外,其他四種處理方式基本相同。待詞法、語法分析完畢,五個(gè)單鏈表中存儲(chǔ)了對(duì)應(yīng)的匯編程序。因?yàn)閱捂湵肀旧碇皇且粋€(gè)轉(zhuǎn)換器,無法顯示匯編程序之間的邏輯關(guān)系,所以需要對(duì)程序進(jìn)行二次分析,確定所有邏輯關(guān)系。其中五個(gè)單鏈表形成的流程圖如圖2所示。

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

4 覆蓋率分析及評(píng)測

4.1 被測源程序覆蓋率分析

虛擬插樁技術(shù)就是在匯編語言基本結(jié)構(gòu)的特點(diǎn)上,在源程序的插樁點(diǎn)處設(shè)置斷點(diǎn),在源程序執(zhí)行到斷點(diǎn)處,響應(yīng)斷點(diǎn)處指令,給出具體的PC地址,自動(dòng)記錄并打印出來,接連下去形成PC值的數(shù)據(jù)鏈。通過查詢五類單鏈表與之建立對(duì)應(yīng)關(guān)系,就可以獲得到源程序的真實(shí)運(yùn)行軌跡,進(jìn)而計(jì)算出各類覆蓋指標(biāo)。

4.2 基于代碼的覆蓋評(píng)測

在仿真測試平臺(tái)原型系統(tǒng)上,基于代碼的覆蓋測試首先需要選定適合用作黑盒測試的子過程模塊。提取的子過程模塊必須具備獨(dú)立運(yùn)行的能力,根據(jù)覆蓋測試的標(biāo)準(zhǔn)和要求對(duì)代碼邏輯結(jié)構(gòu)進(jìn)行認(rèn)真分析,設(shè)計(jì)出多個(gè)測試用例,然后通過手工運(yùn)行該子程序的方式,在某一特定測試用例驅(qū)動(dòng)下運(yùn)行,測定出運(yùn)行路徑,通過計(jì)算得出兩種覆蓋率理論評(píng)測指標(biāo),與仿真測試平臺(tái)上實(shí)現(xiàn)的兩種覆蓋率相對(duì)比,得出覆蓋率分析法與虛擬插樁的正確性驗(yàn)證結(jié)果。

5 嵌入式系統(tǒng)平臺(tái)設(shè)計(jì)

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

5.1 插裝代碼分析

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

嵌入式系統(tǒng)中的模擬用戶輸入模塊的主要功能是將計(jì)算機(jī)發(fā)送的命令進(jìn)行分析,并將結(jié)果回復(fù)到處理模塊中,其操作模擬流程見圖4。

5.2 系統(tǒng)狀態(tài)的定義和獲取

(1) 聲音信息的獲取

嵌入式系統(tǒng)中對(duì)聲音信息的獲取主要是通過識(shí)別每個(gè)聲音惟一的ID編號(hào)和固定的音頻編碼進(jìn)行的。工作時(shí),由系統(tǒng)中的服務(wù)函數(shù)獲得ID聲音的音頻編碼并發(fā)送到PC中。

(2) 獲取LED信息

LED的運(yùn)行方法和聲音相似,都有一套惟一的LED編碼,并由LED控制器控制。常用的設(shè)計(jì)方法是將LED中的編碼放到嵌入式系統(tǒng)中的緩沖區(qū)內(nèi),通過定時(shí)刷新函數(shù)提取LED信息[6]。

(3) 獲取LCD信息

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

(4) 系統(tǒng)狀態(tài)的獲取

主動(dòng)請(qǐng)求和被動(dòng)獲取是嵌入式系統(tǒng)獲取信息的主要方式。主動(dòng)請(qǐng)求是指嵌入式系統(tǒng)在處理完P(guān)C發(fā)出的操作命令時(shí),主動(dòng)將搜集好的信息發(fā)送到PC上。被動(dòng)獲取是指嵌入式系統(tǒng)并不主動(dòng)發(fā)送檢測信息,而是當(dāng)狀態(tài)出現(xiàn)時(shí)才決定是否繼續(xù)后續(xù)操作。

5.3 自動(dòng)化比較和測試

軟件是否準(zhǔn)確輸出結(jié)果,需要經(jīng)過多次測試實(shí)際輸出和預(yù)期輸出的差別。本文在設(shè)計(jì)嵌入式系統(tǒng)時(shí)綜合考慮了一些智能比較思想來優(yōu)化設(shè)計(jì)流程。由于實(shí)際的嵌入式系統(tǒng)會(huì)產(chǎn)生上百個(gè)復(fù)雜的狀態(tài)信息[7],為便于比較,本文采用了相對(duì)比較的辦法對(duì)錄制腳本時(shí)的狀態(tài)變遷進(jìn)行比較。

最后設(shè)計(jì)完成的嵌入式系統(tǒng)需對(duì)腳本進(jìn)行測試,這是交互式應(yīng)用的重要組成部分。腳本測試的準(zhǔn)確度主要依賴于所選用的測試工作和腳本技術(shù)。當(dāng)前主要的腳本技術(shù)有共享腳本、數(shù)據(jù)驅(qū)動(dòng)腳本、結(jié)構(gòu)化腳本等。這些腳本都包括了三個(gè)命令,即人工操作命令、狀態(tài)檢查命令、邏輯控制命令。測試腳本主要就是對(duì)這三個(gè)命令進(jìn)行檢查,其中在自動(dòng)化檢測中采用何種腳本記錄測試結(jié)果可依據(jù)模塊要求進(jìn)行選定。

6 結(jié) 語

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

參考文獻(xiàn)

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

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

[3] 蘇銘,宋宗宇,王華.多計(jì)算機(jī)的自動(dòng)插樁與監(jiān)測系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2002(4):79?82.

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

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

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

[7] 魏光新,蘇麗.邏輯覆蓋測試工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2000(5):106?109.

主站蜘蛛池模板: 成人国产小视频| 刘亦菲一区二区在线观看| 免费人成在线观看成人片| 亚洲AV无码不卡无码| 国产鲁鲁视频在线观看| 欧美一区精品| 日韩欧美国产综合| 99在线视频网站| 免费欧美一级| 狠狠综合久久| 亚洲高清国产拍精品26u| 国产精品浪潮Av| 国产女人18毛片水真多1| 2019年国产精品自拍不卡| 国产精品偷伦视频免费观看国产 | 91丝袜在线观看| 996免费视频国产在线播放| 91福利在线观看视频| 日本三区视频| 国产精品无码影视久久久久久久| 午夜限制老子影院888| 国产成人免费| 99久久精品视香蕉蕉| 亚洲精品va| 国产精品jizz在线观看软件| 全部免费毛片免费播放| 亚洲日韩图片专区第1页| 国产精品熟女亚洲AV麻豆| 国产精品无码一二三视频| 在线观看免费AV网| 国产91麻豆免费观看| 欧美日韩精品综合在线一区| 久久99久久无码毛片一区二区| 拍国产真实乱人偷精品| 免费无码又爽又黄又刺激网站| v天堂中文在线| 欧美精品v欧洲精品| 欧美三級片黃色三級片黃色1| 亚洲日韩Av中文字幕无码| 亚洲一欧洲中文字幕在线| 欧美日韩资源| 国产91全国探花系列在线播放| 亚洲愉拍一区二区精品| 亚洲中文在线看视频一区| 色欲色欲久久综合网| 毛片网站在线看| 国产精品国产三级国产专业不| 久久青草精品一区二区三区| 波多野结衣在线一区二区| 久久久波多野结衣av一区二区| 亚洲欧洲天堂色AV| 国产精品va免费视频| 一本综合久久| 欧美一区二区自偷自拍视频| 伊人久久大香线蕉aⅴ色| 亚洲欧洲日本在线| 成人免费一级片| 99在线小视频| 亚洲欧美极品| 亚洲精品无码AV电影在线播放| 日韩资源站| 午夜毛片免费观看视频 | 国产区免费精品视频| 亚洲天堂精品在线| 国产va免费精品观看| 日韩毛片免费观看| 午夜在线不卡| 精品福利视频网| 中文字幕佐山爱一区二区免费| 国产va在线观看免费| 一本一本大道香蕉久在线播放| 日本草草视频在线观看| 日韩无码黄色| 久久精品无码一区二区国产区| 人妻免费无码不卡视频| 免费无码AV片在线观看国产| 激情综合婷婷丁香五月尤物| 成人福利在线观看| 亚洲AⅤ波多系列中文字幕| 九九热在线视频| 亚洲人成网18禁| 亚洲第一在线播放|