專利名稱:一種基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及到嵌入式計(jì)算機(jī)的軟件領(lǐng)域,特指一種根據(jù)輸入?yún)?shù)取值使用概率自動(dòng)生成可靠性測(cè)試所需測(cè)試數(shù)據(jù)集的方法。
背景技術(shù):
針對(duì)嵌入式系統(tǒng)的可靠性研究始于1970年代,并在1990年代以后,隨著嵌入式軟件在各種高科技項(xiàng)目中的使用過程中所暴露出來(lái)的一系列可靠性問題而為人們所重視,并投入了大量的人力物力進(jìn)行研究。直至今天,嵌入式軟件可靠性已經(jīng)在可靠性測(cè)試平臺(tái)構(gòu)建、可靠性建模、測(cè)試用例生成方法、可靠性測(cè)試的充分性和有效性等方面都有了一定的發(fā)展?!扒度胧杰浖目煽啃詼y(cè)試”是指為了驗(yàn)證或達(dá)到軟件可靠性要求而對(duì)軟件進(jìn)行的測(cè)試。對(duì)于嵌入式軟件的可靠性測(cè)試,一般有兩種方法,第一種方法是利用全數(shù)字模擬技術(shù)實(shí)現(xiàn)一個(gè)集成的模擬環(huán)境,將嵌入式軟件從系統(tǒng)中剝離出來(lái),通過開發(fā)CPU指令、常用芯片、F0、終端、時(shí)鐘等模擬器在Host上實(shí)現(xiàn)嵌入式軟件的可靠性測(cè)試;第二種方法是建立嵌入式軟件可靠性仿真測(cè)試平臺(tái),模擬被測(cè)軟件的交聯(lián)系統(tǒng)和物理輸入輸出,仿真被測(cè)系統(tǒng)真實(shí)的運(yùn)行環(huán)境,保持被測(cè)系統(tǒng)的完整性,并在此環(huán)境下對(duì)嵌入式軟件進(jìn)行可靠性測(cè)試。嵌入式軟件可靠性測(cè)試的研究涉及測(cè)試用例的生成、軟件可靠性建模、軟件可靠性測(cè)試的充分性和有效性等方面。嵌入式軟件可靠性的大部分工作集中在可靠性模型方面,Jelinski, Moranda,Shooman等人對(duì)軟件可靠性模型進(jìn)行了研究,基本思想是通過對(duì)已知的失效數(shù)據(jù)建模,預(yù)測(cè)軟件的可靠性。在現(xiàn)有軟件可靠性建模的文獻(xiàn)中,以論述指數(shù)失效時(shí)間的模型居多,這類模型假設(shè)有限時(shí)間內(nèi)失效次數(shù)有限,具有代表性的模型包括:J-M模型、非均勻泊松過程(NHPP)模型、Schneidewind模型、Musa基本執(zhí)行時(shí)間模型等。與此相對(duì)的是無(wú)限失效模型,此類模型假設(shè)軟件永遠(yuǎn)不會(huì)出現(xiàn)無(wú)錯(cuò)狀態(tài),此類模型的代表包括Duane模型、Moranda提出的幾何模型、對(duì)數(shù)泊松(M-O)模型等。Bayes模型不同于上述兩類模型,它是在Bayes框內(nèi)考察軟件可靠性的增長(zhǎng),其最典型的代表是Littlewood-verrall模型。除了以上的建模方法之外,利用軟件復(fù)雜度建模、利用人工神經(jīng)網(wǎng)絡(luò)建模、利用模糊理論建模、利用覆蓋率建模等方法為擴(kuò)展軟件可靠性建模理論做出了有益探索。這些可靠性模型一般用于軟件可靠性測(cè)試之后,對(duì)軟件的可靠性指標(biāo)進(jìn)行評(píng)估,這些模型都以可靠性測(cè)試的結(jié)果為基礎(chǔ)。為了實(shí)施軟件可靠性測(cè)試,必須要考慮測(cè)試數(shù)據(jù)的生成方法。軟件可靠性測(cè)試數(shù)據(jù)生成方法是一種基于使用的測(cè)試數(shù)據(jù)生成方法,在這方面最著名的是Musa提出的基于運(yùn)行剖面的測(cè)試用例生成方法。運(yùn)行剖面是測(cè)試用例生成的基礎(chǔ),因此運(yùn)行剖面生成的研究是測(cè)試數(shù)據(jù)生成的前提。近年來(lái),運(yùn)行剖面的生成方法也得到的很大的發(fā)展,這些方法中典型的有:采用專家知識(shí)得到運(yùn)行剖面的方法、采用分解的方式利用CP(Configuration Profile)和UP(Usage Profile)指導(dǎo)操作剖面生成的方法。將UML (標(biāo)準(zhǔn)建模語(yǔ)言)應(yīng)用于運(yùn)行剖面生成的方法也在研究中?;谲浖\(yùn)行剖面生成嵌入式軟件可靠性測(cè)試用例一直是個(gè)難點(diǎn),有人提出用功能序列剖面的方法指導(dǎo)嵌入式軟件可靠性測(cè)試用例的生成,還有人提及采用“最小可測(cè)任務(wù)集”的方法來(lái)生成嵌入式軟件可靠性測(cè)試用例。這些方法均把軟件看成一系列操作的過程,生成的測(cè)試用例是一組軟件運(yùn)行操作序列,但如何得到能夠運(yùn)行這些操作序列的輸入數(shù)據(jù),依然需要根據(jù)具體嵌入式系統(tǒng)應(yīng)用特點(diǎn)考慮,沒有通用的方法。而針對(duì)許多嵌入式控制軟件,在系統(tǒng)運(yùn)行的開始給定了相應(yīng)的參數(shù)表后,其運(yùn)行一般不再被其它操作干涉,例如很多無(wú)人飛行器、巡航飛行器等,它們的輸入就是一組裝訂參數(shù)的取值和相關(guān)傳感器輸入。為了使可靠性測(cè)試結(jié)果更加準(zhǔn)確,需要以這些參數(shù)取值的概率為基礎(chǔ)生成測(cè)試數(shù)據(jù),同時(shí)還要滿足測(cè)試數(shù)據(jù)的數(shù)量和特定取值約束,目前在業(yè)界中,還沒有相應(yīng)的實(shí)用方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種原理簡(jiǎn)單、操作簡(jiǎn)便、完整性好、適用范圍廣的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:一種基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其步驟為:(I)、獲取可靠性測(cè)試的外部參數(shù);(2)、確定各外部參數(shù)屬性;將外部參數(shù)分為兩類:一類是具有發(fā)生概率的參數(shù),稱為關(guān)鍵參數(shù),這里的發(fā)生概率是指參數(shù)值取某個(gè)值或在某個(gè)取值范圍內(nèi)隨機(jī)取值的概率;另一類則是根據(jù)關(guān)鍵參數(shù)的取值情況而進(jìn)行賦值的參數(shù),稱為非關(guān)鍵參數(shù);所述兩類參數(shù)分別通過交互的方式輸入?yún)?shù)的相關(guān)信息,使得在測(cè)試用例中包含這些內(nèi)容;(3)、根據(jù)參數(shù)的范圍和概率生成初始測(cè)試數(shù)據(jù);(4)、對(duì)測(cè)試數(shù)據(jù)進(jìn)行調(diào)整和優(yōu)化;(5)、得到測(cè)試結(jié)果。作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(3)中初始測(cè)試數(shù)據(jù)的生成是根據(jù)參數(shù)的取值情況生成相應(yīng)的參數(shù)值并加入到測(cè)試用例中的過程,參數(shù)取值有3種情況:如果參數(shù)是一個(gè)確定的值,那么測(cè)試用例集中的所有測(cè)試用例都包含這個(gè)確定的值;如果參數(shù)值是一個(gè)取值范圍,那么每個(gè)測(cè)試用例都包含這個(gè)取值范圍內(nèi)隨機(jī)生成的值;對(duì)于關(guān)鍵參數(shù)如果具有多個(gè)發(fā)生概率的情況,這些發(fā)生概率之和應(yīng)該等于1,那么包含落在某個(gè)取值范圍內(nèi)隨機(jī)值的測(cè)試用例個(gè)數(shù)應(yīng)該是這個(gè)范圍所具有的發(fā)生概率乘以測(cè)試用例總數(shù)。參數(shù)隨機(jī)值的產(chǎn)生包括兩個(gè)方面:一個(gè)方面是參數(shù)值的隨機(jī)產(chǎn)生;另一個(gè)方面是在測(cè)試用例集合中隨機(jī)獲得一個(gè)測(cè)試用例以包含這個(gè)參數(shù)值。作為本發(fā)明進(jìn)一步改進(jìn),將參數(shù)的取值范圍劃分為兩種類型:連續(xù)型的取值范圍:用上界減去下界得到取值范圍的區(qū)間長(zhǎng)度,利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)落在這個(gè)區(qū)間長(zhǎng)度內(nèi)的值,然后用下界加上這個(gè)隨機(jī)值就獲得了落在取值范圍內(nèi)的隨機(jī)值;
離散型的取值范圍:首先對(duì)取值范圍做一個(gè)轉(zhuǎn)變,用O來(lái)表示第一個(gè)元素,用I來(lái)表示第二個(gè)元素…,用η-l來(lái)表示第η個(gè)元素,以此類推,那么取值區(qū)間就可以轉(zhuǎn)變?yōu)?0,η-l)這樣的連續(xù)取值范圍,η就是取值范圍內(nèi)元素的個(gè)數(shù);利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)(0,η-l)內(nèi)的隨機(jī)整數(shù)就可以隨機(jī)獲得取值范圍內(nèi)的值;在獲得隨機(jī)值后,接下來(lái)利用與產(chǎn)生離散隨機(jī)值相似的方法,生成一個(gè)(0,k-l)內(nèi)的隨機(jī)整數(shù),其中k是用戶指定的測(cè)試用例總數(shù),這樣就隨機(jī)獲得了包含當(dāng)前參數(shù)隨機(jī)值的測(cè)試用例。作為本發(fā)明進(jìn)一步改進(jìn)在創(chuàng)建測(cè)試用例時(shí)要確定測(cè)試用例總數(shù)目,測(cè)試用例的最優(yōu)性即確定測(cè)試用例的最小數(shù)目;首先遍歷所有具有多種發(fā)生概率的關(guān)鍵參數(shù),并記錄下所有的發(fā)生概率,在其中找到并記錄精度最高的發(fā)生概率,接下來(lái)通過發(fā)生概率最大的精度值就可以確定最小測(cè)試用例數(shù)的上限t,由于I顯然不能滿足多種概率發(fā)生的情況,就從
2到t循環(huán)遍歷自然數(shù),若存在自然數(shù)i e [2,t],使得i乘以每個(gè)記錄下來(lái)的發(fā)生概率都為正整數(shù),則i就是最小測(cè)試用例數(shù)。作為本發(fā)明進(jìn)一步改進(jìn),所述步驟(4)中包括以下兩個(gè)原則:4.1測(cè)試用例數(shù)目限制下的調(diào)整和優(yōu)化原則;4.2邊界取值的調(diào)整和優(yōu)化原則;根據(jù)用戶的預(yù)先設(shè)定,在取值情況所占的測(cè)試用例數(shù)目大于2的條件下會(huì)首先生成邊界值,同時(shí)隨機(jī)獲得測(cè)試用例并加入其中;對(duì)于連續(xù)型的取值范圍,邊界值非常明確;對(duì)于離散型的取值范圍,應(yīng)規(guī)定第一個(gè)分量值和最后一個(gè)分量值為邊界值。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:(I)、有效性;對(duì)于嵌入式軟件來(lái)說(shuō),具有多種發(fā)生概率的關(guān)鍵參數(shù)數(shù)目眾多,如果要滿足所有的發(fā)生概率(即所有關(guān)鍵參數(shù)的每種取值情況在這個(gè)關(guān)鍵參數(shù)的所有取值中所占的比例等于這個(gè)取值情況的發(fā)生概率,且測(cè)試用例總數(shù)乘以它的發(fā)生概率是一個(gè)整數(shù)),那么生成的測(cè)試用例 數(shù)目將會(huì)非常的龐大,這對(duì)于測(cè)試人員來(lái)說(shuō),工作量將是不可接受的。本發(fā)明為保證產(chǎn)生的測(cè)試用例具有可操作性,通過對(duì)優(yōu)化和調(diào)整算法,將生成的測(cè)試用例數(shù)目限定在一個(gè)可接受的范圍內(nèi),與此同時(shí)還能保證各個(gè)參數(shù)所占比例基本符合其給定的出現(xiàn)概率,盡可能地使所產(chǎn)生的測(cè)試用例與實(shí)際情況逼近。(2)、多樣性;針對(duì)嵌入式計(jì)算機(jī)軟件的外部參數(shù)特點(diǎn),本發(fā)明定義了具有發(fā)生概率的參數(shù)即關(guān)鍵參數(shù)和根據(jù)關(guān)鍵參數(shù)的取值情況而進(jìn)行賦值的參數(shù)即非關(guān)鍵參數(shù),并根據(jù)實(shí)際應(yīng)用中的復(fù)雜情況,提供了支持參數(shù)不服從隨機(jī)分布時(shí)的機(jī)制。本發(fā)明分別對(duì)確定概率類型、范圍取值概率類型和多概率類型的參數(shù)進(jìn)行了處理,可以使得所產(chǎn)生的測(cè)試用例包含各類可能出現(xiàn)的情況,從而具有較好的多樣性特點(diǎn)。(3)、完整性;根據(jù)嵌入式軟件的特點(diǎn),邊界條件的測(cè)試是非常重要的,本發(fā)明設(shè)計(jì)的測(cè)試用例生成方法中參數(shù)值并不是完全隨機(jī)生成,而是針對(duì)參數(shù)的各類取值情況,設(shè)計(jì)了相應(yīng)的測(cè)試用例調(diào)整方法,保證在測(cè)試用例集合中一定包含具有邊界取值的測(cè)試用例,從而使得所生成的測(cè)試用例具有較好的完整性。
圖1是本發(fā)明的流程示意圖。
具體實(shí)施例方式以下將結(jié)合說(shuō)明書附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。如圖1所示,本發(fā)明的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其步驟為:(I)、獲取可靠性測(cè)試的外部參數(shù);軟件在運(yùn)行過程中讀入的外部參數(shù)是軟件持續(xù)運(yùn)行的一個(gè)關(guān)鍵因素,輸入各種外部參數(shù)也是建立一個(gè)完整測(cè)試用例的必要條件。(2)、確定各外部參數(shù)屬性;將外部參數(shù)分為兩類:—類是具有發(fā)生概率的參數(shù),稱為關(guān)鍵參數(shù),這里的發(fā)生概率是指參數(shù)值取某個(gè)值或在某個(gè)取值范圍內(nèi)隨機(jī)取值的概率。對(duì)于外部關(guān)鍵參數(shù),定義了它的如下相關(guān)屬性:參數(shù)名、參數(shù)類型、參數(shù)值(可以是一個(gè)取值范圍)、發(fā)生概率、子節(jié)點(diǎn)列表、是否是取值范圍、是否取值邊界條件等。其中,子節(jié)點(diǎn)列表屬性用于記錄關(guān)鍵參數(shù)所有可能的取值。另一類則是根據(jù)關(guān)鍵參數(shù)的取值情況而進(jìn)行賦值的參數(shù),稱為非關(guān)鍵參數(shù)。非關(guān)鍵參數(shù)包括以下屬性:參數(shù)名、參數(shù)類型、參數(shù)值(可以是一個(gè)取值范圍),是否是取值范圍
坐寸ο針對(duì)這兩類參數(shù),應(yīng)分別采用相應(yīng)的接口,并通過交互的方式輸入?yún)?shù)的相關(guān)信息,使得在測(cè)試用例中包含這些內(nèi)容。對(duì)于關(guān)鍵參數(shù)和非關(guān)鍵參數(shù)來(lái)說(shuō),都可以事先確定一個(gè)取值范圍,接下來(lái)在測(cè)試用例生成時(shí)從這個(gè)范圍中獲得一個(gè)隨機(jī)值,但在實(shí)際應(yīng)用中比較復(fù)雜,很多情況下參數(shù)的取值并不服從隨機(jī)分布,這就需要在參數(shù)輸入時(shí)提供設(shè)定參數(shù)取值限定的接口,以使得生成的測(cè)試用例滿足取值限定條件。其中,關(guān)鍵參數(shù)屬性或?qū)傩灾g應(yīng)具有以下幾條約束:1.參數(shù)名以及參數(shù)值不能包含中文。2.子節(jié)點(diǎn)的發(fā)生概率必須在O到I之間,但不包含O和I。3.所有子節(jié)點(diǎn)發(fā)生概率之和應(yīng)該等于I。4.在參數(shù)值是一個(gè)取值范圍的情況下,取值范圍必須按照規(guī)定的格式輸入,比如,對(duì)于連續(xù)型的取值范圍,應(yīng)該是(1,10)這樣的形式,對(duì)于離散型的取值范圍,則應(yīng)該是[1,3,5,7,9]這樣的形式。5.參數(shù)值與參數(shù)類型應(yīng)該匹配。6.參數(shù)值應(yīng)該與是否是取值范圍屬性匹配。只有在參數(shù)值是一個(gè)取值范圍的情況下才能取值邊界條件。(3)、根據(jù)參數(shù)的范圍和概率生成初始測(cè)試數(shù)據(jù);自動(dòng)生成測(cè)試用例是可靠性測(cè)試用例設(shè)計(jì)與實(shí)現(xiàn)過程的一個(gè)重要環(huán)節(jié),也是判斷測(cè)試用例生成過程是否自動(dòng)化的一個(gè)重要標(biāo)識(shí)。測(cè)試用例自動(dòng)生成根據(jù)概率統(tǒng)計(jì)等基本數(shù)學(xué)原理,在用戶提供操作剖面和外部參數(shù)輸入的基礎(chǔ)上,利用后臺(tái)算法隨機(jī)產(chǎn)生若干參數(shù)變量值,并通過一定的規(guī)則和步驟將它們組織起來(lái),從而完成測(cè)試用例的構(gòu)建。此外,在測(cè)試用例生成過程中還將各種數(shù)據(jù)加以統(tǒng)計(jì)和整理,從而為測(cè)試用例的調(diào)整和優(yōu)化提供依據(jù)。在完成操作剖面的圖形化表示以及建立了軟件外部參數(shù)集合后,就能夠自動(dòng)的產(chǎn)生測(cè)試用例。生成的測(cè)試用例一方面要使得其中相關(guān)操作的發(fā)生的比例符合操作剖面中概率的要求,同時(shí)也需要參數(shù)值在某個(gè)取值范圍內(nèi)的比例符合預(yù)先輸入的發(fā)生概率的要求;在另一方面又要使測(cè)試用例數(shù)目能夠在可靠性測(cè)試所需的相關(guān)資源和時(shí)限的范圍內(nèi)。因此,最終生成的測(cè)試用例集合中各操作所占的比例有可能需要微小調(diào)整,以適應(yīng)實(shí)際情況。測(cè)試用例的生成是根據(jù)參數(shù)的取值情況生成相應(yīng)的參數(shù)值并加入到測(cè)試用例中的過程,參數(shù)取值有3種情況:如果參數(shù)是一個(gè)確定的值,那么測(cè)試用例集中的所有測(cè)試用例都包含這個(gè)確定的值。這種情況對(duì)關(guān)鍵參數(shù)和非關(guān)鍵參數(shù)都會(huì)出現(xiàn)。如果參數(shù)值是一個(gè)取值范圍,那么每個(gè)測(cè)試用例都包含這個(gè)取值范圍內(nèi)隨機(jī)生成的值。這種情況對(duì)關(guān)鍵參數(shù)和非關(guān)鍵參數(shù)都會(huì)出現(xiàn)。對(duì)于關(guān)鍵參數(shù)如果具有多個(gè)發(fā)生概率的情況(顯然,這些發(fā)生概率之和應(yīng)該等于
I),那么包含落在某個(gè)取值范圍內(nèi)隨機(jī)值的測(cè)試用例個(gè)數(shù)應(yīng)該是這個(gè)范圍所具有的發(fā)生概率乘以測(cè)試用例總數(shù)。例如,變量X值落在區(qū)間(100,200)內(nèi)的概率為0.2,測(cè)試用例總數(shù)是30個(gè),那么,應(yīng)該有0.2 X 30 = 6個(gè)測(cè)試用例所具有的X值應(yīng)該落在區(qū)間(100,200)內(nèi)。參數(shù)隨機(jī)值的產(chǎn)生包括兩個(gè)方面:一個(gè)方面是參數(shù)值的隨機(jī)產(chǎn)生;另一個(gè)方面是在測(cè)試用例集合中隨機(jī)獲得一個(gè)測(cè)試用例以包含這個(gè)參數(shù)值。對(duì)于具有發(fā)生概率的參數(shù),如何在取值范圍內(nèi)合理的產(chǎn)生參數(shù)值是使得測(cè)試用例符合真實(shí)情況的一個(gè)基本要求。根據(jù)嵌入式軟件的特點(diǎn),參數(shù)的取值范圍可以劃分為兩種類型,即連續(xù)型取值范圍和離散型取值范圍。那么必須針對(duì)不同類型的取值范圍分別產(chǎn)生隨機(jī)。對(duì)于連續(xù)型的取值范圍,采用如下方法獲得隨機(jī)值:用上界減去下界得到取值范圍的區(qū)間長(zhǎng)度,利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)落在這個(gè)區(qū)間長(zhǎng)度內(nèi)的值,然后用下界加上這個(gè)隨機(jī)值就獲得了落在取值范圍內(nèi)的隨機(jī)值。對(duì)于離散型的取值范圍,首先對(duì)取值范圍做一個(gè)轉(zhuǎn)變,用O來(lái)表示第一個(gè)元素,用I來(lái)表示第二個(gè)元素…,用η-1來(lái)表示第η個(gè)元素。以此類推,那么取值區(qū)間就可以轉(zhuǎn)變?yōu)?0,η-1)這樣的連續(xù)取值范圍,η就是取值范圍內(nèi)元素的個(gè)數(shù)。這樣,利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)(0,η-1)內(nèi)的隨機(jī)整數(shù)就可以隨機(jī)獲得取值范圍內(nèi)的值。在獲得隨機(jī)值后,接下來(lái)利用與產(chǎn)生離散隨機(jī)值相似的方法,生成一個(gè)(0,k-1)內(nèi)的隨機(jī)整數(shù)。k是用戶指定的測(cè)試用例總數(shù),這樣就隨機(jī)獲得了包含當(dāng)前參數(shù)隨機(jī)值的測(cè)試用例。要特別強(qiáng)調(diào)的一點(diǎn)是,隨機(jī)獲得測(cè)試用例可能是一個(gè)重復(fù)和迭代的過程,這是因?yàn)橐啻萎a(chǎn)生同一參數(shù)變量的隨機(jī)值,所以當(dāng)前獲得的測(cè)試用例可能已經(jīng)包含了同一參數(shù)的隨機(jī)值,在這種情況下需要重新隨機(jī)獲得測(cè)試用例。由于測(cè)試用例數(shù)目和同一參數(shù)產(chǎn)生的隨機(jī)值數(shù)目是相等的,所以最終一定可以找到?jīng)]有包含同一參數(shù)變量隨機(jī)值的測(cè)試用例。在某些情況下,非關(guān)鍵參數(shù)并不是一開始就能確定的取值,還需要根據(jù)關(guān)鍵參數(shù)的取值情況相應(yīng)的賦值,在此種情況下需要將測(cè)試用例的中間結(jié)果(即測(cè)試用例中已生成關(guān)鍵參數(shù)的值)提交給測(cè)試人員,這時(shí)測(cè)試用例中列出了未相應(yīng)賦值的非關(guān)鍵參數(shù),測(cè)試人員在對(duì)非關(guān)鍵參數(shù)的賦值后就完成了整個(gè)測(cè)試用例的創(chuàng)建。在創(chuàng)建測(cè)試用例的時(shí)候還要確定測(cè)試用例總數(shù)目,既要保證用例的完整性也要保證其最優(yōu)性。上面已經(jīng)敘述關(guān)鍵參數(shù)和非關(guān)鍵參 數(shù)的測(cè)試用例的生成方法,確保了測(cè)試用例的完整性。而測(cè)試用例的最優(yōu)性即確定測(cè)試用例的最小數(shù)目。
首先遍歷所有具有多種發(fā)生概率的關(guān)鍵參數(shù),并記錄下所有的發(fā)生概率,在其中找到并記錄精度最高的發(fā)生概率,接下來(lái)通過發(fā)生概率最大的精度值就可以確定最小測(cè)試用例數(shù)的上限t,由于I顯然不能滿足多種概率發(fā)生的情況,就從2到t循環(huán)遍歷自然數(shù),若存在自然數(shù)i e [2,t],使得i乘以每個(gè)記錄下來(lái)的發(fā)生概率都為正整數(shù),則i就是最小測(cè)試用例數(shù)。(4)、對(duì)測(cè)試數(shù)據(jù)進(jìn)行調(diào)整和優(yōu)化;對(duì)測(cè)試用例進(jìn)行調(diào)整和優(yōu)化是使測(cè)試用例具有可用性的主要實(shí)現(xiàn)手段和方法。在諸如邊界條件取值、測(cè)試用例數(shù)目限定的條件下,通過調(diào)整和優(yōu)化算法,最終找到一個(gè)盡可能滿足各種發(fā)生概率的最優(yōu)測(cè)試用例布局方案,從而滿足可靠性測(cè)試的要求。針對(duì)嵌入式軟件的可靠性測(cè)試通常有兩種限定:1.測(cè)試用例數(shù)目的限定;對(duì)于嵌入式軟件來(lái)說(shuō),具有多種發(fā)生概率的關(guān)鍵參數(shù)數(shù)目眾多,如果要滿足所有的發(fā)生概率(即所有關(guān)鍵參數(shù)的每種取值情況在這個(gè)關(guān)鍵參數(shù)的所有取值中所占的比例等于這個(gè)取值情況的發(fā)生概率,且測(cè)試用例總數(shù)乘以它的發(fā)生概率是一個(gè)整數(shù)),那么生成的測(cè)試用例數(shù)目將會(huì)非常的龐大,這對(duì)于測(cè)試人員來(lái)說(shuō),工作量將是不可接受的。因此,限定條件下測(cè)試用例的調(diào)整和優(yōu)化的一個(gè)主要目標(biāo)是如何在測(cè)試人員給定測(cè)試用例生成數(shù)目的情況下,結(jié)合工具自動(dòng)調(diào)整優(yōu)化以及測(cè)試人員的手動(dòng)調(diào)整優(yōu)化,使得測(cè)試用例集合中所有關(guān)鍵參數(shù)的每種取值情況所占的比例盡可能近似它的發(fā)生概率。2.邊界條件的限定;根據(jù)嵌入式軟件的特點(diǎn),邊界條件的測(cè)試是非常重要的,這意味著在某些情況下,參數(shù)值并不能完全隨機(jī)生成,在測(cè)試用例集合中必須包含具有邊界取值的測(cè)試用例,所以,在工具中要提供給用戶設(shè)定是否邊界取值的接口,那么相應(yīng)的在測(cè)試用例生成算法中根據(jù)用戶的設(shè)定會(huì)選擇強(qiáng)制生成參數(shù)的邊界取值?;谏鲜雒枋?,對(duì)嵌入式軟件可靠性測(cè)試用例來(lái)說(shuō),條件限定下的測(cè)試用例的調(diào)整和優(yōu)化可歸納為以下兩個(gè)原則:第一、測(cè)試用例數(shù)目限制下的調(diào)整和優(yōu)化原則;測(cè)試用例的調(diào)整、優(yōu)化主要針對(duì)的是關(guān)鍵參數(shù)具有多個(gè)發(fā)生概率的情況。一個(gè)完整的測(cè)試用例集要使得參數(shù)的各種取值情況都能在集合中出現(xiàn),并占合適的比例(這個(gè)比例一般是此種取值情況的發(fā)生概率),同時(shí)各種取值情況所占測(cè)試用例數(shù)之和應(yīng)該等于集合中的測(cè)試用例總數(shù)。但在實(shí)際情況中這兩個(gè)條件往往不能同時(shí)滿足,因此需要對(duì)生成的測(cè)試用例集進(jìn)行調(diào)整和優(yōu)化。例如:某種取值情況的發(fā)生概率非常小,使得這種取值情況所占的測(cè)試用例數(shù)小于1,那么這種取值情況應(yīng)該強(qiáng)制性的出現(xiàn)在至少一個(gè)測(cè)試用例中;對(duì)于發(fā)生概率乘以測(cè)試用例總數(shù)不等于整數(shù)的情況,采用四舍五入的辦法來(lái)確定當(dāng)前取值所占的測(cè)試用例數(shù);滿足這些要求的同時(shí)就意味著必須調(diào)整其余的取值情況所占的測(cè)試用例數(shù)。第二、邊界取值的調(diào)整和優(yōu)化原則;在參數(shù)是一個(gè)取值范圍的情況下,邊界值的測(cè)試往往是檢驗(yàn)軟件可靠性的一個(gè)重要方面。由于取值的隨機(jī)性,在測(cè)試用例集的生成過程中,邊界取值往往不能保證,所以必須強(qiáng)制生成。應(yīng)根據(jù)用戶的預(yù)先設(shè)定,在此種取值情況所占的測(cè)試用例數(shù)目大于2的條件下會(huì)首先生成邊界值,同時(shí)隨機(jī)獲得測(cè)試用例并加入其中。對(duì)于連續(xù)型的取值范圍,邊界值非常明確;對(duì)于離散型的取值范圍,應(yīng)規(guī)定第一個(gè)分量值和最后一個(gè)分量值為邊界值。(5)、得到測(cè)試結(jié)果。綜上所述,本發(fā)明主要是針對(duì)以裝訂參數(shù)和傳感器數(shù)據(jù)為主要輸入的嵌入式軟件,其可靠性測(cè)試需要根據(jù)參數(shù)值的使用概率生成測(cè)試數(shù)據(jù)的問題。本發(fā)明針對(duì)具有大量輸入?yún)?shù)且取值范圍較大時(shí),為了高效完成可靠性測(cè)試,需要選擇部分測(cè)試數(shù)據(jù)的問題,提出了針對(duì)特定測(cè)試數(shù)據(jù)數(shù)量要求和特定約束的測(cè)試數(shù)據(jù)生成方法以及相應(yīng)的調(diào)整、優(yōu)化方案。以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,步驟為: (1)、獲取可靠性測(cè)試的外部參數(shù); (2)、確定各外部參數(shù)屬性;將外部參數(shù)分為兩類:一類是具有發(fā)生概率的參數(shù),稱為關(guān)鍵參數(shù),這里的發(fā)生概率是指參數(shù)值取某個(gè)值或在某個(gè)取值范圍內(nèi)隨機(jī)取值的概率;另一類則是根據(jù)關(guān)鍵參數(shù)的取值情況而進(jìn)行賦值的參數(shù),稱為非關(guān)鍵參數(shù);所述兩類參數(shù)分別通過交互的方式輸入?yún)?shù)的相關(guān)信息,使得在測(cè)試用例中包含這些內(nèi)容; (3)、根據(jù)參數(shù)的范圍和概率生成初始測(cè)試數(shù)據(jù); (4)、對(duì)測(cè)試數(shù)據(jù)進(jìn)行調(diào)整和優(yōu)化; (5)、得到測(cè)試結(jié)果。
2.根據(jù)權(quán)利要求1所述的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,所述步驟(3)中初始測(cè)試數(shù)據(jù)的生成是根據(jù)參數(shù)的取值情況生成相應(yīng)的參數(shù)值并加入到測(cè)試用例中的過程,參數(shù)取值有3種情況: 如果參數(shù)是一個(gè)確定的值,那么測(cè)試用例集中的所有測(cè)試用例都包含這個(gè)確定的值; 如果參數(shù)值是一個(gè)取值范圍,那么每個(gè)測(cè)試用例都包含這個(gè)取值范圍內(nèi)隨機(jī)生成的值; 對(duì)于關(guān)鍵參數(shù)如果具有多個(gè)發(fā)生概率的情況,這些發(fā)生概率之和應(yīng)該等于I,那么包含落在某個(gè)取值范圍內(nèi)隨機(jī)值的測(cè)試用例個(gè)數(shù)應(yīng)該是這個(gè)范圍所具有的發(fā)生概率乘以測(cè)試用例總數(shù)。
3.根據(jù)權(quán)利要求2所述的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,參數(shù)隨機(jī)值的產(chǎn)生包括兩個(gè)方面:一個(gè)方面是參數(shù)值的隨機(jī)產(chǎn)生;另一個(gè)方面是在測(cè)試用例集合中隨機(jī)獲得一個(gè)測(cè)試用例以包含這個(gè)參數(shù)值。
4.根據(jù)權(quán)利要求3所述的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,將參數(shù)的取值范圍劃分為兩種類型: 連續(xù)型的取值范圍:用上界減去下界得到取值范圍的區(qū)間長(zhǎng)度,利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)落在這個(gè)區(qū)間長(zhǎng)度內(nèi)的值,然后用下界加上這個(gè)隨機(jī)值就獲得了落在取值范圍內(nèi)的隨機(jī)值; 離散型的取值范圍:首先對(duì)取值范圍做一個(gè)轉(zhuǎn)變,用O來(lái)表示第一個(gè)元素,用I來(lái)表示第二個(gè)元素…,用η-l來(lái)表示第η個(gè)元素,以此類推,那么取值區(qū)間就可以轉(zhuǎn)變?yōu)?O,η-1)這樣的連續(xù)取值范圍,η就是取值范圍內(nèi)元素的個(gè)數(shù);利用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)(0,η-1)內(nèi)的隨機(jī)整數(shù)就可以隨機(jī)獲得取值范圍內(nèi)的值;在獲得隨機(jī)值后,接下來(lái)利用與產(chǎn)生離散隨機(jī)值相似的方法,生成一個(gè)(O,k-Ι)內(nèi)的隨機(jī)整數(shù),其中k是用戶指定的測(cè)試用例總數(shù),這樣就隨機(jī)獲得了包含當(dāng)前參數(shù)隨機(jī)值的測(cè)試用例。
5.根據(jù)權(quán)利要求4所述的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,在創(chuàng)建測(cè)試用例時(shí)要確定測(cè)試用例總數(shù)目,測(cè)試用例的最優(yōu)性即確定測(cè)試用例的最小數(shù)目;首先遍歷所有具有多種發(fā)生概率的關(guān)鍵參數(shù),并記錄下所有的發(fā)生概率,在其中找到并記錄精度最高的發(fā)生概率,接下來(lái)通過發(fā)生概率最大的精度值就可以確定最小測(cè)試用例數(shù)的上限t,由于I顯然不能滿足多種概率發(fā)生的情況,就從2到t循環(huán)遍歷自然數(shù),若存在自然數(shù)i e [2,t],使得i乘以每個(gè)記錄下來(lái)的發(fā)生概率都為正整數(shù),則i就是最小測(cè)試用例數(shù)。
6.根據(jù)權(quán)利要求4或5所述的基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其特征在于,所述步驟(4)中包括以下兩個(gè)原則: ·4.1測(cè)試用例數(shù)目限制下的調(diào)整和優(yōu)化原則; ·4.2邊界取值的調(diào)整和優(yōu)化原則;根據(jù)用戶的預(yù)先設(shè)定,在取值情況所占的測(cè)試用例數(shù)目大于2的條件下會(huì)首先生成邊界值,同時(shí)隨機(jī)獲得測(cè)試用例并加入其中;對(duì)于連續(xù)型的取值范圍,邊界值非常明確;對(duì)于離散型的取值范圍,應(yīng)規(guī)定第一個(gè)分量值和最后一個(gè)分量值為邊界值。 ·
全文摘要
本發(fā)明公開了一種基于使用概率的嵌入式軟件可靠性測(cè)試數(shù)據(jù)生成方法,其步驟為(1)獲取可靠性測(cè)試的外部參數(shù);(2)確定各外部參數(shù)屬性;將外部參數(shù)分為兩類一類是具有發(fā)生概率的參數(shù),稱為關(guān)鍵參數(shù);另一類則是根據(jù)關(guān)鍵參數(shù)的取值情況而進(jìn)行賦值的參數(shù),稱為非關(guān)鍵參數(shù);所述兩類參數(shù)分別通過交互的方式輸入?yún)?shù)的相關(guān)信息,使得在測(cè)試用例中包含這些內(nèi)容;(3)根據(jù)參數(shù)的范圍和概率生成初始測(cè)試數(shù)據(jù);(4)對(duì)測(cè)試數(shù)據(jù)進(jìn)行調(diào)整和優(yōu)化;(5)得到測(cè)試結(jié)果。本發(fā)明具有原理簡(jiǎn)單、操作簡(jiǎn)便、完整性好、適用范圍廣等優(yōu)點(diǎn)。
文檔編號(hào)G06F11/36GK103198015SQ20131009266
公開日2013年7月10日 申請(qǐng)日期2013年3月21日 優(yōu)先權(quán)日2013年3月21日
發(fā)明者董威, 王戟, 文艷軍, 劉萬(wàn)偉, 陳振邦, 陳立前, 徐蛟 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)