近年來,隨著嵌入式系統(tǒng)的功能和復(fù)雜性不斷增加,其開發(fā)時間和成本也隨之不斷上升。對于安全關(guān)鍵領(lǐng)域的嵌入式系統(tǒng)和軟件來說,其穩(wěn)定性和可靠性往往需要通過大量的測試和驗證來保證。
一、一般軟件測試VS嵌入式軟件測試
嵌入式軟件測試針對嵌入式軟件進行,建立在一般軟件測試的基礎(chǔ)之上,大多數(shù)軟件的測試方法都可以直接或間接用于嵌入式軟件的測試。但由于嵌入式系統(tǒng)專用性強、實時性要求高,嵌入式軟件測試與一般軟件測試也存在一些不同之處。
表1:一般軟件測試與嵌入式軟件測試的區(qū)別
二、嵌入式軟件測試需求
根據(jù)測試階段和重點的不同,嵌入式軟件測試需要考慮多個層面的因素:
第一層:不同測試階段的測試需求。嵌入式軟件測試通常分為單元測試、軟件集成測試、系統(tǒng)測試及驗收維護四個階段。對不同的測試階段的測試需求分析往往是不同的,采取的測試方法及進行測試的程度也不相同。測試通常需要滿足“需求可追溯”:不同的測試階段會驗證不同的設(shè)計/編碼是否符合需求,以確保該軟件能夠?qū)崿F(xiàn)預(yù)期的功能,并且僅構(gòu)建了所需的功能。需求可分為低層級需求和高層級需求,各行各業(yè)存在的功能安全標(biāo)準(zhǔn)即為滿足高層級需求的存在,如汽車領(lǐng)域的ISO 26262,測試人員通常會以滿足本領(lǐng)域高層級需求的功能安全標(biāo)準(zhǔn)來分析測試需求,并通過簡單測試來解釋和測試所有未發(fā)現(xiàn)的測試案例。嵌入式軟件的開發(fā)通常遵循V模型,如下圖所示,測試貫穿整個開發(fā)過程中。
圖1:嵌入式軟件開發(fā)過程的V模型
第二層:待測軟件的特性。不同的嵌入式軟件應(yīng)用背景不同,所要求的特性也不相同,測試的側(cè)重點自然也不同。航空、航天領(lǐng)域的嵌入式軟件一般需要具備很強的實時性——飛行控制系統(tǒng)必須快速調(diào)整飛機姿態(tài)以確保飛行安全性。對航空、航天領(lǐng)域的嵌入式軟件進行測試時,需要格外關(guān)注輸入、運算、輸出的時效性。
第三層:測試需求的優(yōu)先級。根據(jù)所測的功能點進行分析、分解,從而得出哪些功能點為主要功能點、哪些為次要功能點。測試需求優(yōu)先級別的確定,需要測試人員清晰了解核心的功能、特性及測試流程,有利于測試工作有的放矢地展開。
第四層:測試需求的覆蓋程度。如果一個軟件的需求已經(jīng)與測試需求存在一對一或一對多的對應(yīng)關(guān)系,可以說測試需求已經(jīng)覆蓋了該功能點,測試需求的覆蓋率達到100%,并不意味著測試需求的覆蓋程度高。測試需求的覆蓋率只計算了顯性因素,而隱性因素并未被計算在內(nèi)。因此,測試人員需要不斷了解系統(tǒng)的隱性需求,對測試需求進行補充和優(yōu)化。
第五層:不同的測試環(huán)境。由于執(zhí)行故障注入、覆蓋率分析等測試步驟需要在不同的測試環(huán)境中進行,在進行測試需求分析時就需要考慮到相應(yīng)的搭建、數(shù)據(jù)準(zhǔn)備及接口等變量。
第六層:測試工具的選擇。根據(jù)測試的要求和測試階段,選擇成熟且可靠的測試工具也非常重要。
三、嵌入式軟件測試工具
(一)靜態(tài)測試工具
單元測試階段作為完整測試過程的最初階段,需要確保各個組件都能夠正常工作。在此過程中,測試人員需要對較低級別的需求進行定義,以確保每個功能和功能集都能被正常使用并為系統(tǒng)其余部分提供合適的接口。第二層:待測軟件的特性。不同的嵌入式軟件應(yīng)用背景不同,所要求的特性也不相同,測試的側(cè)重點自然也不同。航空、航天領(lǐng)域的嵌入式軟件一般需要具備很強的實時性——飛行控制系統(tǒng)必須快速調(diào)整飛機姿態(tài)以確保飛行安全性。對航空、航天領(lǐng)域的嵌入式軟件進行測試時,需要格外關(guān)注輸入、運算、輸出的時效性。
第三層:測試需求的優(yōu)先級。根據(jù)所測的功能點進行分析、分解,從而得出哪些功能點為主要功能點、哪些為次要功能點。測試需求優(yōu)先級別的確定,需要測試人員清晰了解核心的功能、特性及測試流程,有利于測試工作有的放矢地展開。
第四層:測試需求的覆蓋程度。如果一個軟件的需求已經(jīng)與測試需求存在一對一或一對多的對應(yīng)關(guān)系,可以說測試需求已經(jīng)覆蓋了該功能點,測試需求的覆蓋率達到100%,并不意味著測試需求的覆蓋程度高。測試需求的覆蓋率只計算了顯性因素,而隱性因素并未被計算在內(nèi)。因此,測試人員需要不斷了解系統(tǒng)的隱性需求,對測試需求進行補充和優(yōu)化。
第五層:不同的測試環(huán)境。由于執(zhí)行故障注入、覆蓋率分析等測試步驟需要在不同的測試環(huán)境中進行,在進行測試需求分析時就需要考慮到相應(yīng)的搭建、數(shù)據(jù)準(zhǔn)備及接口等變量。
第六層:測試工具的選擇。根據(jù)測試的要求和測試階段,選擇成熟且可靠的測試工具也非常重要。
(二)半實物仿真測試平臺
在系統(tǒng)級測試階段,半實物仿真測試平臺是目前常用的測試工具之一。
半實物仿真測試在目標(biāo)機上測試軟件,用仿真器模擬外部環(huán)境,以提供激勵信息和接收反饋信息。該環(huán)境下測試接近實裝測試,可靠性強。具有較好地收集數(shù)據(jù)、更容易地進行故障重現(xiàn)、可控性強且能實現(xiàn)自動化測試,風(fēng)險小,收益大。半實物仿真允許在系統(tǒng)中接入部分實物,意味著可以把部分實物放在系統(tǒng)中進行考察,從而使部件能在滿足系統(tǒng)整體性能指標(biāo)的環(huán)境中得到檢驗,因此半實物仿真是提高系統(tǒng)設(shè)計的可靠性和研制質(zhì)量的必要手段。國內(nèi)半實物仿真技術(shù)在導(dǎo)彈制導(dǎo)、火箭控制、衛(wèi)星姿態(tài)控制等應(yīng)用研究方面也達到了較高水平。
ETest,嵌入式系統(tǒng)半實物仿真測試集成開發(fā)環(huán)境,是首款符合ATML標(biāo)準(zhǔn)的國產(chǎn)自主可控的半實物仿真測試系統(tǒng)集成開發(fā)環(huán)境,具有跨平臺的運行能力,可利用ETest開發(fā)出運行于國產(chǎn)計算平臺測試系統(tǒng),廣泛應(yīng)用于第三方測試機構(gòu)的測試環(huán)境搭建、裝備研制部門的測試工裝開發(fā)以及檢測設(shè)備研發(fā)單位的產(chǎn)品研制。
圖2:ETest測試開發(fā)環(huán)境圖
ETest作為工業(yè)基礎(chǔ)軟件,填補了我國在通用半實物仿真測試系統(tǒng)方面的空白:
◆ 提出的ETL語言具有完善的工具鏈;
◆ 測試系統(tǒng)的設(shè)計與開發(fā)模式便捷靈活;
◆ 突破了領(lǐng)域語言定義與應(yīng)用、異步事件循環(huán)調(diào)度、動態(tài)腳本實時處理、跨平臺的IDE架構(gòu)設(shè)計與開發(fā)等多項關(guān)鍵技術(shù);
◆ 顯著提高了測試系統(tǒng)的開發(fā)效率;
◆ ETest支持各種國產(chǎn)CPU 國產(chǎn)操作系統(tǒng)的部署方案,已在龍芯CPU和中標(biāo)麒麟操作系統(tǒng)下完成適配,同時兼容Windows、linux、Mac等多種操作系統(tǒng)。
圖3:ETest系統(tǒng)架構(gòu)圖
基于ETest完成的航空航天、兵器船舶領(lǐng)域的開發(fā)應(yīng)用,試驗結(jié)果表明,ETest具有1ms級實時響應(yīng)性能,為用戶提供異步操作的測試程序開發(fā)模式,顯著提高了各類仿真測試系統(tǒng)及檢測維修設(shè)備的開發(fā)效率,對于建立國產(chǎn)自主可控的測試系統(tǒng)研發(fā)生態(tài)具有重要的戰(zhàn)略意義。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。