《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 嵌入式軟件與硬件的集成測試過程研究
嵌入式軟件與硬件的集成測試過程研究
摘要: 嵌入式軟件自身軟硬件結(jié)合的復(fù)雜性及其質(zhì)量的重要性,造成其軟件測試的特殊性,就是在執(zhí)行正常軟件測試的單元測試、集成測試、系統(tǒng)測試的過程中,還要考慮到軟件與硬件的兼容問題,即需要進行軟硬件集成測試。本文首先介紹了嵌入式軟件與硬件集成測試的相關(guān)概念,然后歸納提出了軟硬件集成測試過程,結(jié)合當前軟件測試理論前沿知識,把該測試過程進行重組和改進,并給出了測試模型。
Abstract:
Key words :

引言

軟件質(zhì)量即業(yè)務(wù)生命。軟件測試項目已經(jīng)變得比以往任何時候都復(fù)雜和困難。1979年,Glenford Myers在《The Art of Software Testing》一書中提出“測試的目的是證偽”這一概念,推翻了過去“為表明軟件正確而進行測試”的錯誤認識,為軟件測試的發(fā)展指出了方向,軟件測試的理論、方法在之后得到了長足的發(fā)展。但是,目前中國許多軟件企業(yè)仍存在著“重開發(fā)、輕測試”的傾向,從而造成軟件產(chǎn)品的質(zhì)量問題日漸突出。因此,如何制定有效的軟件測試過程、保障軟件業(yè)的健康化發(fā)展,已成為當務(wù)之急。

嵌入式軟件作為軟件家族中重要的分支,在當今人民生活和國防事業(yè)中得到越來越廣泛的應(yīng)用,由于嵌入式軟件自身軟硬件結(jié)合的復(fù)雜性、其質(zhì)量的重要性,也造就了其軟件測試的特殊性,那就是在執(zhí)行正常軟件測試的單元測試、集成測試、配置項測試、系統(tǒng)測試的過程中,還要考慮到軟件與硬件的兼容問題,即需要進行軟、硬件集成測試。本文將重點研究嵌入式軟件與硬件集成時的測試過程。

根據(jù)筆者在嵌入式軟件測試工作過程中的經(jīng)驗,歸納提出了軟硬件集成測試過程,同時結(jié)合當前軟件測試理論前沿知識,把該測試過程進行重組和改進,并給出了測試模型,以期嵌入式軟件與硬件集成測試過程能夠在實際中廣泛應(yīng)用。

1  、嵌入式軟件測試基本概念

1.1  嵌入式軟件

和普通計算機系統(tǒng)一樣,嵌入式系統(tǒng)除了需要硬件結(jié)構(gòu)和配置外,還需要相應(yīng)軟件的支持才能完整地實現(xiàn)系統(tǒng)的功能。目前,嵌入式系統(tǒng)的軟件體系結(jié)構(gòu)通常都采用以實時內(nèi)核為基礎(chǔ)的分層體系結(jié)構(gòu)。組成嵌入式系統(tǒng)的軟件大致可分為如下幾層:

驅(qū)動層(硬件抽象層):驅(qū)動層是最靠近硬件的一層,它屬于最底層的軟件,直接和硬件打交道,它為操作系統(tǒng)內(nèi)核和應(yīng)用提供使用硬件的接口即驅(qū)動的支持。

操作系統(tǒng)層(實時內(nèi)核層):該層的主要功能是協(xié)助最頂層的應(yīng)用層更好地進行任務(wù)的調(diào)度、消息管理和異常處理等工作,由于該層的支持,特別是實時內(nèi)核的作用,大大地減輕了嵌入式軟件開發(fā)人員開發(fā)嵌入式軟件的難度,同時也縮短了嵌入式軟件的開發(fā)周期。

應(yīng)用軟件實現(xiàn)支持層:嵌入式應(yīng)用軟件的實現(xiàn)需要編程語言的支持。目前,應(yīng)用于嵌入式軟件編程語言主要有面向過程的語言C和面向?qū)ο蟮木幊陶Z言C++、ADA等,應(yīng)用這些語言開發(fā)的應(yīng)用程序在嵌入式系統(tǒng)中運行時都需要相應(yīng)的編譯器或解釋器的支持,轉(zhuǎn)換成相應(yīng)的機器碼,才能在嵌入式系統(tǒng)中實現(xiàn)應(yīng)用程序?qū)?yīng)的功能。

應(yīng)用層:應(yīng)用層軟件主要由多個相對獨立的應(yīng)用任務(wù)組成,每個應(yīng)用任務(wù)完成特定的工作,如計算任務(wù)和通信任務(wù)等,各個任務(wù)的運行由操作系統(tǒng)進行調(diào)度。

1.2  測試用語

嵌入式軟件(Embedded Software):嵌入式計算機系統(tǒng)中的軟件,其與硬件聯(lián)系緊密,并且通常要求強實時性。

測試環(huán)境(TeST EnvirONment):執(zhí)行測試程序所需要的硬件平臺和軟件資源構(gòu)成的環(huán)境。

測試用例(Test Case):為測試項規(guī)定輸入、預(yù)期結(jié)果和一組執(zhí)行條件的文檔。

測試程序(Test Procedure):執(zhí)行測試用例的程序形式,其執(zhí)行需要相應(yīng)測試環(huán)境的支持。

問題描述報告(Problem DescripTIon Report):對軟件測試過程中發(fā)現(xiàn)問題的簡要描述。

更改的判定條件覆蓋(Modified Condition/Decision Coverage, MC/DC):對設(shè)計足夠多的測試用例,使得判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,每個判定本身的所有可能結(jié)果也至少出現(xiàn)一次,每個入口點和出口點至少要喚醒一次,并且每個條件都顯示能單獨影響判定結(jié)果。

嵌入式軟件軟硬件集成測試過程

圖1  嵌入式軟件軟硬件集成測試過程

2 、 軟硬件集成測試過程

軟硬件集成測試應(yīng)該在嵌入式軟件集成測試完成的基礎(chǔ)上進行。此時軟件已按照功能模塊組裝成子系統(tǒng),為了有效驗證該子系統(tǒng)軟件與硬件功能的協(xié)調(diào)性,保證軟件在特定的硬件平臺上能夠按照設(shè)計的要求進行工作,完成其要求的功能、性能指標,就必須進行嵌入式軟件的軟硬件集成測試。

2.1  嵌入式軟件測試過程

軟件開發(fā)人員在開發(fā)過程中,一般遵循如下步驟:

① 系統(tǒng)軟硬件功能劃分,形成軟、硬件研制任務(wù)書。

② 系統(tǒng)軟件需求分析。

③ 系統(tǒng)軟件概要設(shè)計。

④ 系統(tǒng)軟件詳細設(shè)計。

⑤ 軟件編碼。

測試人員恰恰以相反的步驟實現(xiàn)測試過程:

① 單元測試。軟件單元測試的目的是檢測程序模塊是否符合《詳細設(shè)計說明書》的要求。通常會采用白盒測試技術(shù),如基于路徑覆蓋原理等。

② 集成測試(配置項測試)。軟件集成測試的目的是檢測程序是否符合《概要設(shè)計說明書》的要求。通常采用黑盒測試技術(shù),但有時為了確保主要控制路徑的覆蓋測試,也會采用一定的白盒測試技術(shù)。

③ 軟硬件集成測試。軟硬件集成測試的目的是為了檢測系統(tǒng)劃分軟硬件功能后,在軟件集成測試完成的基礎(chǔ)上,測試模塊軟件在硬件平臺上的運行情況,主要是對嵌入式軟件的實時性、嵌入性及功能性能指標的測試。

④ 系統(tǒng)測試。關(guān)注所設(shè)計的系統(tǒng),在模塊與模塊集成之后構(gòu)成完整系統(tǒng)時所表現(xiàn)出的質(zhì)量指標,包括正確性、可擴性等。

⑤ 確認測試。針對確認標準的測試。確認標準由需求分析產(chǎn)生,所以實際上就是指規(guī)格化的需求,通常采用黑盒測試技術(shù)。

2.2  軟硬件集成測試過程

由圖1可以看到,軟硬件集成測試主要是在軟件集成測試完成后,形成獨立的配置項,加載到相應(yīng)的硬件平臺上進行測試,以確定軟硬件是否能夠協(xié)同工作,實現(xiàn)系統(tǒng)既定的功能。

具體分為以下幾個步驟:

① 系統(tǒng)測試組負責與系統(tǒng)工程組共同完成制定《軟硬件集成測試計劃》和《軟硬件集成測試計劃測試說明》的編寫。

② 按軟件*審管理辦法,對《軟硬件集成測試計劃》和《軟硬件集成測試說明》進行同行*審。

③ 根據(jù)*審意見,對《軟硬件集成測試計劃》和《軟硬件集成測試說明》修改完善,履行審批手續(xù)后歸檔、入庫。

④ 系統(tǒng)測試組按《軟硬件集成測試計劃》、《軟硬件集成測試說明》,實施軟硬件集成測試。

⑤ 系統(tǒng)工程組組織軟件、硬件項目組協(xié)助確定和定位軟件中存在的缺陷和錯誤。

⑥ 軟件工程組對發(fā)現(xiàn)的軟件缺陷和錯誤進行確認和更改。

⑦ 測試人員對更改后的軟件配置項進行回歸測試。

⑧ 軟件設(shè)計人員將通過回歸測試的軟件入庫。

⑨ 測試人員編制測試報告。

2.3  軟硬件集成測試模型

綜上所述,嵌入式軟件的軟硬件集成測試過程主要是在需求規(guī)格說明完成的情況下,結(jié)合通用的標準、規(guī)范以及接口控制文件,與軟件設(shè)計同步,編寫軟硬件集成測試的《測試的計劃》和《測試的說明》,經(jīng)過*審后,把被測試軟件加載到目標機上運行,以檢測嵌入式軟件與硬件配合完成系統(tǒng)功能、性能的質(zhì)量。軟硬件集成測試模型如圖2所示。

軟硬件集成測試模型

圖2  軟硬件集成測試模型

3 、 過程的可行性驗證

為驗證上述過程的可行性及測試模型的有效性,某嵌入式軟件開發(fā)項目組在開發(fā)過程中按照此過程及模型進行了軟硬件集成測試。

3.1  軟硬件集成測試硬件平臺

① 目標機處理器:ARM核LPC2294單片機。

② 目標機外圍接口:ARINC429,RS422,離散量、模擬量等。

③ 目標機調(diào)試接口:JTAGH并口,RS232串口。

④ 宿主機調(diào)試環(huán)境:ADS1.2開發(fā)平臺。

⑤ 宿主機平臺:PC機(Windows XP系統(tǒng))、并口、RS232串口。

3.2  軟硬件集成測試過程

① 目標機上電、宿主機打開調(diào)試環(huán)境。

② 加載經(jīng)過集成測試的嵌入式軟件到目標機,并啟動運行軟件。

③ 根據(jù)*審?fù)瓿傻臏y試說明及測試計劃進行軟硬件集成測試。

④ 根據(jù)測試結(jié)果編寫測試報告。

3.3  測試

結(jié)論根據(jù)上述測試過程測試完成的軟件,在交付使用后,至今只收到用戶的3份輕微級缺陷報告,比沒有經(jīng)過軟硬件集成測試即進行系統(tǒng)測試的軟件,質(zhì)量有較大提高,節(jié)省了大量的缺陷修正時間,提高了企業(yè)效益。

4、結(jié)論

軟硬件集成測試是保證嵌入式軟件質(zhì)量的關(guān)鍵一步,嵌入式軟件測試已成為目前嵌入式應(yīng)用領(lǐng)域的重要研究方向。從國內(nèi)外對嵌入式軟件測試的研究中,可以發(fā)現(xiàn)其大多著重關(guān)注嵌入式軟件的調(diào)試工作,而鮮見系統(tǒng)的對軟硬件集成測試的研究。隨著嵌入式軟件規(guī)模應(yīng)用的加大、質(zhì)量保證要求的提高,對嵌入式軟件的測試要求顯然已經(jīng)不能停留于僅僅通過調(diào)試就可以了,必然需要有更加全面的、系統(tǒng)化的測試過程。論文根據(jù)軟硬件集成測試方面的經(jīng)驗,總結(jié)提出了軟硬件集成測試的流程及模型,希望能夠?qū)η度胧杰浖y試的研究提供幫助。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。