• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MC/DC準(zhǔn)則在嵌入式軟件測(cè)試中的應(yīng)用

    2019-07-12 11:07:14陸云峰
    自動(dòng)化儀表 2019年6期
    關(guān)鍵詞:嵌入式軟件測(cè)試用例布爾

    安 媛,陸云峰

    (1.國(guó)核自儀系統(tǒng)工程有限公司,上海 200241;2.上海申能崇明發(fā)電有限公司,上海 202155)

    0 引言

    隨著核電儀控系統(tǒng)數(shù)字化程度的提升,應(yīng)用于核電儀控系統(tǒng)的嵌入式軟件向復(fù)雜化和集成化發(fā)展,并能實(shí)現(xiàn)硬件的功能。嵌入式軟件在設(shè)計(jì)、編碼后,要固化在存儲(chǔ)芯片,或者在硬件板卡等硬件環(huán)境中才能看見(jiàn),必須配備專(zhuān)門(mén)的開(kāi)發(fā)工具和開(kāi)發(fā)環(huán)境。

    而嵌入式軟件的安全性和可靠性要求比較高。為了保證系統(tǒng)的穩(wěn)定性,避免由于其可能出現(xiàn)的失效而導(dǎo)致災(zāi)難性的后果,要求對(duì)嵌入式軟件進(jìn)行獨(dú)立的驗(yàn)證和確認(rèn)(independent verification and validation,IV&V)。

    嵌入式軟件IV&V過(guò)程中,有著嚴(yán)格的體系標(biāo)準(zhǔn)和驗(yàn)證流程。因此,在軟件的各個(gè)生命周期內(nèi)因地制宜地調(diào)整測(cè)試方法和策略,可提高和改善嵌入式軟件的質(zhì)量。

    修正的條件/判定覆蓋(modified condition decision coverage,MC/DC)準(zhǔn)則是一種實(shí)用的軟件結(jié)構(gòu)覆蓋率測(cè)試準(zhǔn)則,由波音公司提出,并被RTAC/DO-178B(機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件)所采納。其目前被廣泛應(yīng)用于嵌入式軟件IV&V過(guò)程中。

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

    嵌入式軟件的主要特點(diǎn)是實(shí)時(shí)性、可移植性以及軟硬件可裁剪;應(yīng)用的硬件平臺(tái)及操作系統(tǒng)具有多樣性,開(kāi)發(fā)工具昂貴,缺陷不容易修復(fù)等特點(diǎn)。

    針對(duì)以上嵌入式軟件特點(diǎn),在IV&V的需求分析階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段以及驗(yàn)證階段,需要采用不同的測(cè)試策略。本文主要采用的是靜態(tài)代碼分析和動(dòng)態(tài)測(cè)試方法相結(jié)合的策略[1]。

    靜態(tài)測(cè)試時(shí)不需要運(yùn)行軟件,主要分為代碼審查和靜態(tài)代碼分析,通過(guò)人工審查和測(cè)試工具檢測(cè)相結(jié)合的方式,完成編碼規(guī)范檢查、語(yǔ)法和語(yǔ)義分析、數(shù)據(jù)流分析等。在需求、設(shè)計(jì)和實(shí)現(xiàn)階段盡早地檢查出錯(cuò)誤,以減少整個(gè)項(xiàng)目的開(kāi)發(fā)成本[2]。

    動(dòng)態(tài)測(cè)試時(shí)軟件需要運(yùn)行在目標(biāo)環(huán)境中,分為黑盒測(cè)試和白盒測(cè)試兩種測(cè)試類(lèi)型。黑盒測(cè)試主要進(jìn)行功能檢測(cè),功能全覆蓋后利用白盒測(cè)試實(shí)現(xiàn)軟件代碼的覆蓋測(cè)試,從而進(jìn)一步提高軟件的質(zhì)量和可靠性。

    覆蓋測(cè)試貫穿于單元測(cè)試、軟件集成測(cè)試、系統(tǒng)測(cè)試,通過(guò)構(gòu)造測(cè)試實(shí)例,運(yùn)行被測(cè)程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,從而達(dá)到測(cè)試程序內(nèi)部邏輯結(jié)構(gòu)的目的[3]。

    軟件測(cè)試方法分類(lèi)如圖1所示。

    圖1 軟件測(cè)試方法分類(lèi)圖

    2 MC/DC的基本概念

    在嵌入式軟件的IV&V過(guò)程中需要進(jìn)行兩種覆蓋驗(yàn)證,即需求覆蓋和結(jié)構(gòu)覆蓋。通過(guò)需求覆蓋,驗(yàn)證所有目標(biāo)函數(shù)被正確地執(zhí)行;通過(guò)結(jié)構(gòu)覆蓋,驗(yàn)證軟件代碼的可達(dá)性和充分性。

    兩種覆蓋分析相輔相成,建成完備的IV&V體系,實(shí)現(xiàn)軟件測(cè)試的嚴(yán)格性和完全性。條件判定語(yǔ)句由高安全性的實(shí)時(shí)嵌入式軟件基本語(yǔ)句構(gòu)成,用于實(shí)現(xiàn)各種邏輯控制與實(shí)時(shí)數(shù)據(jù)處理。條件判定語(yǔ)句占嵌入式軟件代碼的50%以上。實(shí)現(xiàn)條件判定覆蓋是保證結(jié)構(gòu)覆蓋的基礎(chǔ)[4]。

    條件判定覆蓋要求同時(shí)滿足條件覆蓋和判定覆蓋。條件覆蓋是指每個(gè)條件的任何可能取值至少執(zhí)行一次。判定覆蓋是指每個(gè)判定結(jié)果也要至少執(zhí)行一次。但是,條件判定覆蓋卻忽略了兩者組合的情況。

    MC/DC修正的條件/判定覆蓋是在條件判定覆蓋的基礎(chǔ)上,實(shí)現(xiàn)的一種優(yōu)化結(jié)構(gòu)覆蓋準(zhǔn)則。該準(zhǔn)則要求代碼中所有可能輸入輸出取值一次,每個(gè)條件必須產(chǎn)生所有可能的輸出結(jié)果至少一次,并且每個(gè)判定中的每個(gè)條件必須能夠獨(dú)立影響一個(gè)判定的輸出,即在其他條件不變的前提下僅改變這個(gè)條件的值,從而使判定結(jié)果改變[5]。

    條件判定語(yǔ)句由多個(gè)布爾表達(dá)式通過(guò)布爾操作符(如and,or,not等)組成。布爾表達(dá)式由關(guān)系操作符(如“>”,“<”,“=”等)構(gòu)成。相同的條件在一個(gè)判定中出現(xiàn)多次,則每次出現(xiàn)均視為不同的條件。布爾表達(dá)式中最基本就是邏輯與操作符與邏輯或操作符,任何復(fù)雜的布爾表達(dá)式均可視為“and”和“or”最簡(jiǎn)布爾表達(dá)式的邏輯組合。

    邏輯與布爾表達(dá)“A and B”中,A和B均為布爾變量,取值為{0,1},C = A and B的完備測(cè)試用例集。邏輯與測(cè)試集如表1所示。

    表1 邏輯與測(cè)試集

    {1,2}組測(cè)試用例中條件A的所有取值均出現(xiàn)一次,條件A在條件B不變的情況下獨(dú)立地影響判定的結(jié)果。

    {1,3}組測(cè)試用例中條件B的所有取值均出現(xiàn)一次,條件B在條件A不變的情況下獨(dú)立地影響判定的結(jié)果。

    因此,取交集{1,2,3}生成邏輯與的最小測(cè)試用例集。

    邏輯或布爾表達(dá) “A or B”中,A和B均為布爾變量,取值為{0,1},C = A or B的完備測(cè)試用例集。邏輯或測(cè)試集如表2所示。

    {7,8}組測(cè)試用例中條件A的所有取值均出現(xiàn)一次,條件A在條件B不變的情況下獨(dú)立地影響判定的結(jié)果。

    {6,8}組測(cè)試用例中條件B的所有取值均出現(xiàn)一次,條件B在條件A不變的情況下獨(dú)立地影響判定的結(jié)果。

    因此,取交集{6,7,8}生成邏輯或的最小測(cè)試用例集。

    表2 邏輯或測(cè)試集

    最小測(cè)試集是實(shí)現(xiàn)MC/DC結(jié)構(gòu)覆蓋的基礎(chǔ),根據(jù)最小測(cè)試集建立最小測(cè)試集用例,從而完成MC/DC覆蓋測(cè)試。

    3 基于工具的MC/DC測(cè)試應(yīng)用

    隨著嵌入式實(shí)時(shí)系統(tǒng)的廣泛應(yīng)用,MC/DC覆蓋率指標(biāo)被越來(lái)越多的監(jiān)管機(jī)構(gòu)與認(rèn)證機(jī)構(gòu)認(rèn)可。很多軟件自動(dòng)化測(cè)試工具中都支持MC/DC覆蓋率度量方法,如Cantata++,VectorCAST等。

    VectorCAST是主要用于C/C++/Ada程序的自動(dòng)化測(cè)試軟件,可以應(yīng)用于Windows和Linux等多種開(kāi)發(fā)平臺(tái)。最大程度的自動(dòng)化和更適用于嵌入式環(huán)境,是該平臺(tái)最大的特點(diǎn)和優(yōu)勢(shì)。使用VectorCAST輔助進(jìn)行MC/DC覆蓋測(cè)試用例設(shè)計(jì)和執(zhí)行分析的流程步驟如下。

    ①在VectorCAST中創(chuàng)建工程環(huán)境,導(dǎo)入測(cè)試源碼,完成語(yǔ)句和MC/DC插樁,分離出獨(dú)立影響的布爾表達(dá)式。

    ②通過(guò)獨(dú)立影響條件的真值表獲取每個(gè)表達(dá)式的最小測(cè)試集,并結(jié)合需求完成測(cè)試用例設(shè)計(jì)。

    ③編寫(xiě)腳本,執(zhí)行測(cè)試用例,分析測(cè)試結(jié)果,完成缺陷追蹤。

    ④VectorCAST自動(dòng)生成覆蓋率報(bào)告。

    以某核電儀控系統(tǒng)的RCS頂蓋排氣閥控制子系統(tǒng)為例,基于VectorCAST完成MC/DC覆蓋測(cè)試,閥門(mén)分為電動(dòng)閥、爆破閥、電磁閥以及調(diào)節(jié)閥。每類(lèi)閥門(mén)的狀態(tài)分為使能、掛牌、打開(kāi)、關(guān)閉,并用黃、紅、粉、綠四種顏色表示。

    程序中關(guān)于閥門(mén)狀態(tài)的表達(dá)式如下:

    If (ValveA->Selected II ValveB->Selected)&& (ValveC->Selected II ValveC->Selected) then

    ValveSetStatus(Open);

    else

    ValveSetStatus(Close);

    簡(jiǎn)化為if (A or B) and (C or D) then

    Statement1;

    else

    Statement2;

    該表達(dá)式可以進(jìn)一步簡(jiǎn)化為 Z = X and Y。其中:X=A or B,Y=C or D。

    某核電儀控系統(tǒng)RCS頂蓋排氣閥控制子系統(tǒng)的邏輯結(jié)構(gòu)如圖2所示。

    圖2 頂蓋排氣閥控制子系統(tǒng)邏輯結(jié)構(gòu)圖

    根據(jù)以上基本邏輯與或的分析,可獲取獨(dú)立影響結(jié)果的最小子集,即可得到MC/DC的最小測(cè)試用例集。

    頂蓋排氣閥控制子系統(tǒng)最小測(cè)試集如表3所示。

    表3 頂蓋排氣閥控制子系統(tǒng)最小測(cè)試集

    {1,5}為條件A獨(dú)立影響判定結(jié)果,{1,3}為條件B獨(dú)立影響判定結(jié)果,{2,4}為條件C獨(dú)立影響判定結(jié)果,{2,3}為條件D獨(dú)立影響判定結(jié)果。即{1,2,3,4,5}5個(gè)測(cè)試用例生成的最小測(cè)試集就可以達(dá)到MC/DC的100%覆蓋率。相比于16個(gè)測(cè)試用例完成的全代碼覆蓋,其數(shù)量減少了約70%,有效地提高了驗(yàn)證效率,節(jié)約了驗(yàn)證成本。

    在VectorCAST建立測(cè)試工程,選擇statement和MC/DC覆蓋準(zhǔn)則插樁源碼,基于最小測(cè)試集方法創(chuàng)建相應(yīng)的測(cè)試用例集,編譯運(yùn)行后可以得到MC/DC的覆蓋率報(bào)告。

    表4為頂蓋排氣閥系統(tǒng)相關(guān)測(cè)試模塊的覆蓋率信息,其中最后一列為MC/DC覆蓋率情況。由此可見(jiàn),最小測(cè)試集方法可以實(shí)現(xiàn)MC/DC的100%覆蓋測(cè)試。

    表4 MC/DC 覆蓋率信息

    4 結(jié)束語(yǔ)

    MC/DC覆蓋作為軟件結(jié)構(gòu)覆蓋測(cè)試準(zhǔn)則之一。在高安全性和高可靠性的嵌入式軟件Level A認(rèn)證過(guò)程中,DO-178B、IEC61508是強(qiáng)制要求遵守的標(biāo)準(zhǔn)。語(yǔ)句覆蓋和MC/DC覆蓋相結(jié)合,可以有效地檢出軟件錯(cuò)誤,從而提高軟件的安全等級(jí)。隨著越來(lái)越多的國(guó)際認(rèn)證機(jī)構(gòu)對(duì)MC/DC覆蓋的認(rèn)可,MC/DC得到了廣泛應(yīng)用。

    猜你喜歡
    嵌入式軟件測(cè)試用例布爾
    基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
    布爾和比利
    幽默大師(2019年4期)2019-04-17 05:04:56
    布爾和比利
    幽默大師(2019年3期)2019-03-15 08:01:06
    布爾和比利
    幽默大師(2018年11期)2018-10-27 06:03:04
    布爾和比利
    幽默大師(2018年3期)2018-10-27 05:50:48
    基于混合遺傳算法的回歸測(cè)試用例集最小化研究
    實(shí)時(shí)嵌入式軟件的測(cè)試技術(shù)
    全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
    電子制作(2017年17期)2017-12-18 06:40:56
    基于Eclipse的航天嵌入式軟件集成開(kāi)發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
    航天嵌入式軟件浮點(diǎn)運(yùn)算誤差分析與控制
    十堰市| 于都县| 任丘市| 杭锦后旗| 文化| 兴安县| 临海市| 泽库县| 大荔县| 嘉鱼县| 芷江| 招远市| 宽城| 五河县| 开远市| 辉县市| 巴彦淖尔市| 健康| 进贤县| 昌江| 永康市| 墨竹工卡县| 休宁县| 丰顺县| 博湖县| 突泉县| 娄底市| 凯里市| 邮箱| 大石桥市| 丰城市| 新津县| 马关县| 和林格尔县| 平和县| 武夷山市| 武冈市| 荔波县| 铜川市| 酒泉市| 墨竹工卡县|