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