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