一種基于Markov方法的仿真系統(tǒng)測試用例生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種仿真系統(tǒng)測試用例的生成方法,特別是一種基于Markov方法的 仿真系統(tǒng)測試用例生成方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的隨著航天工業(yè)的快速發(fā)展,運載火箭型號任務(wù)越來越多,型號研制周期不 斷縮短,飛行性能仿真試驗在研發(fā)流程中占的比例也越來越大,對仿真系統(tǒng)的可用性和可 信性要求也越來越高,可用性和可信性測試評估是仿真系統(tǒng)測試評估的重要內(nèi)容,沒有經(jīng) 過測試評估的仿真系統(tǒng),應(yīng)用到型號的研制中可能帶來隱患,其結(jié)果可能是浪費人力、物力 和財力。因此仿真系統(tǒng)測試評估已成為仿真系統(tǒng)研制中必不可少的一環(huán),需要提供一種技 術(shù)手段對仿真系統(tǒng)進行邏輯化描述,建立系統(tǒng)的使用模型,并生成測試用例用于仿真系統(tǒng) 測試。
[0003] 目前仿真系統(tǒng)的測試技術(shù)存在一定的問題,難以將仿真系統(tǒng)的功能以邏輯化和數(shù) 學(xué)化的方式抽象成使用模型,將無限的執(zhí)行域壓縮到一個有限的域,現(xiàn)有的測試用例生成 方法生成的測試用例數(shù)量多,對仿真系統(tǒng)的功能測試重復(fù)率高,極大的增加了測試工作的 工作量。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有測試用例生成技術(shù)生成的測試用例數(shù)量多, 對仿真系統(tǒng)的功能測試重復(fù)率高,測試工作量大的不足,提供了一種基于Markov方法的仿 真系統(tǒng)測試用例生成方法。
[0005] 本發(fā)明的技術(shù)解決方案是:一種基于Markov方法的仿真系統(tǒng)測試用例生成方法, 包括如下步驟:
[0006] (1)獲取仿真系統(tǒng)所有的功能操作,記為一級功能1、一級功能2、一級功能3,,,一 級功能n,二級功能1、二級功能2、二級功能3,,,二級功能m,三級功能1、三級功能2、三級 功能3,,,三級功能k,以此類推,T級功能1、T級功能2、T級功能3,,,T級功能e,其中n 為仿真系統(tǒng)所有一級功能操作的個數(shù),m為仿真系統(tǒng)所有二級功能操作的個數(shù),k為仿真系 統(tǒng)所有三級功能操作的個數(shù),e為仿真系統(tǒng)所有T級功能操作的個數(shù),其中I級功能為所有 I-I級功能菜單下的功能,I= 2, 3,,,T;
[0007] (2)根據(jù)進行當(dāng)前功能操作得到下一步可能進行的功能操作,如果當(dāng)前功能操作 為一級功能,則下一步進行一級功能或二級功能操作,如果當(dāng)前操作為二級功能,則下一步 進行一級功能、二級功能或三級功能操作,如果當(dāng)前操作為三級功能,則下一步可能進行一 級功能、二級功能、三級功能或四級功能操作,以此類推,如果當(dāng)前操作為I級功能,貝1J下一 步可能進行一級功能、二級功能、三級功能,,,I級功能或1+1級功能,遍歷I得到仿真系統(tǒng) 所有功能,并獲取各功能操作之間的轉(zhuǎn)移概率,其中仿真開始時進行的第一步功能操作為 一級功能;所述功能操作之間的轉(zhuǎn)移概率為上一功能操作后進行下一功能操作的概率;
[0008] (3)根據(jù)仿真系統(tǒng)所有功能、各功能操作之間的轉(zhuǎn)移概率建立仿真系統(tǒng)功能的有 向圖,并得到功能總個數(shù)為a,最長功能操作序列的長度為b;所述功能操作序列為仿真開 始后直至結(jié)束進行的一系列功能操作的集合;
[0009](4)生成d個取值范圍為[0, 1]的元素后組成第t個數(shù)組(P1,P2,P3,,,Pd},在步驟 (3)得到的有向圖中選取轉(zhuǎn)移概率與?:大小最接近的一級功能,然后在該一級功能操作后 可能進行的一級功能、二級功能操作中選取轉(zhuǎn)移概率與P2大小最接近的功能,直至在上一 功能操作后可能進行的功能操作中選取轉(zhuǎn)移概率與Pd大小最接近的功能,將選取得到的功 能順序組成測試用例,使用該測試用例測試仿真系統(tǒng)并統(tǒng)計測試的功能操作個數(shù),記為c, 其中d為隨機生成的取值范圍為[1,2, 3,,,b]的正整數(shù),t的初值為1 ;所述選取轉(zhuǎn)移概率 與數(shù)組中元素大小最接近的功能時,如果多于1個功能的轉(zhuǎn)移概率與元素大小最接近,則 在多于1個功能中隨機選取1個;
[0010] (5)獲取測試功能的覆蓋率并判斷c/a,如果c/a小于覆蓋率,則t=t+1并重復(fù) 步驟(4),如果c/a大于等于覆蓋率,則將步驟(4)得到的所有測試用例輸出。
[0011] 所述的步驟⑷中生成取值范圍為[0, 1]的元素的方法包括如下步驟:
[0012] (1)根據(jù)仿真系統(tǒng)所有功能及各功能之間的轉(zhuǎn)移概率得到的有向圖計算有向圖中 邊的個數(shù),記為w;
[0013] (2)將得到的仿真系統(tǒng)所有功能根據(jù)該功能的轉(zhuǎn)移概率由小到大排列,記為 {P'i,P' 2,P' 3,,,P'a},P' $ {P'i,P' 2,P' 3,,,P' a}中第V個轉(zhuǎn)移概率,最大的轉(zhuǎn)移概率 記為P' max;
[0014] (3)計算數(shù)組{PpLbuPd}中的各個元素,其中第t個數(shù)組的第s個元素為
【主權(quán)項】
1. 一種基于Markov方法的仿真系統(tǒng)測試用例生成方法,其特征在于包括如下步驟: (1) 獲取仿真系統(tǒng)所有的功能操作,記為一級功能1、一級功能2、一級功能3,,,一級功 能n,二級功能1、二級功能2、二級功能3,,,二級功能m,三級功能1、三級功能2、三級功能 3,,,三級功能k,以此類推,T級功能1、T級功能2、T級功能3,,,T級功能e,其中η為仿真 系統(tǒng)所有一級功能操作的個數(shù),m為仿真系統(tǒng)所有二級功能操作的個數(shù),k為仿真系統(tǒng)所有 三級功能操作的個數(shù),e為仿真系統(tǒng)所有T級功能操作的個數(shù),其中I級功能為所有I-I級 功能菜單下的功能,I = 2, 3,,,T ; (2) 根據(jù)進行當(dāng)前功能操作得到下一步可能進行的功能操作,如果當(dāng)前功能操作為一 級功能,則下一步進行一級功能或二級功能操作,如果當(dāng)前操作為二級功能,則下一步進行 一級功能、二級功能或三級功能操作,如果當(dāng)前操作為三級功能,則下一步可能進行一級功 能、二級功能、三級功能或四級功能操作,以此類推,如果當(dāng)前操作為I級功能,貝 1J下一步可 能進行一級功能、二級功能、三級功能,,,I級功能或1+1級功能,遍歷I得到仿真系統(tǒng)所有 功能,并獲取各功能操作之間的轉(zhuǎn)移概率,其中仿真開始時進行的第一步功能操作為一級 功能;所述功能操作之間的轉(zhuǎn)移概率為上一功能操作后進行下一功能操作的概率; (3) 根據(jù)仿真系統(tǒng)所有功能、各功能操作之間的轉(zhuǎn)移概率建立仿真系統(tǒng)功能的有向圖, 并得到功能總個數(shù)為a,最長功能操作序列的長度為b ;所述功能操作序列為仿真開始后直 至結(jié)束進行的一系列功能操作的集合; (4) 生成d個取值范圍為[0, 1]的元素后組成第t個數(shù)組也,P2, P3,,,Pd},在步驟(3) 得到的有向圖中選取轉(zhuǎn)移概率與?:大小最接近的一級功能,然后在該一級功能操作后可能 進行的一級功能、二級功能操作中選取轉(zhuǎn)移概率與P 2大小最接近的功能,直至在上一功能 操作后可能進行的功能操作中選取轉(zhuǎn)移概率與Pd大小最接近的功能,將選取得到的功能順 序組成測試用例,使用該測試用例測試仿真系統(tǒng)并統(tǒng)計測試的功能操作個數(shù),記為c,其中 d為隨機生成的取值范圍為[1,2, 3,,,b]的正整數(shù),t的初值為1 ;所述選取轉(zhuǎn)移概率與數(shù) 組中元素大小最接近的功能時,如果多于1個功能的轉(zhuǎn)移概率與元素大小最接近,則在多 于1個功能中隨機選取1個; (5) 獲取測試功能的覆蓋率并判斷c/a,如果c/a小于覆蓋率,則t = t+Ι并重復(fù)步驟 (4),如果c/a大于等于覆蓋率,則將步驟(4)得到的所有測試用例輸出。
2. 根據(jù)權(quán)利要求1所述的一種基于Markov方法的仿真系統(tǒng)測試用例生成方法,其特征 在于:所述的步驟(4)中生成取值范圍為[0, 1]的元素的方法包括如下步驟: (1) 根據(jù)仿真系統(tǒng)所有功能及各功能之間的轉(zhuǎn)移概率得到的有向圖計算有向圖中邊的 個數(shù),記為w ; (2) 將得到的仿真系統(tǒng)所有功能根據(jù)該功能的轉(zhuǎn)移概率由小到大排列,記為 {P' i,P' 2, P' 3,,,P' a},P',為{P' i,P' 2, P' 3,,,P' a}中第V個轉(zhuǎn)移概率,最大的轉(zhuǎn)移概率 記為Ρ' ΜΧ; ⑶計算數(shù)組(P1, P2, P3,,,Pd}中的各個元素,其中第t個數(shù)組的第s個元素為
其中,Ps為數(shù)組{P ^ P2, P3,,,Pd}中第s個元素,rs,u取值范圍為[0, 1],t為正整數(shù),s =1,2, 3,,,d,d = 1,2, 3,,,bo
【專利摘要】一種基于Markov方法的仿真系統(tǒng)測試用例生成方法,首先獲取仿真系統(tǒng)所有功能操作及各功能操作的轉(zhuǎn)移概率,根據(jù)功能操作及其轉(zhuǎn)移概率建立有向圖并得到功能操作個數(shù)與最長功能操作序列的長度,然后根據(jù)功能操作及其轉(zhuǎn)移概率構(gòu)建的有向圖生成多個長度不定的且元素介于0與1之間的數(shù)組,最后依次遍歷數(shù)組元素來選取功能后組成測試用例,并使用得到的測試用例完成測試。本發(fā)明方法根據(jù)轉(zhuǎn)移概率計算得到的數(shù)組來生成測試用例,與現(xiàn)有技術(shù)相比覆蓋同樣的仿真系統(tǒng)功能需要的測試用例少,減少了測試重復(fù)率和測試的次數(shù),提高了測試效率,降低了測試的工作量。
【IPC分類】G06F11-36
【公開號】CN104679652
【申請?zhí)枴緾N201510081876
【發(fā)明人】胡曉軍, 彭博, 陳愛真, 王海濱, 陶久亮
【申請人】北京宇航系統(tǒng)工程研究所, 中國運載火箭技術(shù)研究院
【公開日】2015年6月3日
【申請日】2015年2月15日