粒子群算法應(yīng)用研究論文
時(shí)間:2022-01-13 09:20:00
導(dǎo)語(yǔ):粒子群算法應(yīng)用研究論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
1應(yīng)用方法
在設(shè)計(jì)具體的算法之前,我們先介紹粒子群算法的基本算法,其算法框架參考資料,了解了粒子群算法算法的算法框架后,進(jìn)一步要做的就是在軟件的黑盒測(cè)試中,如何將不同的等價(jià)類轉(zhuǎn)變?yōu)榱W尤核惴ǖ暮蜻x解,如何設(shè)定解的優(yōu)劣標(biāo)準(zhǔn),如何設(shè)置合適的終止條件。
我們假定一個(gè)軟件模塊的輸入?yún)?shù)有5個(gè):A、B、C、D、E,經(jīng)過(guò)合理的等價(jià)類劃分后,每個(gè)參數(shù)又有5個(gè)不同的等價(jià)類:A1~A5,……,E1~E5。我們采用一個(gè)廣義的粒子群算法候選解概念,一般的粒子群算法往往將候選解形式定為二進(jìn)制的數(shù)據(jù)串,比如111010、010001等等,而在不同等價(jià)類輸入作為候選解時(shí)我們將候選解形式定為:A3B1C2D4E5,A2B2C4D1E3等等。這樣我們解決了候選解的問(wèn)題,在解的優(yōu)劣標(biāo)準(zhǔn)以及終止條件的設(shè)定問(wèn)題上,我們需要借助工具作為標(biāo)準(zhǔn)。軟件測(cè)試的目的是提高軟件的可靠性,終止條件當(dāng)然是軟件達(dá)到了測(cè)試的目的及要求。而解的優(yōu)劣標(biāo)準(zhǔn)正好與軟件質(zhì)量相反。文獻(xiàn)[2]中結(jié)合北大的青鳥(niǎo)黑盒測(cè)試環(huán)境提出了一種基于測(cè)試執(zhí)行的失效數(shù)據(jù)模型JBFDM。利用該模型我們可以做到:
(1)提供一致的失效數(shù)據(jù)建模,收集及管理的可靠性度量過(guò)程,從而支持可靠性度量;(2)利用測(cè)試及軟件現(xiàn)場(chǎng)收集的數(shù)據(jù)來(lái)評(píng)價(jià)測(cè)試計(jì)劃、操作概圖及測(cè)試方法的有效性。
軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,在黑盒測(cè)試中,錯(cuò)誤表現(xiàn)的形式是軟件失效。但是由于軟件錯(cuò)誤并不是軟件失效的充分條件,換句話說(shuō),并不是所有錯(cuò)誤都會(huì)在測(cè)試或運(yùn)行時(shí)暴露,所以黑盒測(cè)試的目的就是盡可能的通過(guò)運(yùn)行測(cè)試用例使軟件失效而發(fā)現(xiàn)錯(cuò)誤。在我們對(duì)測(cè)試用例的評(píng)價(jià)時(shí),用以下的數(shù)據(jù)表示測(cè)試用例的優(yōu)劣:
A=P+B/M+C*F
其中,A表示粒子群算法中的適應(yīng)度,P表示該測(cè)試用例在實(shí)際中發(fā)生的幾率,M表示平均失效時(shí)間,F(xiàn)表示失效等級(jí)。因?yàn)闇y(cè)試是針對(duì)使用的,所以發(fā)生幾率高的測(cè)試用例適應(yīng)度高就不難理解了。而M平均失效時(shí)間越長(zhǎng),該測(cè)試用例應(yīng)該不容易發(fā)現(xiàn)軟件的錯(cuò)誤,所以,A越低。F則表示某些特殊情況發(fā)生使軟件嚴(yán)重失效(比如造成死機(jī)、損壞儀器等等),此時(shí)該測(cè)試用例以及其后代必須被重點(diǎn)關(guān)注,所以此時(shí)A越大。B、C是相應(yīng)于各個(gè)具體的被測(cè)試軟件模塊而定的系數(shù)(在實(shí)際應(yīng)用中,由于軟件失效的可能性不是特別大,所以更新結(jié)果往往是發(fā)生幾率高的測(cè)試用例后代較多。所以我們應(yīng)該針對(duì)具體被測(cè)試軟件設(shè)計(jì)準(zhǔn)確的發(fā)生概率產(chǎn)生算法。具體算法框架如圖1所示。
對(duì)于該算法的說(shuō)明如下:
(1)每一個(gè)輸入?yún)?shù)往往有一個(gè)幾率(可以事先定義),可以簡(jiǎn)單相加來(lái)求得該測(cè)試用例的概率,但是在輸入?yún)?shù)有較強(qiáng)相關(guān)性時(shí),此方法并不能準(zhǔn)確求得某個(gè)測(cè)試用例的發(fā)生概率,一個(gè)解決辦法是設(shè)置輸入?yún)?shù)的相關(guān)耦合度,在粒子群算法的隨機(jī)更新時(shí)其同時(shí)進(jìn)行的幾率與相關(guān)耦合度成正比,即對(duì)于相關(guān)耦合度高的輸入?yún)?shù),它們同時(shí)進(jìn)行更新的幾率高,反之則低。
(2)檢驗(yàn)是否滿足測(cè)試要求時(shí),需要先設(shè)置一個(gè)計(jì)數(shù)器。每運(yùn)行一個(gè)新的測(cè)試用例,測(cè)試計(jì)數(shù)器加一當(dāng)發(fā)現(xiàn)第一次失效或故障時(shí),計(jì)數(shù)器加二。若產(chǎn)生的后代又使軟件發(fā)生失效,則計(jì)數(shù)器加22。同理遞推,當(dāng)遺傳算法產(chǎn)生的測(cè)試用例連續(xù)n次使軟件失效,則計(jì)數(shù)器加2n。同時(shí),記錄所有的測(cè)試情況(此工作由外圍的測(cè)試環(huán)境完成,比如北大的青鳥(niǎo)黑盒測(cè)試環(huán)境)。如果出現(xiàn)嚴(yán)重錯(cuò)誤則終止測(cè)試,進(jìn)行對(duì)程序的檢查。如果連續(xù)K代測(cè)試用例的后代都運(yùn)行良好,計(jì)數(shù)器的值加2K。K的值由具體被測(cè)試軟件的等價(jià)類數(shù)量、輸入?yún)?shù)個(gè)數(shù)等決定。當(dāng)測(cè)試計(jì)數(shù)器的值達(dá)到所有黑盒測(cè)試用例等價(jià)類的數(shù)值時(shí),結(jié)束測(cè)試也必須結(jié)束。
(3)每一組測(cè)試用例可以生成多個(gè)測(cè)試用例,根據(jù)適應(yīng)度函數(shù)大小決定留下哪些測(cè)試用例組成新的測(cè)試用例組。
從上面的算法框圖和說(shuō)明可以看出,如果某測(cè)試用例使軟件的運(yùn)行發(fā)生了問(wèn)題,它的后代也同樣受困于該軟件錯(cuò)誤,算法很快能發(fā)現(xiàn)這些最佳測(cè)試用例并給出結(jié)果。
2效果
上面的算法,相對(duì)于運(yùn)行所有測(cè)試用例,并沒(méi)有比較明顯的優(yōu)點(diǎn)。尤其對(duì)于測(cè)試來(lái)說(shuō),算法并沒(méi)有加速運(yùn)行測(cè)試用例,好象還降低了運(yùn)行速度。其實(shí)算法本身的確不是用來(lái)加速運(yùn)行測(cè)試用例的,其目的是找到一組最佳測(cè)試用例。因?yàn)閷?shí)際上對(duì)于很多模塊運(yùn)行所有測(cè)試用例或哪怕是所有等價(jià)類都是幾乎不可能的。
綜上所述,本文提出了一種利用粒子群算法尋求最佳測(cè)試用例的測(cè)試方法原理。它能在較短時(shí)間內(nèi)完成軟件模塊的黑盒測(cè)試并給出測(cè)試結(jié)果和好的測(cè)試用例。利用該算法原理,可以在測(cè)試集成環(huán)境中做一些設(shè)置或修改測(cè)試集成環(huán)境,這樣可以大大提高測(cè)試工作的效率。
【摘要】本文提出了一種利用粒子群算法幫助測(cè)試人員在較短時(shí)間內(nèi)完成軟件模塊的黑盒測(cè)試,并給出測(cè)試結(jié)果和好的測(cè)試用例的方法。
【關(guān)鍵詞】粒子群算法測(cè)試用例耦合度
參考文獻(xiàn):
[1]張鴻賓,郭建軍.遺傳算法在曲線多邊形近似中的應(yīng)用.計(jì)算機(jī)學(xué)報(bào),1999.
[2]方菲等.基于測(cè)試執(zhí)行的失效數(shù)據(jù)建模研究.軟件學(xué)報(bào),1999,12:1233-1237.
[3]鄭人杰.計(jì)算機(jī)軟件測(cè)試技術(shù).北京:清華大學(xué)出版社,1992.