亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于順序塊的嵌入式白盒測(cè)試插樁技術(shù)研究

        2014-09-15 18:45:15范琳王海
        現(xiàn)代電子技術(shù) 2014年18期
        關(guān)鍵詞:插樁

        范琳+王海

        摘 要: 深入研究嵌入式軟件的白盒測(cè)試技術(shù),提出基于宿主平臺(tái)的嵌入式軟件測(cè)試構(gòu)架。針對(duì)語(yǔ)句覆蓋測(cè)試,提出一種基于順序塊的插樁方法,能有效減少樁的個(gè)數(shù),從而減少樁函數(shù)對(duì)測(cè)試過(guò)程的影響。針對(duì)分支覆蓋率測(cè)試,插樁后的被測(cè)程序運(yùn)行在ARMulator上,樁獲取器分析樁信息,得出程序運(yùn)行中的實(shí)時(shí)語(yǔ)句覆蓋率。實(shí)現(xiàn)了嵌入式軟件測(cè)試平臺(tái)ARM?Test,實(shí)驗(yàn)證明:該模型能獲取實(shí)時(shí)的語(yǔ)句覆蓋率,有效進(jìn)行白盒測(cè)試。

        關(guān)鍵詞: 嵌入式模擬器; 順序塊; 插樁; 白盒測(cè)試

        中圖分類號(hào): TN710?34; TG335.58 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)18?0140?03

        An instrumentation method based on sequence block for embedded software

        white?box testing

        FAN Lin1, WANG Hai2

        (1. Department of Computer Science and Technology, Xian University of Posts and Telecommunications, Xian 710121, China;

        2. School of Information Science & Technology, Northwest University, Xian 710069, China)

        Abstract: An embedded software testing framework based on hosting platform is proposed on the basis of in?depth study of the white?box testing technology for embedded softwares. An instrumentation method based on sequence block is brought forward to conduct statement coverage testing, which can effectively reduce the number of stubs, so as to reduce the impact of stubs on the testing process. After instrumentation, the program under test was run on ARMulator. The stub information is analyzed by the stub receiver to get the real?time statement branch coverage. An embedded software testing platform ARM?Test was developed. The experiment results show ARM?Test can get real?time statement branch coverage and do white?box testing effectively.

        Keywords: embedded system simulator; sequence block; instrumentation; white?box testing

        0 引 言

        隨著嵌入式系統(tǒng)的廣泛應(yīng)用,人們對(duì)嵌入式設(shè)備的穩(wěn)定性和可靠性提出了更高的要求。由于目標(biāo)機(jī)與宿主機(jī)硬件環(huán)境不同,使用的是不同體系結(jié)構(gòu)的處理器,嵌入式軟件無(wú)法在宿主機(jī)上直接運(yùn)行與測(cè)試[1?4],將嵌入式模擬器應(yīng)用于嵌入式軟件的開(kāi)發(fā)與測(cè)試,能使得軟件與硬件并行開(kāi)發(fā)。在宿主機(jī)上建立起一個(gè)內(nèi)核與外設(shè)均可配置與裁剪的模擬器,使得硬件還沒(méi)有開(kāi)發(fā)出來(lái)時(shí),軟件就能在模擬器上運(yùn)行和測(cè)試,就像在真正的硬件系統(tǒng)運(yùn)行上一樣[5?7]。

        本文采用ARM公司提供的源內(nèi)核模擬器ARMulator搭建嵌入式測(cè)試平臺(tái),針對(duì)源碼進(jìn)行基于順序塊的插樁,進(jìn)行語(yǔ)句覆蓋率測(cè)試,能在宿主平臺(tái)通過(guò)ARMulator實(shí)時(shí)獲取樁數(shù)據(jù)并進(jìn)行分析,得到程序運(yùn)行過(guò)程中的語(yǔ)句覆蓋率,以實(shí)現(xiàn)軟硬件開(kāi)發(fā)的同步,保證嵌入式系統(tǒng)的質(zhì)量。

        1 已有研究

        目前實(shí)用的嵌入式系統(tǒng)測(cè)試平臺(tái)主要由國(guó)外廠商開(kāi)發(fā),比較具有代表性的測(cè)試平臺(tái)有Teleloglc公司的Logi?scope,Metrowerks公司的CodeTest,Windriver公司的CoverageScope和IPL公司的Cantata等。但一套測(cè)試系統(tǒng)價(jià)格往往高達(dá)數(shù)萬(wàn)到十多萬(wàn)美元,極大增加了嵌入式系統(tǒng)的開(kāi)發(fā)成本[8?10]。ARM公司提供嵌入式系統(tǒng)模擬器ARMulator,能在宿主機(jī)上提供嵌入式軟件運(yùn)行環(huán)境 [11]。

        北京大學(xué)、北京航空航天大學(xué)進(jìn)行了一系列的軟件分析和測(cè)試工具的研究與開(kāi)發(fā),研制了一系列的測(cè)試工具,代表性的工具有SafePro C/C++,SafePro/java。西北工業(yè)大學(xué)在航空軟件仿真測(cè)試、并行軟件綜合測(cè)試平臺(tái)及C/S系統(tǒng)的測(cè)試方面進(jìn)行了許多研究工作并取得一些成果 [1?4]。

        2 基于宿主機(jī)的嵌入式軟件白盒測(cè)試技術(shù)

        2.1 基于宿主機(jī)的嵌入式軟件測(cè)試構(gòu)架

        本文提出了基于宿主平臺(tái)的嵌入式軟件測(cè)試構(gòu)架。在宿主機(jī)上搭建嵌入式測(cè)試平臺(tái),內(nèi)部加載嵌入式模擬器,使得嵌入式軟件具備運(yùn)行環(huán)境;在進(jìn)行白盒測(cè)試時(shí),首先對(duì)被測(cè)程序進(jìn)行插樁,樁函數(shù)在程序運(yùn)行過(guò)程中能同步的、實(shí)時(shí)的輸出預(yù)設(shè)的樁信息。使用樁信息分析器接收樁信息,并進(jìn)行分析和計(jì)算,能實(shí)時(shí)獲取整個(gè)程序運(yùn)行過(guò)程中的語(yǔ)句覆蓋和分支選擇情況。

        2.2 被測(cè)程序的處理流程

        被測(cè)程序的處理流程如圖1所示,具體為:

        (1) 對(duì)源程序進(jìn)行規(guī)范化,規(guī)范化的過(guò)程包括了詞法分析、語(yǔ)法分析和代碼整理。

        (2) 對(duì)規(guī)范化后的程序進(jìn)行順序塊劃分,并統(tǒng)計(jì)每個(gè)順序塊的信息:塊起止行號(hào)、塊內(nèi)語(yǔ)句數(shù)、順序塊總數(shù)等。

        (3) 由測(cè)試平臺(tái)自動(dòng)插入不同的樁函數(shù),經(jīng)過(guò)編譯、鏈接后,生成嵌入式映像文件,能運(yùn)行于嵌入式模擬器之上。在動(dòng)態(tài)測(cè)試階段通過(guò)運(yùn)行目標(biāo)代碼將樁信息發(fā)送至樁信息分析器,以獲取程序運(yùn)行過(guò)程中的語(yǔ)句覆蓋率。

        圖1 被測(cè)程序處理流程

        2.3 基于順序塊的插樁技術(shù)

        本文中將被測(cè)程序劃分為若干順序塊,針對(duì)順序塊進(jìn)行插樁。有如下定義:

        順序塊:若干相連順序語(yǔ)句的集合,是一段不包含任何分支、循環(huán)或函數(shù)調(diào)用的順序程序段。一個(gè)順序塊中所有語(yǔ)句的執(zhí)行次數(shù)相同。在程序插樁時(shí),只需對(duì)順序塊的開(kāi)始或結(jié)尾處插樁即可,避免了對(duì)每條語(yǔ)句的重復(fù)插樁,減少了測(cè)試過(guò)程對(duì)程序運(yùn)行的影響。

        遍歷整個(gè)程序,統(tǒng)計(jì)可執(zhí)行語(yǔ)句的總行數(shù),并進(jìn)行順序塊劃分。非可執(zhí)行語(yǔ)句不在統(tǒng)計(jì)的范疇內(nèi)。從第一條可執(zhí)行代碼開(kāi)始處理,遇到以下內(nèi)容時(shí)當(dāng)前順序塊結(jié)束:

        (1) 循環(huán)語(yǔ)句關(guān)鍵字for,do,while,do until;

        (2) 分支語(yǔ)句關(guān)鍵字if,else if,else及end if ;

        (3) 函數(shù)調(diào)用語(yǔ)句;

        (4) return語(yǔ)句。

        在對(duì)被測(cè)程序進(jìn)行順序塊劃分后,針對(duì)每個(gè)被測(cè)程序建立分塊信息[Bl[N]],[N]為總分塊數(shù)。

        [Bl[n]={n,Start,End,Lines},n∈[0,N) ]

        其中[n]是順序塊的編號(hào),[Start]是起始行號(hào),[End]是結(jié)束行號(hào),[Lines]是該順序塊的行數(shù)。

        分塊后在源程序頭添加全局變量的定義和樁函數(shù)的聲明:

        [staticintblock=0; voidsendstub();]

        在每個(gè)塊結(jié)束的位置插入下列語(yǔ)句,其中[n]為當(dāng)前塊的塊號(hào),[sendstub]函數(shù)發(fā)送信息到樁信息分析器:

        [block=n;sendstub(block); ]

        以上插樁過(guò)程由函數(shù)自動(dòng)進(jìn)行。在進(jìn)行語(yǔ)句覆蓋測(cè)試時(shí),先發(fā)送[Bl[N]]信息到樁信息分析器。然后在程序運(yùn)行過(guò)程中,實(shí)時(shí)由樁函數(shù)[sendstub]發(fā)送當(dāng)前執(zhí)行的塊號(hào)到樁信息分析器,以計(jì)算實(shí)時(shí)的語(yǔ)句覆蓋率。

        本文采用了進(jìn)程間通信的方式,在嵌入式模擬器中維護(hù)一塊共享內(nèi)存,每次樁函數(shù)將要發(fā)送的信息寫(xiě)入共享內(nèi)存,并通過(guò)Windows消息通知樁信息分析器取走數(shù)據(jù)。這樣樁信息分析器就能實(shí)時(shí)獲取樁數(shù)據(jù),并繪制出實(shí)時(shí)的覆蓋率曲線。

        在每個(gè)順序塊后調(diào)用樁函數(shù),樁函數(shù)的作用是發(fā)送樁信息到樁信息分析器,由樁信息分析器實(shí)時(shí)分析程序運(yùn)行過(guò)程中的覆蓋率。為盡量減少模擬器和樁信息分析器之間的數(shù)據(jù)傳輸,樁函數(shù)只需將當(dāng)前順序塊號(hào)[i]發(fā)送給樁信息分析器,當(dāng)執(zhí)行到樁函數(shù)時(shí),證明當(dāng)前順序塊已被完全執(zhí)行,樁信息分析器就能及時(shí)更新其程序覆蓋率的值。

        在語(yǔ)句覆蓋測(cè)試中,設(shè)樁信息分析器在測(cè)試過(guò)程中動(dòng)態(tài)獲取的信息為:[{i1,i2,…,ik}?[0,N)],如果有重復(fù)塊號(hào)說(shuō)明該塊被執(zhí)行了不止一次。其中不重復(fù)塊號(hào)組成集合[?],則語(yǔ)句覆蓋率[Cs]為:

        [Cs=n∈?Bln→Linesn=0N-1Bln→Lines×100%]

        3 系統(tǒng)實(shí)現(xiàn)

        項(xiàng)目組基于ARM內(nèi)核模擬器ARMulator開(kāi)發(fā)嵌入式測(cè)試平臺(tái)ARM?Test,能實(shí)現(xiàn)嵌入式程序的白盒測(cè)試,在被測(cè)程序或工程經(jīng)過(guò)預(yù)處理、插樁、編譯、鏈接后,生成可執(zhí)行文件運(yùn)行于嵌入式模擬器之上,運(yùn)行過(guò)程中實(shí)時(shí)將樁信息發(fā)送出來(lái),經(jīng)分析器獲取并處理,獲得實(shí)時(shí)的語(yǔ)句覆蓋率和分支覆蓋率。系統(tǒng)界面及測(cè)試效果如圖2,圖3所示。

        圖2 ARM?Test界面

        圖3 某例子程序的語(yǔ)句覆蓋率

        4 結(jié) 語(yǔ)

        本文提出一種基于順序塊的插樁方法,能進(jìn)行語(yǔ)句覆蓋測(cè)試。測(cè)試過(guò)程中能對(duì)樁信息實(shí)時(shí)處理獲得動(dòng)態(tài)的語(yǔ)句覆蓋率曲線,以實(shí)現(xiàn)軟硬件開(kāi)發(fā)的同步,保證了嵌入式系統(tǒng)的質(zhì)量。測(cè)試方法僅針對(duì)語(yǔ)句覆蓋率,后期還需進(jìn)行分支覆蓋、條件覆蓋測(cè)試。

        參考文獻(xiàn)

        [1] 盛云龍.基于組合覆蓋的嵌入式軟件測(cè)試平臺(tái)研制[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.

        [2] 葉永鑫.嵌入式軟件測(cè)試平臺(tái)的研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2010.

        [3] 呂金和.嵌入式軟件測(cè)試[J].軟件導(dǎo)刊,2010(9):40?41.

        [4] 王熒.嵌入式軟件可靠性測(cè)試工具的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2009.

        [5] Bill Blunden.虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[M].北京:機(jī)械工業(yè)出版社,2003.

        [6] 范琳,王忠民,王海.基于嵌入式系統(tǒng)模擬器的測(cè)試平臺(tái)構(gòu)架[J].微計(jì)算機(jī)信息,2010(17):61?62.

        [7] 范琳,王忠民,梁琛,等.基于Proemulator的插樁構(gòu)架研究[J].現(xiàn)代電子技術(shù),2010,33(3):188?190.

        [8] 蔣崇武,楊順昆,劉斌.面向嵌入式軟件測(cè)試的仿真建模[J].計(jì)算機(jī)工程,2008,34(4):87?89.

        [9] 祝義.嵌入式軟件需求規(guī)約到軟件體系結(jié)構(gòu)模型的轉(zhuǎn)換研究[D].南京:南京航空航天大學(xué),2011.

        [10] HAN Alex Heunhe, AHN Yong?Ho, CHUNG Ki?Seok. Virtual ARM simulation platform for embedded system developers [C]// ITC?CSCC. [S.l.]: ITC, 2008: 253?256.

        [11] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2007.

        猜你喜歡
        插樁
        自升式平臺(tái)樁靴周?chē)馏w沖刷機(jī)制及數(shù)值模擬
        砂土中樁靴插樁對(duì)臨近筒型基礎(chǔ)的影響研究
        基于CEL法的裙邊樁靴插樁數(shù)值分析
        面向大規(guī)模源代碼的內(nèi)存安全性動(dòng)態(tài)分析技術(shù)
        基于TXL的源代碼插樁技術(shù)研究
        舊樁坑對(duì)自升式平臺(tái)插樁穩(wěn)定性的影響及對(duì)策
        海洋自升式鉆井平臺(tái)插樁風(fēng)險(xiǎn)分析
        基于性能分析的自適應(yīng)插樁框架
        基于記錄重播的嵌入式系統(tǒng)死鎖檢測(cè)方法
        復(fù)雜地層下自升式平臺(tái)插樁深度分析
        久久久久成人精品无码| 国产毛片三区二区一区| 日本不卡在线视频二区三区| 亚洲日韩图片专区小说专区| 欧美中出在线| 亚洲国产丝袜美女在线| 午夜一区二区视频在线观看| 东京热人妻系列无码专区| 亚洲av永久无码天堂网小说区| 亚欧美日韩香蕉在线播放视频| 亚洲精品国产第一区二区尤物 | 粗了大了 整进去好爽视频| 国产人妖xxxx做受视频| 午夜一区二区三区免费观看| 蜜桃传媒免费在线播放| 亚洲成在人线av品善网好看| 韩国v欧美v亚洲v日本v| 精精国产xxxx视频在线| 欧洲一区在线观看| 国产成人精品自拍在线观看| 激情五月六月婷婷俺来也| 尤物在线观看一区蜜桃| 国产成人一区二区三区| 久久亚洲国产精品成人av秋霞| 青青草针对华人超碰在线| 中国男女黄色完整视频| 欧美激情一区二区三区成人 | 亚洲 欧美 偷自乱 图片| 中文精品久久久久人妻不卡| 全球av集中精品导航福利| 日本香蕉久久一区二区视频| 日本女优在线观看一区二区三区| 色哟哟精品中文字幕乱码| 久久精品亚州中文字幕| 无码aⅴ免费中文字幕久久| 婷婷亚洲综合五月天小说| 日韩最新av一区二区| 一区二区三区日本视频| 日韩 无码 偷拍 中文字幕| 少妇人妻偷人精品免费视频| 日韩AV无码一区二区三不卡|