地磅嵌入式軟件可信性的設(shè)計(jì)和驗(yàn)證方法
地磅嵌入式軟件可信性的設(shè)計(jì)和驗(yàn)證方法
目前,嵌入式系統(tǒng)已廣泛地應(yīng)用于控制系統(tǒng)部件和智能儀表中,在控制系統(tǒng)部件對嵌入式系統(tǒng)依賴性增強(qiáng)的同時(shí),對嵌入式軟件質(zhì)量的要求也越來越高,尤其是可靠性的要求。為此,IEC61508 等功能安全標(biāo)準(zhǔn)通過嚴(yán)格規(guī)定軟件安全生命周期中各階段應(yīng)采用的技術(shù)和措施,以期提高軟件的可靠性,保證軟件質(zhì)量。本文給出一般性的地磅嵌入式軟件可信性的設(shè)計(jì)和驗(yàn)證方法。
1.引言
微機(jī)和通信技術(shù)的發(fā)展使得越來越多制造業(yè)、流程工業(yè)過程采用 DCS、FCS 等數(shù)字化控制系統(tǒng),傳統(tǒng)的模擬儀表也逐步為智能化的儀器儀表和執(zhí)行機(jī)構(gòu)所替代,從而極大地提高了工業(yè)過程的自動化水平。考慮到現(xiàn)今的數(shù)字化控制系統(tǒng)部件和智能儀表均采用嵌入式系統(tǒng)作為控制核心,其控制功能的可靠安全實(shí)現(xiàn)極大地依賴于嵌入式軟件的正確執(zhí)行,而其中的嵌入式軟件部分的可靠性一般都是被忽略的。而國外儀表能達(dá)到較高的可靠性水平,一方面也是因?yàn)槠淇紤]了軟件系統(tǒng)的可靠性,如 Rosemount 公司的 305IC 差壓變送器的硬件 SIL 等級達(dá)到 SIL3 級,軟件為 SILZ 級。因此,要想實(shí)現(xiàn)國內(nèi)智能儀表的高可靠性,研究嵌入式軟件高可靠性的分析、設(shè)計(jì)和驗(yàn)證方法和技術(shù)就顯得尤為重要。
2.嵌入式軟件可靠性特點(diǎn)
2. 1 實(shí)時(shí)性對嵌入式軟件可靠性的影響
實(shí)時(shí)軟件與其他軟件不同,它的正確性不僅由功能和行為決定,還依賴于其時(shí)間特性。如何對軟件的時(shí)間特性進(jìn)行驗(yàn)證成為嵌入式軟件可靠性的核心問題之一。對軟件的時(shí)間測試可分為兩種方法: 即靜態(tài)時(shí)間分析和動態(tài)實(shí)時(shí)檢測。
動態(tài)實(shí)時(shí)檢測就是通過執(zhí)行程序來測試程序的時(shí)間特性。在線仿真器 ICE、指令仿真器和插樁工具是三種最常用的方法。
實(shí)時(shí)性使得嵌入式軟件的測試用例編寫更為困難測試用例不僅要測試軟件的功能和行為特性,還要測試其時(shí)間特性,因?yàn)橥瑯拥妮斎朐诓煌瑫r(shí)可能有不同的輸出,這給傳統(tǒng)的測試用例生成方法帶來了新問題。
2. 2 嵌入性對嵌入式軟件可靠性的影響
嵌入式軟件的開發(fā)環(huán)境和運(yùn)行環(huán)境的不一致性同樣給嵌入式軟件可靠性的測試帶來了不少麻煩。
( 1) 測試工具運(yùn)行在宿主機(jī)上,測試所需要的信息在目標(biāo)機(jī)上產(chǎn)生,并通過一定的物理 / 邏輯連接傳輸?shù)剿拗鳈C(jī)上,由測試工具接受。因此,嵌入式軟件測試的一個(gè)重要問題是建立宿主機(jī)與目標(biāo)機(jī)之間的物理 / 邏輯連接,解決數(shù)據(jù)信息的傳輸問題。
( 2) 即使在宿主機(jī)環(huán)境下測試再充分,也不能說明在目標(biāo)機(jī)環(huán)境下該軟件運(yùn)行不出問題。因而,嵌入式軟件還面臨著目標(biāo)環(huán)境的測試。這不僅增加了測試的代價(jià),而且還帶來了嵌入式軟件測試策略問題,即哪些測試分配在宿主環(huán)境進(jìn)行,哪些測試分配到目標(biāo)環(huán)境下運(yùn)行。
2. 3 反應(yīng)性對嵌入式軟件可靠性的影響
反應(yīng)性系統(tǒng) ( Reactive System) 在任何時(shí)刻都要對可能出現(xiàn)的時(shí)間作出適當(dāng)反應(yīng)。由于 “激勵(lì) - 響應(yīng)”在反應(yīng)式系統(tǒng)中占主要地位,因此這類系統(tǒng)常常包含大量復(fù)雜的控制行為。
3.地磅嵌入式軟件可信性的驗(yàn)證方法
3. 1 優(yōu)化系統(tǒng)設(shè)計(jì)方案
嵌入式系統(tǒng)最大的特點(diǎn)是以控制為主,軟硬件結(jié)合較多,功能性操作較多,模塊互相調(diào)用較多,外部工作環(huán)境復(fù)雜容易受到干擾或干擾別的設(shè)備,且執(zhí)行錯(cuò)誤的后果不僅僅是數(shù)據(jù)錯(cuò)誤而且有可能導(dǎo)致系統(tǒng)崩潰等不可估量的災(zāi)難。所以在嵌入式軟件設(shè)計(jì)過程中需注意軟硬件接口之間的冗余和預(yù)防性設(shè)計(jì)。另外,在設(shè)計(jì)過程中,可采用看門狗電路、狀態(tài)保存等恢復(fù)技術(shù); 軟件鎖設(shè)計(jì)、程序陷阱設(shè)計(jì)等抗干擾技術(shù)以及備份技術(shù)有效的進(jìn)行系統(tǒng)容錯(cuò)設(shè)計(jì)。
3. 2 嚴(yán)格的軟件測試
( 1) 黑盒測試方法
黑盒測試 ( Black 一 boxTesting) 是一種從軟件需求出發(fā),根據(jù)軟件需求說明設(shè)計(jì)測試用例,并按照測試用例的各項(xiàng)要求運(yùn)行被測程序的測試方法。它不考慮程序內(nèi)部的實(shí)現(xiàn)過程,僅側(cè)重于程序的執(zhí)行結(jié)果。它將被測程序看成是不可見的黑箱,因此,被稱為黑盒測試。
黑盒測試,也稱功能測試,其方法主要有輸入等價(jià)類劃分。邊界值分析、因果圖法、正交試驗(yàn)方法和判定表驅(qū)動法等。
( 2) 白盒測試方法
白盒測試又稱為結(jié)構(gòu)測試或基于程序的測試。這種測試方法是把測試對象看作打開的盒子,它允許測試人員根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息,設(shè)計(jì)測試用例,對程序的邏輯路徑進(jìn)行測試。它對軟件的結(jié)構(gòu)性細(xì)節(jié)做出細(xì)致的檢查。根據(jù)測試的精確程度,即測試充分性,可將白盒測試分為入口覆蓋、語句覆蓋、判定覆蓋和修正條件 / 判定覆蓋等。
4.結(jié)束語
隨著嵌入式系統(tǒng)技術(shù)的不斷進(jìn)步,在嵌入式系統(tǒng)中占重要地位的嵌入式軟件的質(zhì)量保證問題也越來越引起人們的關(guān)注。軟件測試是軟件可靠性的保證,它在整個(gè)軟件開發(fā)過程中占據(jù)了將近一半的時(shí)間和資源。通過在測試過程中合理地引入軟件測試工具、選擇適當(dāng)?shù)臏y試用例,能夠縮短軟件開發(fā)的時(shí)間,提高測試質(zhì)量,從而更快、更好地為用戶提供他們需要的軟件產(chǎn)品。