亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        安 媛,陸云峰

        (1.國(guó)核自?xún)x系統(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í)滿(mǎn)足條件覆蓋和判定覆蓋。條件覆蓋是指每個(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)算誤差分析與控制
        欧美成人专区| 亚洲av无码专区国产乱码4se| 成在线人免费无码高潮喷水| 日本高清不卡二区三区| 亚洲精品无码不卡在线播he | 日韩插啊免费视频在线观看| 加勒比无码专区中文字幕| 少妇被搞高潮在线免费观看| 91成人自拍在线观看| 中文字幕久久熟女蜜桃| 国产亚洲av无码专区a∨麻豆 | 超清无码AV丝袜片在线观看| 日韩美腿丝袜三区四区| 国产播放隔着超薄丝袜进入| 欧美性猛交内射兽交老熟妇| 国产欧美日韩图片一区二区| 日本久久大片中文字幕| 亚洲av成人片无码网站| 亚洲av无码成人精品区在线观看 | 成人国产在线播放自拍| 中国黄色一区二区三区四区| 国产精品久久久国产盗摄| 亚洲综合欧美日本另类激情| 亚洲视频一区二区三区免费| 亚洲精品粉嫩美女一区| 乌克兰粉嫩xxx极品hd| 中文岛国精品亚洲一区| 亚洲av无吗国产精品| 无套中出丰满人妻无码| 成人片黄网站色大片免费观看app 亚洲av无码专区亚洲av | 久久天堂综合亚洲伊人hd妓女| 99久久精品免费看国产情侣| 亚洲av有码精品天堂| 一区二区三区人妻少妇| 一本一道久久a久久精品综合| 99久久国产综合精品女乱人伦| 一区二区三区极品少妇| 特黄做受又粗又长又大又硬| 亚洲天堂第一区| 日韩一区二区中文字幕| 美女张开腿黄网站免费|