一種實(shí)時軟件壓力測試用例生成方法及裝置制造方法
【專利摘要】本申請公開的實(shí)時軟件壓力測試用例生成方法及裝置,方法為:利用采集的實(shí)時軟件的實(shí)時相關(guān)信息建立OPL模型,其中建立的OPL模型包括常量、變量、約束條件及目標(biāo)函數(shù),且目標(biāo)函數(shù)包括截止時間和響應(yīng)時間,然后利用預(yù)設(shè)算法對所述OPL模型進(jìn)行求解,并依據(jù)求解結(jié)果確定壓力測試用例,其中所述壓力測試用例為使得目標(biāo)函數(shù)滿足預(yù)設(shè)條件的事件到達(dá)時間序列。本申請中,將建立的OPL模型中的目標(biāo)函數(shù)設(shè)置為兩個,所得的壓力測試用例需要使目標(biāo)函數(shù)滿足一定的預(yù)設(shè)條件才可,相比于單目標(biāo)函數(shù)的方式,壓力測試用例的選取更加精確。
【專利說明】一種實(shí)時軟件壓力測試用例生成方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本申請涉及壓力測試【技術(shù)領(lǐng)域】,更具體地說,涉及一種實(shí)時軟件壓力測試用例生 成方法及裝置。
【背景技術(shù)】
[0002] 在交通運(yùn)輸、醫(yī)療設(shè)備、航空控制器、武器、核反應(yīng)系統(tǒng)等安全攸關(guān)領(lǐng)域,極有可能 因缺陷帶來人員生命和財產(chǎn)的重大損失,甚至災(zāi)難,環(huán)境的嚴(yán)重毀壞。因此,安全攸關(guān)系統(tǒng) 僅僅滿足功能需求遠(yuǎn)遠(yuǎn)不夠,對系統(tǒng)進(jìn)行性能分析同樣具有重要性和必要性。因此,在軟件 運(yùn)行之前,有必要對軟件進(jìn)行徹底的測試。
[0003] 許多軟件在正常環(huán)境下一般不會出現(xiàn)錯誤,極端的環(huán)境下往往會引發(fā)許多嚴(yán)重的 錯誤。壓力測試,即通過輸入組合,使待測軟件處于極端狀態(tài),意圖使系統(tǒng)出現(xiàn)錯誤。針對 于軟件的時間約束,則是在一定的任務(wù)調(diào)度策略下,搜索任務(wù)可能執(zhí)行的順序,確定測試場 景,使其錯失截止期的可能性最大化。安全攸關(guān)軟件大多是實(shí)時軟件,具有嚴(yán)格的時間限 制。因而,在軟件開發(fā)初期,針對軟件實(shí)時性進(jìn)行分析,生成壓力測試用例,非常重要,可以 盡早發(fā)現(xiàn)軟件錯誤,減少開發(fā)成本。
[0004] 現(xiàn)有測試軟件實(shí)時性的策略主要分為3個步驟:首先在軟件開發(fā)早期,對軟件中 實(shí)時性相關(guān)信息進(jìn)行描述;然后根據(jù)描述的信息,在ILOG中建立OPL模型(包括變量、約 束、目標(biāo)函數(shù));最后利用約束模型求解實(shí)時任務(wù)執(zhí)行的可能執(zhí)行序列,找出最大可能錯過 截止時間的測試場景。但是,現(xiàn)有OPL模型的目標(biāo)函數(shù)僅僅只有一個,因此很有可能存在多 個任務(wù)執(zhí)行序列同時滿足目標(biāo)函數(shù)最大,無法精確的選取最佳的壓力測試用例。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本申請?zhí)峁┝艘环N實(shí)時軟件壓力測試用例生成方法及裝置,用于解決 現(xiàn)有單目標(biāo)函數(shù)的OPL模型無法精確選取最佳壓力測試用例的問題。
[0006] 為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0007] -種實(shí)時軟件壓力測試用例生成方法,包括:
[0008] 利用采集的實(shí)時軟件的實(shí)時相關(guān)信息,建立OPL模型;
[0009] 其中,所述建立OPL模型包括:
[0010] 定義常量:觀察時間T、處理器個數(shù)C、任務(wù)J = U,J1,…,jj、在時間T內(nèi)任務(wù)Ji 執(zhí)行的最大次數(shù)exec (j)、任務(wù)ji的第k+1次執(zhí)行為事件aik、任務(wù)ji的優(yōu)先權(quán)P (j)、任務(wù) ji的最大時間間隔max_ia(j)、任務(wù)上的最大和最小持續(xù)時間max_dr (j)、min_dr (j);
[0011] 定義變量:事件aik的到達(dá)時間at(aik)、、事件a ik的開始時間s(aik)、事件aik的 結(jié)束時間e (aik)、在觀察時間T內(nèi)事件aik的截止時間edl (aik)、事件aik在時間t時執(zhí)行 active (aik);
[0012] 定義約束條件:觸發(fā)關(guān)系triggers :若任務(wù)觸發(fā)任務(wù)j2,貝丨」有e (alk) = at (a2k); 依賴關(guān)系 dependent :若 s (alk) <s (a2k),則 s (a2k) >e (alk);
[0013] 定義目標(biāo)函數(shù):
[0014] 截止時間
【權(quán)利要求】
1. 一種實(shí)時軟件壓力測試用例生成方法,其特征在于,包括: 利用采集的實(shí)時軟件的實(shí)時相關(guān)信息,建立OPL模型; 其中,所述建立OPL模型包括: 定義常量:觀察時間T、處理器個數(shù)C、任務(wù)J=U,J1,…,jn}、在時間T內(nèi)任務(wù)Ji執(zhí)行 的最大次數(shù)exec(j)、任務(wù)上的第k+Ι次執(zhí)行為事件aik、任務(wù)i的優(yōu)先權(quán)p(j)、任務(wù)上的 最大時間間隔max_ia(j)、任務(wù)上的最大和最小持續(xù)時間max_dr(j)、min_dr(j); 定義變量:事件aik的到達(dá)時間at(aik)、、事件aik的開始時間s(aik)、事件aik的結(jié) 束時間e(aik)、在觀察時間T內(nèi)事件aik的截止時間edl(aik)、事件aik在時間t時執(zhí)行 active(aik); 定義約束條件:觸發(fā)關(guān)系triggers:若任務(wù)L觸發(fā)任務(wù)j2,則有e(alk) =at(a2k);依 賴關(guān)系dependent:若s(alk)<s(a2k),則s(a2k)>e(alk); 定義目標(biāo)函數(shù): m-I 截止時間丨=Σ ?"(?,))) i=0 m-l 口向應(yīng)時間/2 =Σmax(e(a,)-汾⑷); j=0 利用預(yù)設(shè)算法對所述OPL模型進(jìn)行求解,并依據(jù)求解結(jié)果確定壓力測試用例,所述壓 力測試用例為使得目標(biāo)函數(shù)滿足預(yù)設(shè)條件的事件到達(dá)時間序列。
2. 根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述事件aik的到達(dá)時間at(aik)滿 足: at(aik) =〇f(i)+pe(i),其中of(i)為與任務(wù)]\對應(yīng)的預(yù)設(shè)參考區(qū)間中的隨機(jī)值,pe(i)為任務(wù)Ji的執(zhí)行周期。
3. 根據(jù)權(quán)利要求1所述的生成方法,其特征在于,定義的所述約束條件按照下述方式 存儲: 設(shè)足tnggers(」,,」k)=j〇其它 將所有任務(wù)j之間的觸發(fā)關(guān)系按照上述設(shè)定方式表示為第一矩陣; 建立觸發(fā)集合Tl和觸發(fā)集合TO; 將所述第一矩陣中為1的元素的下標(biāo)存儲在所述觸發(fā)集合Tl中,將所述第一矩陣中為 0的元素的下標(biāo)存儲在所述觸發(fā)集合TO中; 將所述觸發(fā)集合Tl和/或所述觸發(fā)集合TO進(jìn)行存儲; 設(shè)定depen-辦,jk) = '丨·'1七丄 將所有任務(wù)j之間的依賴關(guān)系按照上述設(shè)定方式表示為第二矩陣; 建立依賴集合Ml和依賴集合MO; 將所述第二矩陣中為1的元素的下標(biāo)存儲在所述依賴集合Ml中,將所述第二矩陣中為 0的元素的下標(biāo)存儲在所述依賴集合MO中; 將所述依賴集合Ml和/或所述依賴集合MO進(jìn)行存儲。
4. 根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述預(yù)設(shè)算法為分支限界算法。
5. 根據(jù)權(quán)利要求1所述的生成方法,其特征在于,所述預(yù)設(shè)條件為: 優(yōu)先選擇使截止時間Π最大的事件到達(dá)時間序列,如果若干個事件到達(dá)時間序列使 得截止時間Π值相同,則進(jìn)一步選取使響應(yīng)時間f2較大的事件到達(dá)時間序列。
6. -種實(shí)時軟件壓力測試用例生成裝置,其特征在于,包括: 模型建立單元,用于利用采集的實(shí)時軟件的實(shí)時相關(guān)信息,建立OPL模型,其中,建立OPL模型的過程包括: 定義常量:觀察時間T、處理器個數(shù)C、任務(wù)J=U,J1,…,jn}、在時間T內(nèi)任務(wù)Ji執(zhí)行 的最大次數(shù)exec(j)、任務(wù)上的第k+Ι次執(zhí)行為事件aik、任務(wù)i的優(yōu)先權(quán)p(j)、任務(wù)上的 最大時間間隔max_ia(j)、任務(wù)上的最大和最小持續(xù)時間max_dr(j)、min_dr(j); 定義變量:事件aik的到達(dá)時間at(aik)、、事件aik的開始時間s(aik)、事件aik的結(jié) 束時間e(aik)、在觀察時間T內(nèi)事件aik的截止時間edl(aik)、事件aik在時間t時執(zhí)行 active(aik); 定義約束條件:觸發(fā)關(guān)系triggers:若任務(wù)L觸發(fā)任務(wù)j2,則有e(alk) =at(a2k);依 賴關(guān)系dependent:若s(alk)<s(a2k),則s(a2k)>e(alk); 定義目標(biāo)函數(shù): 截止時間 /1 =S III[ 響應(yīng)時間廠2=gmax(咖;)-"叫)); 模型求解單元,用于利用預(yù)設(shè)算法對所述OPL模型進(jìn)行求解,并依據(jù)求解結(jié)果確定壓 力測試用例,所述壓力測試用例為使得目標(biāo)函數(shù)滿足預(yù)設(shè)條件的事件到達(dá)時間序列。
7. 根據(jù)權(quán)利要求6所述的生成裝置,其特征在于,所述事件aik的到達(dá)時間at(aik)滿 足: at(aik) =〇f(i)+pe(i),其中of(i)為與任務(wù)]\對應(yīng)的預(yù)設(shè)參考區(qū)間中的隨機(jī)值,pe(i)為任務(wù)Ji的執(zhí)行周期。
8. 根據(jù)權(quán)利要求6所述的生成裝置,其特征在于,所述模型建立單元包括: 觸發(fā)集合存儲單元,用于設(shè)定triggersGVjk) = &k 將所有任務(wù)j之間的觸發(fā)關(guān)系按照上述設(shè)定方式表示為第一矩陣; 建立觸發(fā)集合Tl和觸發(fā)集合TO; 將所述第一矩陣中為1的元素的下標(biāo)存儲在所述觸發(fā)集合Tl中,將所述第一矩陣中為 0的元素的下標(biāo)存儲在所述觸發(fā)集合TO中; 將所述觸發(fā)集合Tl和/或所述觸發(fā)集合TO進(jìn)行存儲; 依賴集合存儲單元,用于設(shè)定dependcntQ,,jk) =j? [0,其它 將所有任務(wù)j之間的依賴關(guān)系按照上述設(shè)定方式表示為第二矩陣; 建立依賴集合Ml和依賴集合MO; 將所述第二矩陣中為1的元素的下標(biāo)存儲在所述依賴集合Ml中,將所述第二矩陣中為 O的元素的下標(biāo)存儲在所述依賴集合MO中; 將所述依賴集合Ml和/或所述依賴集合MO進(jìn)行存儲。
9. 根據(jù)權(quán)利要求6所述的生成裝置,其特征在于,所述預(yù)設(shè)算法為分支限界算法。
10. 根據(jù)權(quán)利要求6所述的生成裝置,其特征在于,所述預(yù)設(shè)條件為: 優(yōu)先選擇使截止時間Π最大的事件到達(dá)時間序列,如果若干個事件到達(dá)時間序列使 得截止時間Π值相同,則進(jìn)一步選取使響應(yīng)時間f2較大的事件到達(dá)時間序列。
【文檔編號】G06F11/36GK104239218SQ201410553203
【公開日】2014年12月24日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】張廣泉, 張紅美, 戎玫, 顧玉磊, 孫悅?cè)? 申請人:蘇州大學(xué)