專利名稱:一種嵌入式軟件可靠性加速測(cè)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件可靠性測(cè)試領(lǐng)域,具體地說,是指一種基于軟件任務(wù)剖面的嵌入 式軟件可靠性加速測(cè)試方法。
背景技術(shù):
目前嵌入式軟件被廣泛應(yīng)用于航空航天、金融、醫(yī)療、電信等各個(gè)領(lǐng)域。伴隨著應(yīng) 用的發(fā)展,嵌入式軟件的可靠性問題已成為人們所關(guān)注的焦點(diǎn)。軟件可靠性測(cè)試是實(shí)現(xiàn)軟 件可靠性增長和對(duì)軟件可靠性進(jìn)行評(píng)估的有效途徑。但是,從測(cè)試的角度來看,由于嵌入式軟件自身的實(shí)時(shí)特性和反應(yīng)特性決定了嵌 入式軟件的輸入受到取值大小、時(shí)序和時(shí)間響應(yīng)等諸多條件的限制,輸入條件十分復(fù)雜,幾 乎無法覆蓋到軟件所有可能的輸入情況;另一方面,對(duì)比嵌入式軟件的一般測(cè)試,可靠性測(cè) 試的測(cè)試量更加龐大,測(cè)試效率問題也成為制約嵌入式軟件可靠性測(cè)試廣泛開展的瓶頸。傳統(tǒng)的軟件可靠性測(cè)試方法中,作為可靠性測(cè)試輸入的可靠性測(cè)試用例的生成都 是基于穆莎(John Musa)所提出的操作剖面,這種方法簡單實(shí)用,對(duì)運(yùn)行之間沒有相互影 響、運(yùn)行相互獨(dú)立的軟件來說非常有效。但是這種靜態(tài)的操作剖面不能完全描述嵌入式軟 件的實(shí)際運(yùn)行情況,目前,對(duì)嵌入式軟件操作剖面的研究主要集中在對(duì)操作剖面的改進(jìn)所 形成的使用剖面,使用剖面多數(shù)是采取UML的活動(dòng)圖和順序圖對(duì)“使用”進(jìn)行建模得到的, 但是仍不能完全解決運(yùn)行間存在的復(fù)雜的條件約束關(guān)系。另外,在施加用例運(yùn)行測(cè)試的過 程中除了有時(shí)根據(jù)條件使用一些測(cè)試自動(dòng)化工具以外并沒有針對(duì)性的采取軟件可靠性測(cè) 試策略來提高軟件可靠性的測(cè)試效率。
發(fā)明內(nèi)容
本發(fā)明為了解決嵌入式軟件可靠性測(cè)試中所面臨的困境,從嵌入式軟件自身的特 點(diǎn)入手,結(jié)合使用信息,構(gòu)建一種嵌入式軟件可靠性加速測(cè)試方法,使得可靠性測(cè)試用例最 大可能地滿足復(fù)雜的輸入條件限制,測(cè)試過程的設(shè)計(jì)在不影響評(píng)估置信度的情況下,可以 減少測(cè)試量。本發(fā)明提供的嵌入式軟件可靠性加速測(cè)試方法,針對(duì)嵌入式軟件建立軟件任 務(wù)剖面,用于嵌入式軟件可靠性測(cè)試用例的生成,在測(cè)試過程中,根據(jù)穩(wěn)定過程和控制過程 中收集測(cè)試數(shù)據(jù)進(jìn)行軟件可靠性測(cè)試,實(shí)現(xiàn)提高軟件可靠性測(cè)試效率的目的。本發(fā)明提供的基于軟件任務(wù)剖面的嵌入式軟件可靠性測(cè)試方法,在測(cè)試用例生成 上綜合考慮軟件自身特點(diǎn)和使用情況滿足復(fù)雜的輸入條件,在測(cè)試過程中提供控制策略提 高測(cè)試效率,從而實(shí)現(xiàn)對(duì)嵌入式軟件進(jìn)行更全面、更具有針對(duì)性的可靠性測(cè)試。本發(fā)明所提供的可靠性加速測(cè)試方法主要包括以下步驟第一步,建立軟件任務(wù)剖面;第二步,生成軟件任務(wù)序列即軟件可靠性測(cè)試用例;在軟件任務(wù)剖面完整和正確建立的基礎(chǔ)上,隨機(jī)抽取和生成軟件任務(wù)序列,軟件 任務(wù)序列是在實(shí)際可靠性測(cè)試中施加的完整而有效的測(cè)試輸入。
第三步,人工編寫測(cè)試腳本,建立測(cè)試環(huán)境,開始測(cè)試;第四步,測(cè)試過程中統(tǒng)計(jì)收集測(cè)試數(shù)據(jù)(包括任務(wù)特征和任務(wù)狀態(tài)),根據(jù)穩(wěn)定判 據(jù)判定測(cè)試過程是否達(dá)到穩(wěn)定過程;第五步,進(jìn)入控制過程,也同時(shí)收集測(cè)試數(shù)據(jù)(包括任務(wù)特征和任務(wù)狀態(tài)),施加 控制過程測(cè)試策略;第六步,對(duì)軟件可靠性進(jìn)行工程評(píng)估,結(jié)束測(cè)試。利用穩(wěn)定過程和控制過程兩個(gè)過程中收集到的測(cè)試數(shù)據(jù)(包括任務(wù)狀態(tài)和任務(wù) 特征)給出一種近似的軟件任務(wù)可靠度評(píng)估方法。另外,可以選擇和使用已有的軟件可靠 性評(píng)估模型,利用測(cè)試過程中收集到的失效數(shù)據(jù)對(duì)被測(cè)軟件進(jìn)行可靠性評(píng)估。所述的穩(wěn)定過程是指當(dāng)任務(wù)狀態(tài)覆蓋率C達(dá)到某個(gè)級(jí)別Ct時(shí),繼續(xù)增加測(cè)試用 例,軟件的可靠性水平始終穩(wěn)定在一個(gè)水平R,此時(shí)的軟件可靠性增長十分緩慢,即認(rèn)為達(dá) 到“停滯期”。其數(shù)學(xué)描述為{I Rj-Ri < ε,ε — O+I (| NtrNti — b) Λ (C > CT),j > i > 0,b > 0,CT > 0}這里,b是規(guī)定的較小的正數(shù),Nti表示第i組測(cè)試中測(cè)試用例的個(gè)數(shù),Ntj表示第 j組測(cè)試中測(cè)試用例的個(gè)數(shù),Ri表示第i組測(cè)試完成后得到的軟件可靠性估計(jì),Rj表示第j 組測(cè)試完成后得到的軟件可靠性估計(jì)。若兩組測(cè)試的用例個(gè)數(shù)的差值接近于正數(shù)b,而對(duì)應(yīng) 的可靠性估計(jì)的差值小于某個(gè)規(guī)定的正數(shù)ε,同時(shí)任務(wù)狀態(tài)覆蓋率C大于或等于某個(gè)事先 規(guī)定的級(jí)別Ct時(shí),即認(rèn)為已到達(dá)穩(wěn)定過程。所述的控制過程是指在穩(wěn)定過程的基礎(chǔ)上的一種追加測(cè)試的過程,應(yīng)用針對(duì)性的 測(cè)試策略,選擇軟件任務(wù)序列,加快軟件缺陷的發(fā)現(xiàn),從而保證被測(cè)軟件在短時(shí)間內(nèi)可靠性 能夠進(jìn)一步提高。當(dāng)軟件可靠性增長達(dá)到目標(biāo)值,即可以終止控制過程。本發(fā)明與現(xiàn)有技術(shù)相比,具有以下明顯的優(yōu)勢(shì)和有益效果1、本發(fā)明給出了一種新的軟件任務(wù)序列的生成方法,可以滿足對(duì)復(fù)雜的輸入條件 的描述和覆蓋。2、穩(wěn)定過程的提出符合嵌入式軟件運(yùn)行的實(shí)際情況,對(duì)測(cè)試數(shù)據(jù)的收集和統(tǒng)計(jì)豐 富了測(cè)試過程所應(yīng)收集的數(shù)據(jù)類型和種類,為進(jìn)一步的可靠性評(píng)估提供基礎(chǔ)和依據(jù)。3、控制過程中的測(cè)試策略的提出達(dá)到了合理高效地加速可靠性測(cè)試過程的目的, 也拓展了對(duì)嵌入式軟件進(jìn)行可靠性測(cè)試的思路。4、本發(fā)明提出的方法已應(yīng)用在了某個(gè)航電嵌入式軟件系統(tǒng)的工程實(shí)例中,證明了 基于軟件任務(wù)剖面生成軟件任務(wù)序列,穩(wěn)定過程與控制過程相結(jié)合的可靠性加速測(cè)試方法 的可行性和有效性,通過了工程實(shí)例的考核和驗(yàn)證,該可靠性加速測(cè)試方法在工程應(yīng)用方 面具有較大的價(jià)值。5、給出了任務(wù)可靠度的工程近似計(jì)算方法,它的優(yōu)點(diǎn)是該評(píng)估計(jì)算方法不依賴于 失效數(shù)據(jù)的假設(shè)數(shù)學(xué)分布,同時(shí)基于軟件任務(wù)剖面生成的軟件任務(wù)序列保證了可靠性測(cè)試 數(shù)據(jù)的可信性。適用于對(duì)精度沒有過高要求的嵌入式軟件的可靠性評(píng)估。
圖1為本發(fā)明提供的軟件可靠性加速測(cè)試方法的流程圖;圖2為本發(fā)明開發(fā)軟件任務(wù)剖面的流程示意圖;圖3為本發(fā)明軟件任務(wù)序列隨機(jī)產(chǎn)生的示意圖;圖4為實(shí)施例中由子任務(wù)集組成的INS系統(tǒng)的任務(wù)剖面示意圖;圖5為實(shí)施例中對(duì)INS導(dǎo)航子任務(wù)集進(jìn)行描述的示意圖;圖6為實(shí)施例中對(duì)INS維護(hù)子任務(wù)集進(jìn)行描述的示意圖;圖7為實(shí)施例中任務(wù)狀態(tài)覆蓋率和累積覆蓋率圖。
具體實(shí)施例方式為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面通過具體實(shí)施方式
對(duì)本發(fā) 明作進(jìn)一步的詳細(xì)和深入描述。圖1為本發(fā)明軟件可靠性加速測(cè)試方法的流程圖,該方法首先建立嵌入式軟件 任務(wù)剖面,利用隨機(jī)方法生成軟件任務(wù)序列(即可靠性測(cè)試用例),開始測(cè)試后,首先進(jìn)入 到測(cè)試的第一階段——穩(wěn)定過程,隨著測(cè)試的進(jìn)行,根據(jù)穩(wěn)定判據(jù)判斷測(cè)試過程是否達(dá)到 穩(wěn)定,如果否,則繼續(xù)執(zhí)行軟件任務(wù)序列進(jìn)行測(cè)試;如果是,則進(jìn)入到測(cè)試第二階段——控 制過程,在控制過程中施加相應(yīng)的測(cè)試策略,對(duì)穩(wěn)定過程和控制過程中收集到的測(cè)試數(shù)據(jù) (包括任務(wù)狀態(tài)和任務(wù)特征)進(jìn)行統(tǒng)計(jì),然后給出軟件可靠性工程近似評(píng)估,從而實(shí)現(xiàn)整個(gè) 軟件可靠性測(cè)試過程。具體實(shí)現(xiàn)步驟如下第一步,建立軟件任務(wù)剖面,實(shí)現(xiàn)流程如圖2所示,具體為(1)根據(jù)軟件需求規(guī)格說明書和任務(wù)相關(guān)的要求,得到任務(wù)集T ;(2)進(jìn)一步將任務(wù)集T劃分,得到任務(wù)集T中所包含的子任務(wù)集1\。特殊情況下, 子任務(wù)集Ti中只包含一個(gè)任務(wù),i = 1,2,3......η ;n表示任務(wù)集T中子任務(wù)集的個(gè)數(shù)。(3)分別確定各子任務(wù)集Ti之間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系;(4)按照需求和使用信息分析每個(gè)子任務(wù)集Ti中任務(wù)^(i = 1,2,.. .,η ; j = 1, 2,. . .,ni),其中i表示任務(wù)集中的子任務(wù)集的序號(hào),j表示子任務(wù)集Ti中的任務(wù)序號(hào),Iii表 示子任務(wù)集Ti中的任務(wù)個(gè)數(shù)。根據(jù)子任務(wù)集之間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,畫出子任務(wù)集轉(zhuǎn)移圖,如圖3 中的子任務(wù)集T1, T2,T3和T4;(5)確定任務(wù)間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,畫出任務(wù)轉(zhuǎn)移圖,按照任務(wù)描述 方法對(duì)每個(gè)任務(wù)進(jìn)行描述,如圖3中子任務(wù)集T3中從任務(wù)t32到任務(wù)t33的轉(zhuǎn)移概率為P32_33, 子任務(wù)集T4中從任務(wù)t45到任務(wù)t42的轉(zhuǎn)移概率為P45_42 ;(6)將子任務(wù)集逐層分解,如果需要可以進(jìn)一步分解為子子任務(wù)集,如圖3中的T21 和T22,T31和T32),直到底層的子任務(wù)集或子子任務(wù)集可以直接由一個(gè)或幾個(gè)任務(wù)組成,確定 任務(wù)間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,畫出任務(wù)轉(zhuǎn)移圖,按照任務(wù)描述方法對(duì)每個(gè)任務(wù) 進(jìn)行描述,從而得到被測(cè)軟件的軟件任務(wù)剖面。建立軟件任務(wù)剖面的過程中有兩個(gè)重要問題一是確定任務(wù)之間的關(guān)系;二是任 務(wù)的具體描述方法。軟件任務(wù)剖面描述了子任務(wù)集、子子任務(wù)集以及任務(wù)間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,任務(wù)與時(shí)間密切相關(guān),任務(wù)之間在時(shí)間上具有的關(guān)系稱之為時(shí)序轉(zhuǎn)移關(guān)系。主要包 括順序關(guān)系、并發(fā)關(guān)系和偏序關(guān)系三種,所述的順序關(guān)系是指一個(gè)任務(wù)發(fā)生并完成后,另一 任務(wù)在其后發(fā)生;所述的并發(fā)關(guān)系是指多個(gè)任務(wù)同時(shí)發(fā)生、同時(shí)進(jìn)行的關(guān)系;所述的偏序 關(guān)系是指每個(gè)任務(wù)都有明確的發(fā)生時(shí)刻,如一個(gè)任務(wù)在某一時(shí)刻發(fā)生,另一任務(wù)要求在另 一時(shí)刻發(fā)生。偏序關(guān)系既可用絕對(duì)時(shí)間來表示也可用任務(wù)間的相對(duì)時(shí)間來表示。特殊地, 順序關(guān)系是偏序關(guān)系在時(shí)間軸上的一種連續(xù)分布。子任務(wù)集之間的時(shí)序轉(zhuǎn)移關(guān)系類比任務(wù) 之間的時(shí)序轉(zhuǎn)移關(guān)系,同樣具有順序、并發(fā)和偏序三種關(guān)系。軟件任務(wù)剖面是動(dòng)態(tài)的任務(wù)之間不是相互獨(dú)立的,除了存在上述的時(shí)序轉(zhuǎn)移關(guān) 系以外,有的任務(wù)之間還存在條件約束關(guān)系,即任務(wù)的發(fā)生是以一定條件的達(dá)到作為前提 的,即這些條件是任務(wù)發(fā)生的必要、非充分條件。這些條件可能是用戶的一個(gè)按鍵,也可能 是系統(tǒng)要滿足的一個(gè)狀態(tài)等。在劃分子任務(wù)集時(shí)保證了子任務(wù)集之間是相互獨(dú)立的,因此 子任務(wù)集之間不存在上述的條件約束關(guān)系。概率轉(zhuǎn)移關(guān)系包括兩種第一種是指上一個(gè)子任務(wù)集完成后轉(zhuǎn)移到下一子任務(wù)集 的發(fā)生概率;第二種是指同一子任務(wù)集中不同任務(wù)之間發(fā)生轉(zhuǎn)移的概率。概率信息的獲取 主要來自兩方面一是參考?xì)v史信息,概率的確定基于對(duì)以往使用信息的統(tǒng)計(jì);二是對(duì)于 無歷史信息記錄的軟件,則根據(jù)軟件用戶的需求并參照經(jīng)驗(yàn)給定。任務(wù)描述方法的基本步驟為(1)確定實(shí)現(xiàn)任務(wù)的所有事件{E」i = 1,2,···,n};(2)確定事件之間的時(shí)序轉(zhuǎn)移關(guān)系和條件約束關(guān)系;(3)確定表示事件的變量的屬性,即給出表示事件的變量,確定變量類型、取值或 取值范圍。表示事件的變量類型包括以下三種(a)離散型變量主要有枚舉型、布爾型和字符型。對(duì)于每一種類型的離散型變 量,需要在描述中給出各種取值的概率,但是要注意每個(gè)離散型變量Vi (i = 1,2, ...,m,m
是變量V的個(gè)數(shù))的各個(gè)取值的概率(pvi)之和必須滿足∑j=1(pvi)j =1 (J表示變量Vi的第
j種取值情況,Hi表示變量Vi取值的個(gè)數(shù))。(b)連續(xù)型變量主要有整型和浮點(diǎn)型,對(duì)于這種類型的連續(xù)型變量,其取值范圍 由取值區(qū)間的集合表示,即取值范圍可以劃分為多個(gè)取值區(qū)間,并給出在這些取值區(qū)間上 分別取值的概率,保證概率之和為1。例如,連續(xù)型變量X有m個(gè)取值區(qū)間,則變量X在所有
m個(gè)取值區(qū)間的取值概率之和應(yīng)為1,即mΣj=1 =1 (j表示變量X的第j種取值情況,m表示
變量χ取值區(qū)間的個(gè)數(shù)),取值區(qū)間的分布情況與任務(wù)的實(shí)際執(zhí)行情況密切相關(guān),所以分配 取值的概率時(shí)也要考慮到實(shí)際情況。(c)與時(shí)間相關(guān)的變量前兩種變量是通過取值來描述輸入行為的變量,對(duì)于嵌 入式軟件,其輸入行為不僅與取值相關(guān)而且與時(shí)間有關(guān),因此表示事件的輸入變量還應(yīng)該 有這樣一類具有時(shí)間特性的與時(shí)間相關(guān)的變量。例如,對(duì)于某種輸入行為隨時(shí)間呈現(xiàn)一定 的變化規(guī)律,則可以用服從相應(yīng)的數(shù)學(xué)分布的與時(shí)間相關(guān)的變量來表示。第二步,在軟件任務(wù)剖面的基礎(chǔ)上,通過隨機(jī)抽取產(chǎn)生用于進(jìn)行可靠性測(cè)試的軟 件任務(wù)序列。
首先定義軟件任務(wù)序列是帶有時(shí)間標(biāo)簽的一組可能存在關(guān)系的任務(wù)tu(i = 1, 2,. . .,n ;j = 1,2,. . .,ni)組成的一次軟件運(yùn)行,每個(gè)任務(wù)可能來自于不同的任務(wù)集、子任 務(wù)集或子子任務(wù)集。軟件任務(wù)序列集合TSP的數(shù)學(xué)表達(dá)式為{TSP I TSP = <tsqk, Pk>, k = 1,2,... ,N}, tsqk表示第k個(gè)軟件任務(wù)序列,Pk表示第k個(gè)軟件任務(wù)序列發(fā)生的概率,N表 示軟件任務(wù)序列的個(gè)數(shù)。因此,軟件任務(wù)剖面也可以看作是由一系列軟件任務(wù)序列及這些 軟件任務(wù)序列發(fā)生的概率組成的軟件任務(wù)序列集合。一個(gè)軟件任務(wù)序列對(duì)應(yīng)軟件可靠性測(cè) 試的一次運(yùn)行,也就是一個(gè)完整的能用來進(jìn)行軟件可靠性測(cè)試的測(cè)試用例。軟件任務(wù)序列 按照軟件任務(wù)剖面隨機(jī)抽取生成,同時(shí)刻畫軟件任務(wù)剖面的要求。圖3給出了在子任務(wù)集、子子任務(wù)集、任務(wù)基礎(chǔ)上產(chǎn)生軟件任務(wù)序列的示意圖,也 表示了子任務(wù)集、子子任務(wù)集、任務(wù)和軟件任務(wù)序列四者之間的關(guān)系,圖中橢圓表示子任務(wù) 集或子子任務(wù)集或任務(wù),箭頭表示時(shí)序轉(zhuǎn)移關(guān)系,線上標(biāo)注轉(zhuǎn)移概率,圖3中有四個(gè)子任務(wù) 集T1, T2, T3和T4,子任務(wù)集T1中有4個(gè)任務(wù)tn、t12、t13和t14 ;子任務(wù)集T2包含兩個(gè)子子 任務(wù)集T21和T22,其中,任務(wù)t21、t25屬于子子任務(wù)集T21,任務(wù)t22、t23和t24屬于子子任務(wù)集 T22 ;子任務(wù)集T3中也包含兩個(gè)子子任務(wù)集T31和T32,其中,任務(wù)t31、t35和t36屬于子子任務(wù) 集T31,任務(wù)
七32、^33 禾口 ^34 屬于子子任務(wù)集T32 ;子任務(wù)集T4中有6個(gè)任務(wù) t4i、t42、t43、t44、 和t46。圖3中有多個(gè)軟件任務(wù)序列,例如,由t12,t21,t24,t45,t42和t46構(gòu)成了一個(gè)軟件任 務(wù)序列 t12 — t21 — t24 — t45 — t42 — t46o第三步,人工編寫測(cè)試腳本,建立測(cè)試環(huán)境,開始測(cè)試,執(zhí)行軟件任務(wù)序列。對(duì)第二步根據(jù)軟件任務(wù)剖面隨機(jī)生成的軟件任務(wù)序列,人工編寫測(cè)試腳本,建立 好測(cè)試環(huán)境,然后開始測(cè)試,執(zhí)行軟件任務(wù)序列。第四步,收集測(cè)試數(shù)據(jù),對(duì)任務(wù)狀態(tài)的覆蓋情況進(jìn)行記錄和統(tǒng)計(jì)。所述的測(cè)試數(shù)據(jù) 是指任務(wù)特征和任務(wù)狀態(tài)數(shù)據(jù)。所述的任務(wù)特征是任務(wù)實(shí)現(xiàn)過程中相對(duì)獨(dú)立的有特性的行為。軟件任務(wù)是由一個(gè) 或多個(gè)任務(wù)特征來共同實(shí)現(xiàn),它是這一任務(wù)的執(zhí)行區(qū)別于其它任務(wù)的執(zhí)行的標(biāo)志。任務(wù)特 征集合TC (Test Characteristics)信息可以根據(jù)軟件任務(wù)剖面提取,一個(gè)軟件任務(wù)序列中 必包含一個(gè)或多個(gè)任務(wù)特征,任務(wù)特征組成的集合為TC = ItciI i = 1,2,· · ·,N}N為任務(wù)特征的個(gè)數(shù),tCi表示第i個(gè)任務(wù)特征。滿足任務(wù)特征之間相互獨(dú)立,即tCl η tc2 η ... η tCi = φ。所述的任務(wù)狀態(tài)是任務(wù)特征的動(dòng)態(tài)屬性,用任務(wù)狀態(tài)tsu來刻畫和表示任務(wù)特 征,同時(shí)描述任務(wù)特征的具體實(shí)現(xiàn),即某一任務(wù)特征由若干個(gè)任務(wù)狀態(tài)實(shí)現(xiàn),對(duì)于任務(wù)特征 集合TC中的第i個(gè)任務(wù)特征tCi,存在tCi = UsijIj = 1,2,...,Mi},其中,j表示第i個(gè) 任務(wù)特征tCi的任務(wù)狀態(tài)序號(hào),Mi表示第i個(gè)任務(wù)特征tCi所包含的任務(wù)狀態(tài)tsu的個(gè)數(shù)。嵌入式軟件在運(yùn)行過程中所經(jīng)歷的所有任務(wù)狀態(tài)組成的集合定義為任務(wù)狀態(tài)空 間,用S表示。對(duì)嵌入式軟件來說,可以通過軟件任務(wù)序列的運(yùn)行實(shí)現(xiàn)對(duì)任務(wù)狀態(tài)空間S的 覆蓋。 用S表示嵌入式軟件的任務(wù)狀態(tài)空間,tc,表示軟件的一個(gè)任務(wù)特征,則根據(jù)上述分析存在關(guān)系5= ,同理,某一個(gè)任務(wù)特征岣=U^。其中,〖(^表示由任務(wù)狀態(tài)tSil,
tci2, ..,tsiMi構(gòu)成的一個(gè)任務(wù)特征,假設(shè)對(duì)每個(gè)任務(wù)狀態(tài)tSij(i = 1,2,...,N;j = 1, 2,...,Mi)有 Yij 個(gè)取值,則由任務(wù)狀態(tài) tSij(i = 1,2, ... , N;j = 1,2, ... , Mi)構(gòu)成的任
N MiM Mi
務(wù)狀態(tài)空間共有ΣΣ個(gè)任務(wù)狀態(tài),ΣΣ&種取值,由任務(wù)狀態(tài)及其取值產(chǎn)生的組合情況更 /=1 j=\ / 1 j-\
加復(fù)雜。由此看來,任務(wù)狀態(tài)空間是非常龐大的,但是通過運(yùn)行由軟件任務(wù)剖面生成的軟件
任務(wù)序列可以有規(guī)律地實(shí)現(xiàn)一定的任務(wù)狀態(tài)覆蓋。任務(wù)狀態(tài)覆蓋率C是指實(shí)際測(cè)試中軟件經(jīng)歷的不同的狀態(tài)個(gè)數(shù)與狀態(tài)空間中所 有狀態(tài)個(gè)數(shù)的比值。以任務(wù)狀態(tài)覆蓋率作為確定測(cè)試過程是否達(dá)到穩(wěn)定的判據(jù),前面所述用來描述穩(wěn) 定過程的公式中{I Rj-Ri I < ε,ε — ο. I (| NtrNti | — b) Λ (C > CT),j > i > 0,b > 0,Ct > 0}Ct即為這里所指的穩(wěn)定判據(jù)。Ct表示當(dāng)任務(wù)狀態(tài)覆蓋率C達(dá)到一定程度(軟件不 同,Ct不同,通??烧J(rèn)為是0. 85-0. 9之間)會(huì)產(chǎn)生飽和效應(yīng),可靠性增長會(huì)進(jìn)入到一定的 “停滯期”即增長變得十分緩慢,此時(shí)認(rèn)為軟件可靠性測(cè)試達(dá)到了穩(wěn)定。但大多數(shù)情況下, 此時(shí)軟件可靠性增長仍然未達(dá)到預(yù)期的軟件可靠性目標(biāo)值。因此就要進(jìn)入第二階段控制過 程。第五步,進(jìn)入控制過程,施加控制過程的測(cè)試策略,同時(shí)也收集測(cè)試數(shù)據(jù)??刂七^ 程是指在穩(wěn)定過程的基礎(chǔ)上的一種追加測(cè)試的過程,所應(yīng)用的測(cè)試策略(特別是在軟件任 務(wù)序列的選擇方面)加快了軟件缺陷的暴露,隨著對(duì)暴露的軟件缺陷的修改和移除從而進(jìn) 一步實(shí)現(xiàn)軟件可靠性的增長以達(dá)到預(yù)期的軟件可靠性目標(biāo)值。為了提高控制過程的效率,控制過程的測(cè)試策略如下(1)對(duì)測(cè)試過的完全相同的軟件任務(wù)序列不再測(cè)試,同時(shí)對(duì)測(cè)試過的相似軟件任 務(wù)序列也不再測(cè)試。所述的相似軟件任務(wù)序列是指軟件任務(wù)序列中的任務(wù)的集合相同、時(shí)序相同,而 對(duì)于其中的某一任務(wù),其任務(wù)特征和任務(wù)狀態(tài)可以不同。(2)加入對(duì)可靠性影響大的軟件任務(wù)序列。在測(cè)試中,任務(wù)狀態(tài)通常用一個(gè)狀態(tài)變量表示,該狀態(tài)變量被稱為任務(wù)狀態(tài)變量, 對(duì)任務(wù)狀態(tài)變量為浮點(diǎn)型的,則將該任務(wù)狀態(tài)變量的取值劃分為k個(gè)區(qū)段,落在這k個(gè)區(qū)段 中每一段的取值的貢獻(xiàn)按Ι/k折合,以此類推,枚舉型變量有q個(gè)取值,則每個(gè)取值的貢獻(xiàn) 按Ι/q折合。在測(cè)試中,用任務(wù)特征對(duì)可靠性評(píng)估的貢獻(xiàn)Mdi)和任務(wù)特征的各種任務(wù)狀態(tài)對(duì) 可靠性評(píng)估的貢獻(xiàn)g(su)來衡量對(duì)可靠性的影響,所謂加入對(duì)可靠性影響大的軟件任務(wù)序 列等同于加入具有如下特征的軟件任務(wù)序列(a)任務(wù)特征對(duì)可靠性評(píng)估的貢獻(xiàn)f (Cli)F(D) = If(Cli) ^lli = 1,2,... ,η}對(duì)F(D)中所有f (Cli)按照從大到小排序,包含相對(duì)較大的f (Cli)的軟件任務(wù)序列 認(rèn)為是對(duì)可靠性影響較大的軟件任務(wù)序列,一般取F(D)集合中排列前30%的為相對(duì)較大的 f (Cli)。(b)任務(wù)特征的各種任務(wù)狀態(tài)對(duì)可靠性評(píng)估的貢獻(xiàn)g(Sij)
m 對(duì)G(Si)中所有g(shù)(su)按照從大到小排序,包含相對(duì)較大的g(su)的軟件任務(wù)序 列認(rèn)為是對(duì)可靠性影響較大的軟件任務(wù)序列,一般取G(Si)集合中排列前30%的為相對(duì)較 大的 g (Sij)。(c)任務(wù)狀態(tài)對(duì)任務(wù)狀態(tài)驗(yàn)證進(jìn)行統(tǒng)計(jì) 只要任務(wù)狀態(tài)Su的任務(wù)狀態(tài)變量的取值的所有情況中有一種情況被覆蓋到,認(rèn) 為該任務(wù)狀態(tài)Su已驗(yàn)證,則V (Su) =1。如果任何一種情況都沒有被覆蓋到,認(rèn)為該任務(wù) 狀態(tài)Sij沒有驗(yàn)證,V(Sij) =0。將沒有驗(yàn)證的任務(wù)狀態(tài)Sij作為對(duì)可靠性影響較大的軟件 任務(wù)序列。(3)運(yùn)行關(guān)鍵的軟件任務(wù)序列這里關(guān)鍵的軟件任務(wù)序列是指遍歷到關(guān)鍵或重要 的任務(wù)特征的軟件任務(wù)序列,即任務(wù)特征對(duì)可靠性評(píng)估的貢獻(xiàn)f(di)大,且含有多個(gè)任務(wù) (通常任務(wù)個(gè)數(shù)要大于等于3)的軟件任務(wù)序列。此外,將運(yùn)行失敗產(chǎn)生后果嚴(yán)重度高的軟 件任務(wù)序列也看作是關(guān)鍵的軟件任務(wù)序列,需要在控制過程中優(yōu)先施加。第六步,對(duì)軟件可靠性進(jìn)行工程評(píng)估,計(jì)算軟件的任務(wù)可靠度,結(jié)束測(cè)試。軟件的任務(wù)可靠度通常定義為軟件在軟件任務(wù)剖面所規(guī)定的時(shí)間內(nèi)和規(guī)定的條 件下,完成規(guī)定任務(wù)的能力,為任務(wù)可靠性;任務(wù)可靠性概率度量為任務(wù)可靠度。任務(wù)可靠 度分為單任務(wù)可靠度和多任務(wù)可靠度,對(duì)于復(fù)雜的嵌入式軟件而言,任務(wù)可靠度的考量通 常是基于復(fù)雜的多個(gè)任務(wù)的執(zhí)行結(jié)果,因此本發(fā)明中的任務(wù)可靠度即指多任務(wù)可靠度。本發(fā)明中利用測(cè)試數(shù)據(jù)即任務(wù)特征和任務(wù)狀態(tài)數(shù)據(jù)的相關(guān)信息計(jì)算軟件的任務(wù) 可靠度,給出軟件任務(wù)可靠度的近似計(jì)算式 式中,η為任務(wù)特征的個(gè)數(shù),Hii為任務(wù)特征tCi所包含的任務(wù)狀態(tài)的個(gè)數(shù)。實(shí)施例應(yīng)用本發(fā)明提供的嵌入式軟件可靠性加速測(cè)試方法對(duì)某慣性導(dǎo)航系統(tǒng)(以下簡 稱INS)的實(shí)時(shí)控制軟件進(jìn)行軟件可靠性加速測(cè)試,INS的主要功能包括導(dǎo)航計(jì)算、過程控 制、故障處理等。INS軟件通過1553B總線與DCMP、DTE、FCS、MC、CADC等11個(gè)航電子系統(tǒng) 進(jìn)行數(shù)據(jù)交換,通過各設(shè)備之間的控制命令數(shù)據(jù)實(shí)時(shí)傳輸保證過程控制和故障處理等,具 體測(cè)試過程如下第一步,軟件任務(wù)剖面的建立。根據(jù)本發(fā)明中提出的軟件任務(wù)剖面的生成方法,首先對(duì)軟件的需求規(guī)格說明進(jìn)行分析,明確軟件的功能集,根據(jù)各功能的特點(diǎn)以及功能之間的聯(lián)系,得到軟件的任務(wù)集(即 INS所有的任務(wù)的集合)和子任務(wù)集,進(jìn)而分析得到每個(gè)子任務(wù)集中的任務(wù),見表1,其中, 導(dǎo)航子任務(wù)集中包含系統(tǒng)備份和導(dǎo)航數(shù)據(jù)人工修改兩個(gè)子子任務(wù)集表IINS的子任務(wù)集及任務(wù)列表 由表1中可以得到INS的自檢測(cè)、導(dǎo)航、姿態(tài)模式、維護(hù)、INS對(duì)準(zhǔn)、狀態(tài)監(jiān)控、進(jìn)場 數(shù)據(jù)修改和飛行結(jié)束共8個(gè)主要子任務(wù)集以及各子任務(wù)集中所包含的主要任務(wù)總共22個(gè), 通過分析各子任務(wù)集之間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系以及每個(gè)子任務(wù)集中任務(wù)的時(shí) 序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,就可以得到INS的8個(gè)主要子任務(wù)集的軟件任務(wù)剖面,它是由 子任務(wù)集組成的INS系統(tǒng)的任務(wù)剖面的進(jìn)一步描述。由于篇幅所限,本實(shí)施例中只對(duì)導(dǎo)航 和維護(hù)兩個(gè)比較典型的子任務(wù)集舉例描述,如圖5和圖6所示,圖中的每個(gè)橢圓都表示一個(gè)任務(wù),對(duì)于相對(duì)復(fù)雜的任務(wù)用任務(wù)描述圖表示;對(duì)于類似于只有一個(gè)事件的簡單任務(wù)則可 以直接確定表示事件的變量及取值。第二步,生成軟件任務(wù)序列。根據(jù)表IINS的子任務(wù)集及任務(wù)列表,歸納得到INS每個(gè)子任務(wù)集中的任務(wù)所具有 的任務(wù)特征,從而進(jìn)一步得到每個(gè)任務(wù)特征相應(yīng)的任務(wù)狀態(tài),用表2給出。表2INS的任務(wù)特征和任務(wù)狀態(tài)
對(duì)任務(wù)進(jìn)行細(xì)化和分解,考慮軟件的使用,分析軟件的可測(cè)任務(wù)和相應(yīng)的軟件任 務(wù)序列,獲得軟件任務(wù)序列,如表3所示為一個(gè)軟件任務(wù)序列表3某個(gè)軟件任務(wù)序列 注由于被測(cè)軟件主要是通過1553B總線進(jìn)行通訊的,有特定的數(shù)據(jù)傳輸格式,這 里就不再具體列出符合格式要求的數(shù)據(jù),僅用有邏輯含義的變量表示。第三步,人工編寫測(cè)試腳本,建立測(cè)試環(huán)境,開始測(cè)試。第四步,測(cè)試過程中統(tǒng)計(jì)任務(wù)特征和任務(wù)狀態(tài),根據(jù)穩(wěn)定判據(jù)判定測(cè)試過程是否 達(dá)到穩(wěn)定過程。任務(wù)狀態(tài)變量根據(jù)類型會(huì)生成更多的任務(wù)狀態(tài)①離散型任務(wù)狀態(tài)變量例如,查看MFL清單的第一頁、下一頁、上一頁、最后一 頁;②布爾型任務(wù)狀態(tài)變量例如,DTE數(shù)傳設(shè)備的開關(guān);③連續(xù)型任務(wù)狀態(tài)變量例如,經(jīng) 緯高的修改范圍;④數(shù)組形式的任務(wù)狀態(tài)變量備份數(shù)據(jù),其中包括操縱目標(biāo)號(hào)、經(jīng)度、緯 度、高度等多種信息,故障清單列表也是一種數(shù)組形式的任務(wù)狀態(tài)變量?;谲浖蝿?wù)剖面生成軟件任務(wù)序列,將每50個(gè)軟件任務(wù)序列設(shè)為一組,將生成 的1100個(gè)軟件任務(wù)序列編為22組,對(duì)每組軟件任務(wù)序列執(zhí)行中的任務(wù)狀態(tài)覆蓋率和累積 任務(wù)狀態(tài)覆蓋率進(jìn)行統(tǒng)計(jì)見表4,同時(shí)在實(shí)驗(yàn)的過程中,記錄軟件出現(xiàn)失效的軟件任務(wù)序列 號(hào)。表4INS加速實(shí)驗(yàn)過程
圖7給出了該過程的任務(wù)狀態(tài)覆蓋率和累積覆蓋率圖,結(jié)合表4和圖7可以看出 執(zhí)行了 16組800個(gè)軟件任務(wù)序列后累積任務(wù)狀態(tài)覆蓋率就達(dá)到了 83. 1%,但是再繼續(xù)測(cè) 試3組(17組 19組)150個(gè)累積任務(wù)狀態(tài)覆蓋率只增加了 0. 5 %,特別是再繼續(xù)測(cè)試3組 (20組 22組)150個(gè)用例覆蓋率保持在83. 6%沒有發(fā)生變化,此時(shí)可以進(jìn)入到第二個(gè)階 段控制過程階段。第五步,測(cè)試過程中收集測(cè)試數(shù)據(jù),施加控制過程測(cè)試策略。根據(jù)控制過程的測(cè)試策略,繼續(xù)分四組(每組30個(gè))共計(jì)追加測(cè)試用例120個(gè)。 表4的控制過程階段部分分別給出了追加的每組軟件任務(wù)序列(30個(gè))對(duì)覆蓋率的影響情 況。表5是對(duì)控制過程中測(cè)試用例追加情況的說明,可以看到,每組測(cè)試用例基本都是關(guān)鍵 軟件任務(wù)序列,對(duì)可靠性貢獻(xiàn)大(大于0. 5)的任務(wù)特征和任務(wù)狀態(tài)都占到50%左右,另外, 測(cè)試用例會(huì)針對(duì)那些沒有驗(yàn)證過的任務(wù)狀態(tài),由此體現(xiàn)了控制過程追加測(cè)試用例的準(zhǔn)則。表5控制過程追加測(cè)試用例表 在第26組測(cè)試用例運(yùn)行后,任務(wù)狀態(tài)累積覆蓋率達(dá)到了 93. 9%,此時(shí)控制過程結(jié) 束。再挑選運(yùn)行一組30個(gè)軟件任務(wù)序列,在執(zhí)行過程中沒有發(fā)現(xiàn)失效(即無失效運(yùn)行)。第六步,進(jìn)行軟件可靠性工程近似評(píng)估。通過對(duì)這30個(gè)軟件任務(wù)序列中任務(wù)特征和任務(wù)狀態(tài)的統(tǒng)計(jì),利用任務(wù)可靠度的 工程近似算法,得到此時(shí)軟件的任務(wù)可靠度。結(jié)果分析說明(1)根據(jù)任務(wù)可靠度的工程近似算法計(jì)算得到INS的任務(wù)可靠度。穩(wěn)定過程中共 測(cè)試22組1100個(gè)軟件任務(wù)序列;控制過程中共測(cè)試4組120個(gè)軟件任務(wù)序列,過程結(jié)束。 此時(shí),任務(wù)狀態(tài)累積覆蓋率達(dá)到了 93. 9% (最后兩組該覆蓋率是相同的),且運(yùn)行最后一組 軟件任務(wù)序列不再出現(xiàn)失效,因此經(jīng)過穩(wěn)定過程和控制過程后的軟件可靠性測(cè)試已經(jīng)在一 定程度上使得被測(cè)軟件的可靠性得到了比較充分的增長。計(jì)算任務(wù)可靠度時(shí),挑選運(yùn)行一 組30個(gè)軟件任務(wù)序列沒有發(fā)現(xiàn)失效(即無失效運(yùn)行)通過對(duì)這30個(gè)軟件任務(wù)序列中任務(wù)特征和任務(wù)狀態(tài)的統(tǒng)計(jì)得到軟件的任務(wù)可靠度,此時(shí)得到的評(píng)估結(jié)果是比較可信的??煽啃詼y(cè)試是面向使用的測(cè)試,對(duì)于實(shí)時(shí)嵌入式軟件基于任務(wù)的測(cè)試方法也是這 一思想的一種體現(xiàn),正是由于可靠性測(cè)試的這一特點(diǎn)決定了其測(cè)試的用例要多,測(cè)試的時(shí) 間要長,通常認(rèn)為由此而產(chǎn)生的重復(fù)測(cè)試是對(duì)某些功能的覆蓋,而不同路徑下功能的運(yùn)行 有可能產(chǎn)生不同的效應(yīng)引發(fā)缺陷,這也是可靠性測(cè)試與覆蓋測(cè)試不同之處,因此很多人認(rèn) 為的軟件可靠性測(cè)試就該是長時(shí)間測(cè)試甚至是重復(fù)測(cè)試。但是通過這個(gè)實(shí)例可以發(fā)現(xiàn),當(dāng) 測(cè)試用例(軟件任務(wù)序列)的個(gè)數(shù)遠(yuǎn)小于統(tǒng)計(jì)最小測(cè)試量時(shí),不僅是某些單一任務(wù)的覆蓋 重復(fù),而且軟件任務(wù)序列也產(chǎn)生了重復(fù),也就是說會(huì)產(chǎn)生同一路徑的重復(fù)執(zhí)行,因此如果再 繼續(xù)進(jìn)行可靠性測(cè)試,勢(shì)必造成資源的浪費(fèi)。(2)同時(shí),到有些理論上指導(dǎo)測(cè)試的停止準(zhǔn)則在工程實(shí)踐中會(huì)產(chǎn)生很大的差異,例 如用統(tǒng)計(jì)理論估計(jì)最小測(cè)試量 當(dāng)取置信度a 為 0.7,e = 0. 2,Min{pJ = 0. 0108 時(shí),計(jì)算得到最小測(cè)試量 為此,在穩(wěn)定過程執(zhí)行的1100個(gè)測(cè)試用例的基礎(chǔ)上,還是以50個(gè)任務(wù)序列為一 組繼續(xù)進(jìn)行可靠性測(cè)試,測(cè)試結(jié)果記錄見表6,當(dāng)運(yùn)行2488個(gè)軟件任務(wù)序列后,狀態(tài)覆蓋 率只達(dá)到83. 9% ;而穩(wěn)定過程中在900個(gè)軟件任務(wù)序列執(zhí)行后,狀態(tài)覆蓋率就已經(jīng)達(dá)到了 83.5%,見表4。也就是說,當(dāng)用例增加了 1588個(gè)而狀態(tài)覆蓋率增加了 0.4%,可以認(rèn)為這 部分測(cè)試的意義是很微乎其微的,另外83. 9%的狀態(tài)覆蓋也并不充分,會(huì)同時(shí)使得測(cè)試結(jié) 果的可信性受到一定的質(zhì)疑。表6 —般可靠性測(cè)試過程
(3)實(shí)時(shí)嵌入式控制軟件多為安全關(guān)鍵軟件,所謂安全關(guān)鍵軟件一方面是對(duì)可靠 性的要求較高,而另一方面強(qiáng)調(diào)的是某些缺陷一旦發(fā)生會(huì)產(chǎn)生嚴(yán)重的后果。但是往往誘發(fā) 這些有嚴(yán)重后果的關(guān)鍵缺陷的任務(wù)在使用中的概率很低,而使用頻率高的任務(wù)在前期的功 能測(cè)試或系統(tǒng)測(cè)試中已經(jīng)經(jīng)過了充分的測(cè)試,從而這些任務(wù)引發(fā)失效的概率會(huì)非常低,因 此對(duì)安全關(guān)鍵軟件的測(cè)試不但要考慮基于使用的統(tǒng)計(jì)規(guī)律,還要關(guān)注有可能引發(fā)關(guān)鍵缺陷 的任務(wù),包括這類任務(wù)的任務(wù)特征及任務(wù)狀態(tài),因此本發(fā)明中在控制過程引入的控制準(zhǔn)則, 而且實(shí)驗(yàn)結(jié)果表明在控制過程中追加測(cè)試用例時(shí),運(yùn)行序號(hào)為24即第24組中的任務(wù)序號(hào) 為1147的關(guān)鍵軟件任務(wù)序列,在測(cè)試過程中確實(shí)發(fā)現(xiàn)了某重要缺陷(即掉電時(shí)DTE數(shù)據(jù) 傳輸過程中漏傳數(shù)據(jù));在所做的對(duì)比實(shí)驗(yàn)中,還是以50個(gè)軟件任務(wù)序列為一組作非加速 方法的測(cè)試(即一般可靠性測(cè)試),當(dāng)抽樣總數(shù)N = 4000時(shí),能夠測(cè)試到該缺陷的軟件任務(wù) 序列才出現(xiàn)一次,運(yùn)行序號(hào)為76即第76組軟件任務(wù)序列中任務(wù)序號(hào)n = 3787的軟件任務(wù) 序列在執(zhí)行的過程中該缺陷才被發(fā)現(xiàn)。
18
權(quán)利要求
一種嵌入式軟件可靠性加速測(cè)試方法,其特征在于第一步,建立軟件任務(wù)剖面;第二步,根據(jù)軟件任務(wù)剖面,通過隨機(jī)抽取產(chǎn)生軟件任務(wù)序列,作為實(shí)際可靠性測(cè)試中施加的完整而有效的測(cè)試輸入;第三步,人工編寫測(cè)試腳本,建立測(cè)試環(huán)境,開始測(cè)試;第四步,測(cè)試過程中統(tǒng)計(jì)收集任務(wù)特征和任務(wù)狀態(tài),根據(jù)穩(wěn)定判據(jù)判定測(cè)試過程是否達(dá)到穩(wěn)定過程;第五步,進(jìn)入控制過程,施加測(cè)試策略,終止控制過程;第六步,對(duì)軟件可靠性進(jìn)行工程評(píng)估,結(jié)束測(cè)試;利用穩(wěn)定過程和控制過程兩個(gè)過程中收集到的測(cè)試數(shù)據(jù)計(jì)算被測(cè)軟件的任務(wù)可靠度,軟件任務(wù)可靠度的近似計(jì)算式如下 <mrow><mi>R</mi><mo>=</mo><mfrac> <mrow><munderover> <mi>Σ</mi> <mrow><mi>i</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><mi>f</mi><mrow> <mo>(</mo> <msub><mi>d</mi><mi>i</mi> </msub> <mo>)</mo></mrow><mo>*</mo><mrow> <mo>(</mo> <munderover><mi>Σ</mi><mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn></mrow><msub> <mi>m</mi> <mi>i</mi></msub> </munderover> <mi>g</mi> <mrow><mo>(</mo><msub> <mi>s</mi> <mi>ij</mi></msub><mo>)</mo> </mrow> <mo>*</mo> <mi>v</mi> <mrow><mo>(</mo><msub> <mi>s</mi> <mi>ij</mi></msub><mo>)</mo> </mrow> <mo>)</mo></mrow> </mrow> <mi>n</mi></mfrac> </mrow>式中,n為任務(wù)特征的個(gè)數(shù),mi為任務(wù)特征tci所包含的任務(wù)狀態(tài)的個(gè)數(shù)。
2.根據(jù)權(quán)利要求1所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于第一步中所 述的建立軟件任務(wù)剖面,實(shí)現(xiàn)流程如下(1)根據(jù)軟件需求規(guī)格說明書和與任務(wù)相關(guān)的要求,得到任務(wù)集合T;(2)進(jìn)一步將任務(wù)集合T劃分,得到任務(wù)集合T中所包含的子任務(wù)集Ti,i = 1,2,3……η ;(3)分別得到各子任務(wù)集Ti之間的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系;(4)確定每個(gè)子任務(wù)集Ti中任務(wù)的時(shí)序轉(zhuǎn)移關(guān)系和概率轉(zhuǎn)移關(guān)系,畫出子任務(wù)集轉(zhuǎn) 移圖;(5)在每個(gè)子任務(wù)集中畫出任務(wù)的轉(zhuǎn)移圖,同時(shí)按照任務(wù)描述方法對(duì)任務(wù)進(jìn)行描述;(6)將子任務(wù)集逐層分解,如果需要,進(jìn)一步分解為子子任務(wù)集,直到底層的子任務(wù)集 或子子任務(wù)集直接由一個(gè)或幾個(gè)任務(wù)組成,得到被測(cè)軟件的軟件任務(wù)剖面。
3.根據(jù)權(quán)利要求1所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于第四步中,當(dāng) 任務(wù)狀態(tài)覆蓋率C達(dá)到級(jí)別Ct時(shí),繼續(xù)增加測(cè)試用例,軟件的可靠性水平始終穩(wěn)定在一個(gè) 水平R,其數(shù)學(xué)描述為 其中,b是規(guī)定的較小的正數(shù),Nti表示第i組測(cè)試中測(cè)試用例的個(gè)數(shù),Ntj表示第j組 測(cè)試中測(cè)試用例的個(gè)數(shù),Ri表示第i組測(cè)試完成后得到的軟件可靠性估計(jì),Rj表示第j組 測(cè)試完成后得到的軟件可靠性估計(jì),若兩組測(cè)試的用例個(gè)數(shù)相差趨近于正數(shù)b,而對(duì)應(yīng)的可 靠性估計(jì)差值小于規(guī)定的正數(shù)ε,同時(shí)任務(wù)狀態(tài)覆蓋率C大于級(jí)別Ct時(shí),即認(rèn)為已到達(dá)穩(wěn) 定過程。
4.根據(jù)權(quán)利要求3所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于所述的級(jí)別 Ct選取在0. 85-0. 9之間。
5.根據(jù)權(quán)利要求1所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于第五步中所 述的測(cè)試策略是指(1)對(duì)測(cè)試過的完全相同的軟件任務(wù)序列不再測(cè)試,同時(shí)對(duì)測(cè)試過的相似軟件任務(wù)序 列也不再測(cè)試,所述的相似軟件任務(wù)序列是指軟件任務(wù)序列中的任務(wù)的集合相同、任務(wù)之 間的時(shí)序轉(zhuǎn)移關(guān)系相同,而對(duì)于其中的某一任務(wù),其任務(wù)特征和任務(wù)狀態(tài)不同;(2)加入對(duì)可靠性影響大的軟件任務(wù)序列;(3)運(yùn)行關(guān)鍵的軟件任務(wù)序列。
6.根據(jù)權(quán)利要求5所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于所述加入對(duì) 可靠性影響大的軟件任務(wù)序列等同于加入具有如下特征的軟件任務(wù)序列(a)任務(wù)特征對(duì)可靠性評(píng)估的貢獻(xiàn)Mdi)F(D) = If(Cli) ^lIi = Li = 1,2, · · ·,η}對(duì)F(D)中所有Mdi)按照從大到小排序,包含相對(duì)較大的Mdi)的軟件任務(wù)序列認(rèn)為 是對(duì)可靠性影響較大的軟件任務(wù)序列,取F(D)集合中排列前30%的為相對(duì)較大的Mdi);(b)任務(wù)特征的各種任務(wù)狀態(tài)對(duì)可靠性評(píng)估的貢獻(xiàn)g(Sij) 對(duì)G(Si)中所有g(shù)(su)按照從大到小排序,包含相對(duì)較大的g(su)的軟件任務(wù)序列認(rèn)為 是對(duì)可靠性影響較大的軟件任務(wù)序列,取G(Si)集合中排列前30%的為相對(duì)較大的g(Sij);(c)任務(wù)狀態(tài)對(duì)任務(wù)狀態(tài)驗(yàn)證進(jìn)行統(tǒng)計(jì) ν沒有驗(yàn)證只要任務(wù)狀態(tài)的任務(wù)狀態(tài)變量的取值的所有情況中有一種情況被覆蓋到,認(rèn)為該 任務(wù)狀態(tài)Su已驗(yàn)證,則ν (Su) = 1,如果任何一種情況都沒有被覆蓋到,認(rèn)為該任務(wù)狀態(tài) 沒有驗(yàn)證,V(Sij) = 0,將沒有驗(yàn)證的任務(wù)狀態(tài)Sij作為對(duì)可靠性影響較大的軟件任務(wù)序列。
7.根據(jù)權(quán)利要求5所述的嵌入式軟件可靠性加速測(cè)試方法,其特征在于所述的關(guān)鍵 軟件任務(wù)序列是指遍歷到關(guān)鍵或重要的任務(wù)特征的軟件任務(wù)序列,即任務(wù)特征對(duì)可靠性評(píng) 估的貢獻(xiàn)f(di)大,且含有多個(gè)任務(wù)的軟件任務(wù)序列;此外,將運(yùn)行失敗產(chǎn)生后果嚴(yán)重度高 的軟件任務(wù)序列也看作是關(guān)鍵的軟件任務(wù)序列,需要在控制過程中優(yōu)先施加。
全文摘要
本發(fā)明公開了一種嵌入式軟件可靠性加速測(cè)試方法,通過建立軟件任務(wù)剖面,來隨機(jī)抽取產(chǎn)生軟件任務(wù)序列,作為實(shí)際可靠性測(cè)試中施加的完整而有效的測(cè)試輸入;測(cè)試過程中統(tǒng)計(jì)收集任務(wù)特征和任務(wù)狀態(tài),測(cè)試過程達(dá)到穩(wěn)定過程后進(jìn)入控制過程,施加測(cè)試策略,最后對(duì)軟件可靠性進(jìn)行工程評(píng)估。本發(fā)明控制過程中的測(cè)試策略的提出達(dá)到了合理高效地加速可靠性測(cè)試過程的目的,也拓展了對(duì)嵌入式軟件進(jìn)行可靠性測(cè)試的思路?;谲浖蝿?wù)剖面生成的軟件任務(wù)序列,可以滿足對(duì)復(fù)雜的輸入條件的描述和覆蓋,保證了可靠性測(cè)試數(shù)據(jù)的可信性;評(píng)估方法不依賴于失效數(shù)據(jù)的假設(shè)數(shù)學(xué)分布,適用于對(duì)精度沒有過高要求的嵌入式軟件的可靠性評(píng)估。
文檔編號(hào)G06F11/36GK101894068SQ201010195358
公開日2010年11月24日 申請(qǐng)日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者劉志方, 吳玉美, 陸民燕 申請(qǐng)人:北京航空航天大學(xué)