[發(fā)明專利]基于粒子群優(yōu)化的約束下組合測試數(shù)據(jù)生成方法有效
| 申請?zhí)枺?/td> | 202011609041.2 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112711535B | 公開(公告)日: | 2021-12-21 |
| 發(fā)明(設(shè)計)人: | 楊京禮;魏長安;姜守達(dá);盛云龍 | 申請(專利權(quán))人: | 哈爾濱工業(yè)大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/00 |
| 代理公司: | 哈爾濱市陽光惠遠(yuǎn)知識產(chǎn)權(quán)代理有限公司 23211 | 代理人: | 孫莉莉 |
| 地址: | 150001 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 粒子 優(yōu)化 約束 組合 測試數(shù)據(jù) 生成 方法 | ||
本發(fā)明公開了一種基于粒子群優(yōu)化的約束下組合測試數(shù)據(jù)生成方法,包括:利用粒子群優(yōu)化算法全局搜索能力強的特點,在解空間中尋找最優(yōu)解,經(jīng)過粒子群算法的迭代尋優(yōu)過程,輸出所能搜索到的一條最優(yōu)測試數(shù)據(jù);針對這一最優(yōu)測試數(shù)據(jù)進行局部搜索,利用貪心算法在針對局部進行取值替換,保留更優(yōu)的測試數(shù)據(jù),其中,在局部替換過程中,使用滿足性解釋器同步驗證每一次替換的結(jié)果,在保證了測試數(shù)據(jù)滿足約束的前提下,測試數(shù)據(jù)盡可能的覆蓋更多的未被覆蓋的取值組合,生成高覆蓋的組合測試數(shù)據(jù)。該方法有效的結(jié)合貪心算法和啟發(fā)式算法的優(yōu)勢,彌補了對應(yīng)的不足,增強了解空間的搜索能力,同時能夠有效的減少測試數(shù)據(jù)量,提高測試效率。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件測試技術(shù)領(lǐng)域,特別涉及一種基于粒子群優(yōu)化的約束下組合測試用例生成方法。
背景技術(shù)
電子與信息系統(tǒng)已經(jīng)在公共安全和國防等重要領(lǐng)域占據(jù)核心地位,承擔(dān)著計算、控制、信息處理和通信等重要的任務(wù)。它們結(jié)構(gòu)復(fù)雜、集成的功能項多、功能之間的耦合程度緊密,且具有多樣的通信接口、復(fù)雜的輸入?yún)?shù)。一些微小的錯誤或偶然因素的影響就可能帶來巨大的財產(chǎn)損失和嚴(yán)重的人員傷害,造成難以估計的后果。為了減少損失、降低傷害、保證質(zhì)量和可靠性,需要對這類系統(tǒng)進行全面的測試。
理論上對測試空間中的全部數(shù)據(jù)進行全因子測試才能保證全面性,然而測試空間中可能的測試數(shù)據(jù)舉不勝舉,無法在實際測試中應(yīng)用。組合測試是一種科學(xué)有效的黑盒測試方法,可以使用較少的測試數(shù)據(jù)有效地檢測被測系統(tǒng)中參數(shù)之間的相互作用產(chǎn)生的影響。組合測試可以使用較少的測試數(shù)據(jù)達(dá)到全因子測試的效果,因此,實際中常常使用組合測試代替全因子測試。
在實際的被測系統(tǒng),參數(shù)間往往存在一定的依賴關(guān)系,也就是約束關(guān)系。如果忽略約束關(guān)系會導(dǎo)致測試數(shù)據(jù)無效,進而無法進行測試,所以測試數(shù)據(jù)首先要滿足約束關(guān)系。同時,在滿足相同覆蓋標(biāo)準(zhǔn)的情況下,測試數(shù)據(jù)的規(guī)模越小,也就是數(shù)據(jù)量越少,測試的效率也就越高,高效的測試有利于節(jié)省測試的時間和消耗的資源,追求高效測試一直是該行業(yè)的發(fā)展方向。
目前約束下組合測試數(shù)據(jù)生成算法主要分為貪心算法和啟發(fā)式算法兩類。貪心算法每次只為一個參數(shù)選擇取值,搜索步子小,注重于尋找局部最優(yōu)解,生成的測試數(shù)據(jù)量較大;啟發(fā)式算法搜索步子大,善于發(fā)現(xiàn)全局最優(yōu)解,但是后期容易陷入到一個局部,生成的測試數(shù)據(jù)量往往也較大,其優(yōu)勢體現(xiàn)不出來。將這兩種算法的優(yōu)點進行結(jié)合,并改進不足,那么約束下組合測試用例數(shù)據(jù)量仍有可能減少。首先,利用啟發(fā)式算法大范圍搜索解空間,尋找最優(yōu)解;然后,當(dāng)搜索空間變小時,利用貪心算法進行局部搜索。將兩種算法進行充分的結(jié)合,可以取長補短,更有利于減少數(shù)據(jù)量。
發(fā)明內(nèi)容
本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本發(fā)明的目的在于提出一種基于粒子群優(yōu)化的約束下組合測試數(shù)據(jù)生成方法,該方法能夠有效的減少測試數(shù)據(jù)量,提高測試效率。
為達(dá)到上述目的,本發(fā)明實施例提出了基于粒子群優(yōu)化的約束下組合測試數(shù)據(jù)生成方法,包括以下步驟:步驟S1,對粒子群優(yōu)化算法本身參數(shù)和生成測試數(shù)據(jù)過程中所用的參數(shù)進行初始化;步驟S2,為種群中M個粒子中每個粒子位置的每個維度進行初始化,得到候選解集;步驟S3,選出所述候選解集中每個粒子的個體極值pBest和全局極值gBest,種群中每個粒子根據(jù)所述個體極值pBest和所述全局極值gBest更新自身的速度和位置,以完成種群進化;步驟S4,在所述種群進化后,更新所述個體極值pBest和所述全局極值gBest;步驟S5,對每個粒子的位置進行全局?jǐn)_動操作;步驟S6,判斷更新后的全局極值gBest是否滿足最大覆蓋,若不滿足,繼續(xù)進行迭代執(zhí)行所述步驟S3,若滿足,則所述更新后的全局極值gBest為最優(yōu)測試數(shù)據(jù),輸入步驟S7中;步驟S7,對所述更新后的全局極值gBest進行局部搜索優(yōu)化,使其滿足約束一致性,全部參數(shù)均選取一遍取值;步驟S8,判斷滿足約束的t個參數(shù)的取值組合全部被至少覆蓋一次,則結(jié)束生成過程,得到組合測試數(shù)據(jù)集。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于哈爾濱工業(yè)大學(xué),未經(jīng)哈爾濱工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011609041.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





