<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于路徑覆蓋的嵌入式軟件動(dòng)態(tài)測試研究

基于路徑覆蓋的嵌入式軟件動(dòng)態(tài)測試研究

作者: 時(shí)間:2013-06-14 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:針對動(dòng)態(tài)測試時(shí)的問(wèn)題,提出了一種動(dòng)態(tài)測試系統框架。該框架基于測試的特點(diǎn)及的相關(guān)理論,包括被測試程序的靜態(tài)分析、插樁技術(shù)和數據處理分析等部分。以靜態(tài)分析指導插樁庫的建立,通過(guò)插樁技術(shù)在程序分支或重要位置點(diǎn)植入探針,執行已插樁程序,獲得動(dòng)態(tài)測試跟蹤數據,最后對數據進(jìn)行處理分析并制作初步測試報告。結合該框架,模擬測試實(shí)驗室現行項目208型海區終端的航標數據采集模塊,得出率,證明該系統框架的可行性。
關(guān)鍵詞:嵌入式軟件;;;;

0 引言
目前,嵌入式軟件已廣泛的應用在各個(gè)領(lǐng)域:如工業(yè)控制、通信設備、信息家電以及航空航天等領(lǐng)域,應用越來(lái)越廣泛,復雜性也日益增加。但由于嵌入式軟件實(shí)時(shí)性強、I/O通道少、內存資源受限、與硬件及硬件驅動(dòng)緊密關(guān)聯(lián)、CPU種類(lèi)繁多等特點(diǎn),決定了嵌入式軟件的開(kāi)發(fā)和測試必須在交叉編譯環(huán)境下進(jìn)行,即開(kāi)發(fā)及測試工具運行在宿主機上,而被測程序運行在軟硬件資源緊張的目標機上。僅僅在開(kāi)發(fā)環(huán)境下進(jìn)行嵌入式,難以保障其測試結果的有效性;而僅在目標機上進(jìn)行測試,由于軟件運行的不可視性,又使得測試者難以知曉程序當前運行狀態(tài),以及代碼的覆蓋情況。因此對嵌入式軟件覆蓋測試技術(shù)的要求也更高。
是一種有效地保證軟件質(zhì)量的重要手段。常用的軟件測試方法有黑盒測試、白盒測試和灰盒測試。白盒測試中最成熟、最常用的方法是覆蓋測試,它是一種動(dòng)態(tài)軟件測試方法。覆蓋測試是驗證軟件功能結構正確性以及查找問(wèn)題的一種重要方法和手段。為了獲取覆蓋率信息,必須在獲得被測程序結構信息、靜態(tài)數據流信息、控制流信息等基礎上,加入一些探針,通過(guò)探針收集的信息來(lái)獲得程序的執行路徑、狀態(tài)等控制流。
路徑覆蓋測試是覆蓋測試中的關(guān)鍵測試技術(shù)之一,目前已應用于程序、測試用例設計、程序調試、性能優(yōu)化等多個(gè)方面,是覆蓋程度最高的測試。其基本原理是用最少的測試用例,覆蓋程序中的所有路徑,發(fā)現程序中最多的錯誤,安排測試計劃、分配測試資源,并對實(shí)際測試所達到的覆蓋率做出評估。本文給出了路徑覆蓋相關(guān)理論,并在理論研究的基礎上設計出了一種嵌入式軟件動(dòng)態(tài)測試系統框架,完成對被測程序的路徑覆蓋率分析,進(jìn)而判斷測試的充分性及弱點(diǎn),從而進(jìn)一步改進(jìn)測試過(guò)程。

1 路徑覆蓋相關(guān)理論
路徑覆蓋使程序中每一條可能的路徑至少執行一次。但在實(shí)際工作中,即使一個(gè)不太復雜的程序,路徑數量往往也是較多的。要在測試中覆蓋所有的路徑是不現實(shí)的,而就是一種簡(jiǎn)化路徑數的測試方法。
是在控制流圖的基礎上,通過(guò)分析控制結構的環(huán)形復雜度,導出執行路徑的基本集,再從該基本集設計測試用例。為了清晰描述基本路徑測試方法,需要對本文中用到的幾個(gè)基本概念進(jìn)行說(shuō)明。
(1)程序控制流圖:是對程序流程圖簡(jiǎn)化后得到的,它是一種有向圖G=(N,E,Entry,Exit),其中N是流圖的節點(diǎn)數,E是流圖的邊數。
(2)Z路徑優(yōu)化:是指限制循環(huán)的次數,無(wú)論循環(huán)的形式和循環(huán)體實(shí)際執行的次數,簡(jiǎn)化后的循環(huán)測試只考慮執行循環(huán)體一次和零次(不執行)兩種情況。
(3)環(huán)形復雜度:提供程序基本路徑集的獨立路徑數量以及確保所有語(yǔ)句至少執行一次的測試數量的上界??梢酝ㄟ^(guò)下列兩種方法來(lái)計算:對流圖G,環(huán)形復雜度V(G)=E-N+2;或V(G)=P+1,其中P為包含在流圖G中的判定節點(diǎn)數。
(4)基本路徑集BP:指軟件可達路徑的最小集合,等于環(huán)形復雜度V(G)。
(5)路徑覆蓋率計算:由基本路徑集BP設計測試用例集T,使T理論上按BP執行。然后分析動(dòng)態(tài)跟蹤數據,構造實(shí)測路徑集Pn。計算測試覆蓋率PCP=(Pn/BP)×100%其中Pn=P(T1)P(T2)…P(Tn)。

2 嵌入式軟件動(dòng)態(tài)測試框架
嵌入式軟件動(dòng)態(tài)測試框架如圖1所示。它包含宿主機程序插樁及數據處理分析和目標機數據處理兩部分。

本文引用地址:http://dyxdggzs.com/article/148015.htm

a.JPG


在嵌入式軟件測試中,靜態(tài)測試是基礎,對被測軟件進(jìn)行代碼規則檢查、靜態(tài)結構分析和代碼質(zhì)量評估;動(dòng)態(tài)測試是必要補充,在目標機真實(shí)環(huán)境下或仿真環(huán)境下運行被測程序,采集動(dòng)態(tài)跟蹤數據,分析其動(dòng)態(tài)行為。
嵌入式軟件路徑覆蓋測試的特點(diǎn)就是必須在交叉編譯環(huán)境下,通過(guò)物理通道傳輸完整的動(dòng)態(tài)測試跟蹤數據,分析數據后得到路徑覆蓋率。動(dòng)態(tài)執行前先要檢查目標機與宿主機的連接狀況,確保測試正常進(jìn)行。
2.1 被測試程序靜態(tài)分析
靜態(tài)分析并不真正執行被測程序,也不需要對代碼進(jìn)行編譯鏈接,生成可執行文件。首先,對源碼進(jìn)行詞法語(yǔ)法分析和變量分析,找出不符合編碼規范的地方,根據某種質(zhì)量模型評價(jià)代碼的質(zhì)量,生成模塊調用關(guān)系圖、模塊的程序流程圖等。其次,從程序中提取必要的數據并保存,提供給后續的動(dòng)態(tài)分析和測試報告使用。最后,根據模塊的程序流程圖繪制程序控制流圖G,得到程序控制流圖的邊數E和節點(diǎn)數N,指導插樁庫的建立,并根據Z路徑優(yōu)化法構造程序的基本路徑集BP,構建動(dòng)態(tài)路徑覆蓋測試的比較基礎。
2.2 插樁技術(shù)
一般來(lái)說(shuō),對程序進(jìn)行動(dòng)態(tài)測試的時(shí)候,基本上要使用程序插樁來(lái)進(jìn)行覆蓋測試。程序插樁技術(shù)是保持被測軟件邏輯完整性的基礎上,在源代碼中插入探針函數,它是一個(gè)子過(guò)程調用,調用的子過(guò)程能在運行到插樁點(diǎn)時(shí)記錄下有關(guān)的運行情況,采集執行程序在真實(shí)環(huán)境中運行的控制流、數據流等測試數據。插樁時(shí)需確保探針函數對源程序執行影響最小。
基本路徑測試依賴(lài)探針插樁技術(shù)完成分支位置點(diǎn)標志位的采集。插樁位置最好選擇在應用程序層,重點(diǎn)采集輸入輸出模塊中的上層函數運行信息,底層模塊加強單元測試,而在嵌入式軟件模塊集成時(shí),默認這些模塊是正確無(wú)誤的。根據程序按塊劃分的原則,可以在子函數出入點(diǎn)、程序塊控制流圖G的分支節點(diǎn)、功能測試的重點(diǎn)變量處植入探針。
基本路徑測試的插樁過(guò)程是靜態(tài)的,數據收集過(guò)程是動(dòng)態(tài)的,結束時(shí)需恢復現場(chǎng)。動(dòng)態(tài)測試前,被測程序與插樁庫連接,完成插樁操作,獲取執行程序。執行程序交叉編譯后運行于目標實(shí)際環(huán)境或者仿真環(huán)境下,通過(guò)探針函數返回動(dòng)態(tài)測試跟蹤數據。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>