- 相關(guān)推薦
基于模塊化設(shè)計的嵌入式軟件測試方法
摘要:分析嵌入式軟件的特點,綜述傳統(tǒng)的軟件測試方法;針對嵌入式軟件的特點,提出嵌入式軟件的四級測試流程和集成測試的測試模型,并結(jié)合開發(fā)數(shù)控系統(tǒng)的實例進(jìn)行分析。嵌入式設(shè)計已經(jīng)成為工業(yè)現(xiàn)代化、智能化的必經(jīng)之路,嵌入式產(chǎn)品已經(jīng)深入到各行各業(yè)。嵌入式系統(tǒng)的專用程度較高,系統(tǒng)的整體繼承性相對較小,為了保證系統(tǒng)的穩(wěn)定性,軟件的測試成為嵌入式開發(fā)的一個重要環(huán)節(jié)。由于嵌入式軟件自身的特點,傳統(tǒng)的軟件測試?yán)碚摬荒苤苯佑糜谇度胧杰浖臏y試,因此,研究嵌入式軟件的測試有重要意義。
1 基本概念簡述
1.1 模塊化設(shè)計
軟件的設(shè)計是以一定的方法為基礎(chǔ)的。面對越來越復(fù)雜的軟件開發(fā)任務(wù),人們提出了各種軟件設(shè)計的模型。從用戶需求和系統(tǒng)要實現(xiàn)的任務(wù)功能出發(fā),把大型的軟件劃分為相對較小的模塊。為了減少模塊與模塊之間的關(guān)聯(lián)性,模塊之間的邏輯結(jié)構(gòu)相對獨立,無函數(shù)的交叉調(diào)用,數(shù)據(jù)傳遞由全局變量完成,這就是模塊化設(shè)計的基本思想。模塊化設(shè)計的核心是模塊的獨立性,主要包括功能獨立性和結(jié)構(gòu)獨立性,這使得軟件開發(fā)的分工易于實現(xiàn)。軟件測試是軟件開發(fā)中的關(guān)鍵環(huán)節(jié),基于模塊化設(shè)計的軟件測試模型簡單,查錯和糾錯都易于實現(xiàn)。下面以單鏈路數(shù)據(jù)傳遞的軟件模型說明模塊化軟件設(shè)計的軟件測試的基本原則。
在圖1中,函數(shù)F(X-Y)定義為軟件模塊X到軟件模塊Y的接口函數(shù),用來通過終端顯示由模塊X進(jìn)入模塊Y的數(shù)據(jù)。如果模塊C執(zhí)行后發(fā)生錯誤,則由模塊B和模塊C的數(shù)據(jù)接口函數(shù)F(B-C)判斷是否是模塊B出來的數(shù)據(jù)就是錯誤的。如果F(B-C)不錯,則證明模塊C存在錯誤;如果F(B-C)傳遞數(shù)據(jù)錯誤,再察看F(A-B)傳出的數(shù)據(jù)是否錯誤,如果不錯則證明模塊B存在錯誤。用此依次前推孤立錯誤的方法,即可以很容易地定位錯誤所在的模塊。這就是模塊化設(shè)計時軟件測試的基本原則。
1.2 嵌入式系統(tǒng)
嵌入式系統(tǒng)開發(fā)有其自身的特點。一般先進(jìn)行硬件部分的開發(fā),主要包括形成裸機(jī)平臺,根據(jù)需要移植實時操作系統(tǒng),開發(fā)底層的硬件驅(qū)動程序等。硬件平臺測試通過后,應(yīng)該軟件的開發(fā)調(diào)試是基于該硬件平臺進(jìn)行的,這同時也是對硬件平臺的一個測試。整個嵌入式系統(tǒng)開發(fā)流程如圖2所示。因此可以說,嵌入式系統(tǒng)的開發(fā)過程是一個軟硬件互相協(xié)調(diào),互相反饋和互相測試的過程。一般來說,在嵌入式系統(tǒng)軟件中,底層驅(qū)動程序、操作系統(tǒng)和應(yīng)用程序的界線是不清晰的,根據(jù)需要甚至混編在一起。這主要是由于嵌入式系統(tǒng)中軟件對硬件的依賴性造成的。嵌入式軟件對硬件的依賴性要求,軟件測試時必須最大限度地模擬被測軟件的實際運(yùn)行環(huán)境,以保證測試的可靠性。底層程序和應(yīng)用程序界限的不清晰增加了測試時的難度,測試時只有確認(rèn)嵌入式系統(tǒng)平臺及底層程序正確的情況下才能進(jìn)行應(yīng)用程序的測試,而且在系統(tǒng)測試時,錯誤的定位較為困難。軟件的專用性也是嵌入式軟件的一個重要特點。由于嵌入式軟件設(shè)計是以一定的目標(biāo)硬件平臺為基礎(chǔ)的、面向固定的任務(wù)進(jìn)行的,因此,一旦被加載到目標(biāo)系統(tǒng)上,功能必須完全確定。這個特點決定了嵌入式應(yīng)用軟件的繼承性較差,延長的系統(tǒng)的測試時間,增加了測試費(fèi)用。嵌入式軟件的另外一個重要特點就是實時性。這是從軟件的執(zhí)行角度出發(fā)說明的,也就是說嵌入式軟件的執(zhí)行要滿足一定的時間約束。嵌入式系統(tǒng)中,應(yīng)用軟件自身算法的復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度,決定了系統(tǒng)資源的分配和消耗,因此,對系統(tǒng)實時性進(jìn)行測試時,要借助一定的測試工具對應(yīng)用程序算法復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度進(jìn)行分析測試。可見嵌入式軟件與傳統(tǒng)的面向?qū)ο蠛兔嫦蜻^程的軟件相比有其自身的特點。針對這些特點對嵌入式軟件的測試進(jìn)行研究是必要的,有意義的。
1.3 嵌入式軟件測試
軟件測試是從經(jīng)濟(jì)、效率的角度出發(fā),對軟件代碼進(jìn)行質(zhì)量、正確性保證的一個過程。軟件測試是軟件開發(fā)中的一個重要環(huán)節(jié),也是軟件從開發(fā)過程到應(yīng)用過程的關(guān)鍵一環(huán)。嵌入式軟件也不例外,圖3給出了嵌入式軟件測試的統(tǒng)一測試模型。軟件測試逐漸成為一門成熟的學(xué)科,前人針對面向?qū)ο蠛兔嫦蜻^程的非實時軟件的測試作了大量的研究,其中大部分方法可以用到嵌入式軟件的測試。
根據(jù)不同的指標(biāo),軟件測試方法有不同的劃分方法。從軟件開發(fā)過程中測試所處的不同階段可分為模塊測試、集成測試和系統(tǒng)測試。根據(jù)是否需要運(yùn)行目標(biāo)代碼分為動態(tài)測試和靜態(tài)測試;根據(jù)目標(biāo)代碼的可見性可分為白盒測試(結(jié)構(gòu)測試)和黑盒測試(功能測試)。在軟件的測試中,每種測試方法都不是孤立的。為了最經(jīng)濟(jì)最有效地達(dá)到測試的目的,各種測試方法往往是互相嵌套的。例如,在軟件的單元測試階段,可以用黑盒測試和白盒測試的方法分別進(jìn)行動態(tài)測試。
值得一提的是,近年來軟件測試中,測試代碼的覆蓋率逐漸成為軟件測試的統(tǒng)一標(biāo)準(zhǔn),因此不管采用何種測試方法,盡可能地提高軟件測試中的代碼覆蓋率是必需的。軟件測試代碼覆蓋率是基于白盒測試方法的,因此,為了提高軟件測試的代碼覆蓋率,測試人員必須清楚源代碼的結(jié)構(gòu),擁有程序設(shè)計文檔,以便設(shè)計測試用例使測試盡可能地覆蓋程序內(nèi)部結(jié)構(gòu)的每條語句,提高代碼的覆蓋率。
【基于模塊化設(shè)計的嵌入式軟件測試方法】相關(guān)文章:
基于Gene8310的嵌入式家庭服務(wù)機(jī)器人05-11
基于MOSFET內(nèi)阻的電流采樣及相電流重構(gòu)方法10-30
模塊化開題報告范文10-24
基于CS管理的房地產(chǎn)企業(yè)開發(fā)設(shè)計06-04
基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02
基于勝任力的企業(yè)個體績效管理流程設(shè)計06-03
基于PLC的斷路器型式試驗系統(tǒng)設(shè)計03-10
談基于互聯(lián)網(wǎng)新模式的企業(yè)網(wǎng)絡(luò)營銷方法08-25
基于電話網(wǎng)絡(luò)的熱網(wǎng)遠(yuǎn)程控制系統(tǒng)設(shè)計05-11
小橋涵設(shè)計流量的計算方法04-27