大香蕉综合在线观看视频-日本在线观看免费福利-欧美激情一级欧美精品性-综合激情丁香久久狠狠

好房網(wǎng)

網(wǎng)站首頁 互聯(lián)網(wǎng) > 正文

測試覆蓋率是在嵌入式軟件測試中非常重要的一部分

2022-01-11 09:33:32 互聯(lián)網(wǎng) 來源:搜狐網(wǎng)
導(dǎo)讀 2022年1月11整理發(fā)布:隨著計算機行業(yè)的發(fā)展,嵌入式系統(tǒng)在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域都發(fā)揮著越來越重要的作用。尤其是在一些安

2022年1月11整理發(fā)布:隨著計算機行業(yè)的發(fā)展,嵌入式系統(tǒng)在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域都發(fā)揮著越來越重要的作用。尤其是在一些安全關(guān)鍵領(lǐng)域,如航空航天等,軟件一旦出現(xiàn)故障,可能會產(chǎn)生災(zāi)難性的后果。這就要求在軟件投入使用前,必須對其進行嚴格的測試、確認和驗證。

測試覆蓋率是在嵌入式軟件測試中非常重要的一部分。它是一種測試技術(shù)指標,用來表明我們的測試用例是否真正完全覆蓋了程序執(zhí)行的各種可能以及運行這些測試用例時執(zhí)行了多少代碼塊。通過覆蓋率統(tǒng)計分析,得出軟件執(zhí)行的覆蓋情況,可以查看軟件中有哪些函數(shù)未執(zhí)行,函數(shù)中哪些分支未執(zhí)行。通過調(diào)整測試用例使盡可能多的函數(shù)和函數(shù)分支得到測試,同時可以分析代碼未執(zhí)行的原因,以便及時更正代碼,從而大大提高了軟件的穩(wěn)定性。

覆蓋率可以分為函數(shù)覆蓋率、語句覆蓋率、分支覆蓋率、MC/DC(Modified Condition/Decision Coverage,修正條件判定覆蓋率)等。每一種覆蓋率測試的力度和精確性都不一樣。比如語句覆蓋率達到100%,但是分支覆蓋率可能會只有50%,也就意味著分支覆蓋率能測出軟件問題的概率會更大。在眾多覆蓋率種類中,MC/DC是最高效的覆蓋率。它使用的測試用例最少,測試力度最大。所以在航空安全領(lǐng)域中,根據(jù)DO-178C(適航符合性方法)中描述:A級軟件必須獨立開展MC/DC測試。

▲DO-178C《機載系統(tǒng)合格審定過程中的軟件考慮》對軟件等級的描述

定義:

接下來我們看一下MC/DC的定義。在講MC/DC之前,我們首先要明確C(Condition)和D(Decision)的概念:

條件(Condition):除了一元運算符(NOT,“否”)之外,不含有任何布爾運算符(如&&、||)的布爾表達式。比如:a>0;b!=0等等,這些表達式不包含布爾運算符,但是他們屬于布爾表達式(結(jié)果為true或false)。

判定(Decision):由條件和布爾運算符組成的布爾表達式。如果一個條件在一個判定中出現(xiàn)不止一次,則每次出現(xiàn)都是一個不同的條件。我們將A,B視為條件,那么A&&B或A||B就是所謂的判定。

根據(jù)DO-178(適航符合性方法)中對MC/DC的描述:要求在一個程序中每一種輸入輸出至少出現(xiàn)一次,每一個判定中的每一個條件必須產(chǎn)生所有輸出結(jié)果至少一次,每一個判定必須產(chǎn)生所有可能的輸出結(jié)果至少一次,并且每一個判定中的每一個條件必須能夠獨立影響一個判定的結(jié)果。一個條件可以通過以下方式獨立地影響判定的結(jié)果:

(1)改變該條件,同時保持其他條件不變,

(2)改變該條件,同時保持其他影響結(jié)果的條件不變。

可能上述定義有點抽象,我們通過A||(B&&C)這個例子來明確概念:

▲A||(B&&C)判定所有的測試用例情況

每一種輸入輸出至少出現(xiàn)一次,也就意味A||(B&&C)這個判定必須測試用例執(zhí)行到。

每一個判定中的每一個條件必須產(chǎn)生所有輸出結(jié)果至少一次:A,B,C三個條件都必須產(chǎn)生true和false至少一次。如執(zhí)行了測試用例1和8(A=F,B=F,C=F與A=T,B=T,C=T),那么這個條件就滿足。

每一個判定必須產(chǎn)生所有可能的輸出結(jié)果至少一次:A||(B&&C)這個判定最終的結(jié)果至少有一次true,至少有一次false。如執(zhí)行了測試用例4和5(A=F,B=T,C=T與A=T,B=F,C=F),滿足上一條件,但是這個兩個測試用例的最終結(jié)果都是false,那么就不滿足這個條件。

每一個判定中的每一個條件必須能夠獨立影響一個判定的結(jié)果:該描述中強調(diào)了條件需要獨立影響,為了能找到某一個條件的獨立影響性,必須要找到兩個對應(yīng)的測試用例,才算符合獨立影響。如測試用例1和5(A=F,B=F,C=F與A=T,B=F,C=F),這兩個測試用例只改變了條件A,同時保持其他條件不變,但是最終的結(jié)果不同,這就是獨立影響的意思。

我們再深挖一下定義,MC/DC標準其實就是想要找到判定中每個條件的獨立影響性,其實也就意味著我們需要每個條件都找到一對符合獨立影響的測試用例對(Independent Pair)。以下是A||(B&&C)每個測試用例的獨立影響對的全部情況。

▲A||(B&&C)獨立影響對(Independent Pair)的全部情況

如上圖,測試用例1和5組成了條件A的獨立影響對;測試用例2和4組成了條件B的獨立影響對。如果測試用例在構(gòu)成獨立影響對時可以重復(fù)使用,如測試用例4,既能與測試用例2構(gòu)成條件B的獨立影響對,又能與測試用例3構(gòu)成條件C的獨立影響對。那么,在理論上,最少只需要n+1(n為條件數(shù)),最多需要2n個測試用例即可滿足MC/DC的標準。如測試用例2、3、4和7這四個測試用例就可以滿足MC/DC標準。

計算公式:

由于MC/DC是判定覆蓋率的一個標準,所以計算MC/DC就是計算滿足MC/DC標準的判定覆蓋率。

并且在未滿足MC/DC標準的判定(Decision)中,可以計算有多少條件的測試對是符合獨立影響的:

總結(jié):

目前為止,我們已經(jīng)了解了MC/DC的定義,MC/DC就是需要找出每個判定中每個條件的獨立影響對。所以我們在編寫測試用例時也需要多思考,怎么樣的測試用例是會滿足的MC/DC標準的。

由迪捷軟件自主研發(fā)的SkyEye全數(shù)字實時仿真軟件是基于可視化建模的硬件行為級仿真平臺,支持MC/DC覆蓋率統(tǒng)計功能。只需在SkyEye全數(shù)字實時仿真軟件中導(dǎo)入需要被驗證、分析的二進制程序,并在相應(yīng)的虛擬硬件平臺上運行,再使用MC/DC覆蓋率統(tǒng)計功能,即可得到MC/DC覆蓋率分析的結(jié)果。根據(jù)覆蓋率分析結(jié)果對二進制程序進行分析、校正,進而提高程序的可靠性和穩(wěn)定性。


版權(quán)說明: 本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!


標簽:

最新文章:

国产亚洲精品一二三区| 欧美日韩精品久久第一页| 五月婷婷六月丁香亚洲| 欧美乱妇日本乱码特黄大片| 亚洲精品日韩欧美精品| 午夜直播免费福利平台| 国产精品欧美日韩中文字幕| 成人国产一区二区三区精品麻豆| 国产日韩欧美综合视频| 亚洲精品国产福利在线| 福利视频一区二区三区| 欧美日韩国产综合在线| 一区二区日韩欧美精品| 九九视频通过这里有精品| 五月天丁香婷婷一区二区| 激情五月天免费在线观看| 日本办公室三级在线观看| 精品视频一区二区三区不卡| 欧美日韩久久精品一区二区 | 一区二区三区日本高清| 亚洲一级二级三级精品| 一个人的久久精彩视频| 日韩色婷婷综合在线观看| 久草精品视频精品视频精品| 国产内射一级一片内射高清 | 少妇高潮呻吟浪语91| 九九热在线视频精品免费| 国产高清精品福利私拍| 国产亚洲中文日韩欧美综合网| 国产精品免费不卡视频| 嫩草国产福利视频一区二区| 日韩午夜老司机免费视频 | 欧美国产日产在线观看| 国内外免费在线激情视频| 欧美自拍偷自拍亚洲精品| 美女被后入福利在线观看| 久久99亚洲小姐精品综合| 色一情一伦一区二区三| 中国一区二区三区不卡| 国产精品一区二区日韩新区| 青青免费操手机在线视频|