国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式軟件測試技術(shù)及工具的研究

2017-09-28 08:18:03張蕾
中國新技術(shù)新產(chǎn)品 2017年21期
關(guān)鍵詞:測試工具嵌入式軟件軟件測試

張蕾

摘 要:如今,嵌入式軟件在越來越多的場合應(yīng)用,嵌入式軟件測試工作是保證軟件質(zhì)量必不可少的重要一環(huán),也必將會得到更多的重視。本文介紹了嵌入式軟件的特點(diǎn)和測試方法,并針對不同的測試方法討論了流行的測試工具。

關(guān)鍵詞:嵌入式軟件;軟件測試;測試方法;測試工具

中圖分類號:TP317 文獻(xiàn)標(biāo)識碼:A

0.引言

由于嵌入式軟件設(shè)計(jì)開發(fā)的方法、技術(shù)、過程以及工具都與通用計(jì)算機(jī)軟件不同,所以需要使用更先進(jìn)的測試方法和工具對嵌入式系統(tǒng)進(jìn)行測試。隨著越來越多的領(lǐng)域使用軟件來控制各種嵌入式設(shè)備,如何對嵌入式軟件進(jìn)行測試和驗(yàn)證,如何保證軟件能夠滿足系統(tǒng)要求,就顯得尤為重要。

1.嵌入式軟件測試特點(diǎn)

嵌入式軟件測試與通用軟件不同,它是一種特殊的軟件測試,具備自身的一些特點(diǎn)(特別是對于沒有操作系統(tǒng)的嵌入式應(yīng)用軟件而言):

(1)特定的硬件環(huán)境。

(2)更加關(guān)注可靠性、實(shí)時性。

(3)對進(jìn)行性能測試和功能測試外,還需要對內(nèi)存進(jìn)行測試。

(4)在嵌入式軟件和硬件集成測試完成之后,并不代表測試全部完成,需要對其進(jìn)行產(chǎn)品測試。

2.嵌入式軟件測試方法

本文重點(diǎn)介紹了針對嵌入式軟件的幾種測試方法:靜態(tài)分析、軟件質(zhì)量度量、性能分析、內(nèi)存分析、覆蓋率分析、單元/集成測試、系統(tǒng)測試。

2.1靜態(tài)分析

靜態(tài)分析是一種利用測試工具對代碼進(jìn)行的機(jī)械性和程序化的分析方法。靜態(tài)分析是直接對源代碼進(jìn)行代碼走讀、靜態(tài)掃描和分析,不需要編譯或運(yùn)行代碼,也不會受到其他缺陷和其他模塊的影響。

工具舉例:PolySpace工具是一種嵌入式軟件的靜態(tài)分析工具。它包括PolySpace Bug Finder和PolySpace Code Prover兩個模塊。PolySpace Bug Finder是靜態(tài)代碼分析軟件,可以發(fā)現(xiàn)C/C++代碼中的各類缺陷,包括運(yùn)行時錯誤,數(shù)據(jù)流問題,編程問題等各類代碼缺陷。PolySpace Code Prover使用抽象解釋和靜態(tài)分析方法來證明,識別和分析運(yùn)行時錯誤,例如溢出,除零和指針的越界。

2.2軟件質(zhì)量度量

軟件質(zhì)量度量是衡量軟件是否符合需求、標(biāo)準(zhǔn)的重要體現(xiàn),它的目的在于利用度量來改進(jìn)軟件過程。要確保軟件的整體質(zhì)量,就需要在各個環(huán)節(jié)嚴(yán)格控制。

工具舉例:很多嵌入式軟件是用C或C++語言編寫,但編程語言本身并不安全,QAC/QAC++是一種代碼靜態(tài)分析工具,它的靜態(tài)分析能力包括:質(zhì)量度量和軟件結(jié)構(gòu)分析。

2.3性能分析

近年來,嵌入式系統(tǒng)被廣泛應(yīng)用于汽車、家電、通信、制造等各個領(lǐng)域,領(lǐng)域間的競爭也激發(fā)了嵌入式技術(shù)的快速發(fā)展,對軟件性能分析是嵌入式開發(fā)過程中至關(guān)重要的一部分,嵌入軟件的性能分析是嵌入式環(huán)境下重要的測試方法。

工具舉例:RapiTime是一種軟件運(yùn)行時間評估工具:它能夠進(jìn)行軟件時間性能的測量,通過分析得出最差執(zhí)行時間數(shù)據(jù),并為代碼優(yōu)化提供指導(dǎo)。它的特點(diǎn)包括檢查不同的函數(shù)對于最差、最優(yōu)以及平均執(zhí)行時間的影響;通過大量調(diào)用來查看執(zhí)行時間的變化;對于函數(shù)自身的上下文、循環(huán)以及數(shù)據(jù)塊進(jìn)行分析等。

2.4內(nèi)存分析

嵌入式系統(tǒng)的內(nèi)存是有限的,但對實(shí)時性要求又很高。內(nèi)存問題主要包括內(nèi)存泄露、內(nèi)存崩潰、內(nèi)存碎片。其中內(nèi)存泄露問題尤為嚴(yán)重,它會導(dǎo)致系統(tǒng)可用內(nèi)存減少,甚至導(dǎo)致系統(tǒng)崩潰。

現(xiàn)在已經(jīng)有許多工具來解決內(nèi)存泄露問題,如Mtrace、 Memwatch、Purify等。這些工具使用庫跟蹤、動態(tài)檢測、程序插樁等技術(shù)來發(fā)現(xiàn)和定位內(nèi)存泄露的問題。

2.5覆蓋率分析

覆蓋率測試(也成邏輯測試)是度量測試完整性和查找軟件問題的必要手段,是測試有效性的度量。覆蓋率測試的目的是確保軟件所有的程序至少被執(zhí)行一次,盡可能全的覆蓋軟件程序的各個語句及其分支結(jié)構(gòu),以便發(fā)現(xiàn)軟件中的錯誤和問題。

工具舉例:RapiCover 是一款基于目標(biāo)硬件的嵌入式軟件的測試覆蓋率分析工具, 針對所使用的測試用例給出對應(yīng)的現(xiàn)場測試覆蓋率信息,其插樁點(diǎn)的開銷極小,并能針對目標(biāo)板的實(shí)際情況提供靈活的支持方式。它的特點(diǎn)包括:支持C、C++、Ada編程語言;極小的時間開銷;語句覆蓋,變量定義、條件判斷或循環(huán)等。

2.6單元/集成測試

嵌入式軟件的單元測試大多是在宿主機(jī)環(huán)境下進(jìn)行的,只有少數(shù)情況下需要在目標(biāo)機(jī)環(huán)境下進(jìn)行。單元測試主要是進(jìn)行白盒測試,應(yīng)盡可能地測試每一個函數(shù),每一個條件分支、每一個程序語句,提高代碼的測試覆蓋率。

在單元測試完成后,接下來需要進(jìn)行集成測試。集成測試又稱為組裝測試,是將各模塊合成一個組件,并測試它們間的接口。

工具舉例:Tessy軟件是一款專門針對嵌入式軟件動態(tài)測試的工具。它可以對C/C++代碼進(jìn)行單元測試和集成測試。

2.7 系統(tǒng)測試

嵌入式軟件系統(tǒng)測試的目的與通用軟件類似,都是通過與需求做比較來發(fā)現(xiàn)軟件缺陷。嵌入式軟件的系統(tǒng)測試應(yīng)綜合運(yùn)行各種測試用例設(shè)計(jì)方法,并根據(jù)需求規(guī)格說明書來設(shè)計(jì),在目標(biāo)機(jī)環(huán)境下運(yùn)行。

系統(tǒng)測試階段除了功能測試外,還應(yīng)該包括意外測試、破壞性測試、性能測試等。

在系統(tǒng)測試中,隨機(jī)測試是比較經(jīng)濟(jì)有效的一種測試方法。將隨機(jī)測試結(jié)果和操作規(guī)范的要求作比較,還可以得到軟件可靠性的估計(jì)。有效地將隨機(jī)抽樣測試與其他測試技術(shù)結(jié)合可以產(chǎn)生更強(qiáng)大和更高效的測試策略。

結(jié)語

本文歸納總結(jié)了嵌入式軟件的測試方法,并在不同的測試方法中列舉了當(dāng)前市場上的適用于嵌入式軟件的測試工具,希望能夠?qū)V大從業(yè)者有所參考。

參考文獻(xiàn)

[1]康一梅.嵌入式軟件測試[M].北京:機(jī)械工業(yè)出版社,2010:39-40.

[2]MathWorks引入兩款Polyspace代碼驗(yàn)證新產(chǎn)品[J]. Microcontrollers & Embedded Systems,2013:86-87.

[3]梁倩.一種基于QAC和Klocwork軟件的靜態(tài)測試方法[J].計(jì)算機(jī)與網(wǎng)絡(luò),2012(10):58-60.

[4]張鵬.嵌入式軟件內(nèi)存泄露檢測方法研究[J].計(jì)算機(jī)工程與應(yīng)用, 2013(14):56-59.

[5]孫韜敏.基于隱馬爾可夫模型的內(nèi)存碎片檢測機(jī)制[J].計(jì)算機(jī)應(yīng)用,2014(S2):224-226.

[6]孫隴平.嵌入式軟件覆蓋率測試的研究與應(yīng)用[J].現(xiàn)代電子技術(shù),2014(18):67-69.endprint

猜你喜歡
測試工具嵌入式軟件軟件測試
邊緣智力兒童及其智力測試工具的研究進(jìn)展
基于OBE的軟件測試課程教學(xué)改革探索
Http并發(fā)連接測試工具
EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
電子制作(2018年16期)2018-09-26 03:27:18
實(shí)時嵌入式軟件的測試技術(shù)
電子測試(2018年10期)2018-06-26 05:54:08
關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
電子測試(2017年15期)2017-12-18 07:19:20
全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
電子制作(2017年17期)2017-12-18 06:40:56
軟件測試工程化模型及應(yīng)用研究
基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
航天嵌入式軟件浮點(diǎn)運(yùn)算誤差分析與控制
景东| 宜黄县| 博湖县| 沙田区| 库尔勒市| 镇雄县| 盐城市| 禄丰县| 建德市| 温泉县| 双鸭山市| 巨鹿县| 开封市| 三原县| 定南县| 安阳市| 蓬安县| 丹凤县| 丹棱县| 东莞市| 贞丰县| 蒲城县| 共和县| 陕西省| 达孜县| 隆子县| 夹江县| 义马市| 泰顺县| 神木县| 大安市| 青龙| 瑞安市| 什邡市| 新竹县| 肇源县| 德江县| 新泰市| 仲巴县| 金阳县| 灵武市|