999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進sPSO算法的測試數據自動生成方法研究

2013-05-11 13:25:14孫玫肖劉文韜
鐵路計算機應用 2013年3期
關鍵詞:程序

馮 菲,孫玫肖,劉文韜

(中國鐵道科學研究院 電子計算技術研究所,北京 100081)

軟件測試作為保證軟件質量、提高軟件可靠性的重要手段,其重要性已經被提升到前所未有的高度。自動化測試能夠有效地減輕測試人員的負擔并提高測試效率, 因此,對該領域的研究具有重要的理論價值和實際意義。而測試數據自動生成是自動化測試過程中十分重要的環節。

1 測試數據自動生成

測試數據選擇作為軟件測試中最核心的環節之一,為測試工作指明方向的同時也保障了軟件測試結果的有效性。以前生成測試數據最常采用的方法是向前核查和逆向回溯,整個過程由測試人員依據個人經驗手工完成,這不僅需要消耗大量的人力和時間,而且具有一定的局限性。為了實現測試數據自動生成,軟件測試中的語句覆蓋、路徑覆蓋等問題可以歸結為面向路徑的測試數據生成問題(以下簡稱為問題Q)。

問題Q的自動求解為軟件測試提供了新的思路,一方面大幅度提高了測試效率,之前需要手工完成的大量重復性勞動被程序的自動執行所替代,另一方面也提高了測試質量,將測試過程中人為造成的錯誤有效減少,從而保證了測試過程的可靠性。

通過對問題Q的探索和研究,得到了一些具有理論和實際意義的方法,其中基于程序執行的方法是重點,如隨機數法、Korel法、迭代松弛法、基于搜索的方法。

基于搜索的方法中以遺傳算法為核心算法的測試數據自動生成方法已被廣泛研究和改進,目前人們開始研究將其它搜索算法用于測試數據自動生成,以便找到更好的方法生成測試數據,本文以改進后的粒子群算法為核心算法實現測試數據自動生成。

2 粒子群算法及其改進

2.1 粒子群算法

1995年,兩位美國學者共同提出了粒子群算法(PSO),他們受早期對鳥類群體行為研究結果的啟發,利用生物群體模型,并借用個體學習和文化傳遞的觀念,提出了PSO這一仿生類算法[1]。

基本粒子群算法描述如下:搜索空間維數記作D,粒子個數記作m,粒子i所在位置記作xi=(xi1, xi2,…, xiD),i=1, 2,…, m。將 xi代入適應值函數得到相應的適應值,依據適應值評價xi的好壞。將粒子i的速度記作vi=(vi1, vi2,…, viD)T。記粒子i的個體最優位置為Pi=(Pi1, Pi2,…, PiD)T,全局最優位置為Pg=(Pg1, Pg2,…, PgD)T。每次進行迭代時,根據以下公式更新粒子的速度和位置:

其中,i=1, 2,…, m,d=1, 2,…, D;慣性因子ω≥0;學習因子r1和 r2是兩個隨機數,介于 [0,1]之間 ;vid∈ [-vmax, vmax],vmax是常數。

2.2 簡化粒子群算法

基本粒子群算法中,同時包含了speed和position兩個概念,即迭代方程中同時存在vid和xid,在此基礎上對粒子群算法進行的改進大都比較復雜,無論是算法本身,算法的實現,還是證明其收斂性。

簡化粒子群優化(sPSO)的提出,證明了粒子群的進化過程與粒子速度無關,去掉了粒子速度這一參數,將原來的二階方程降到了一階,并證明其收斂性,去掉vid簡化后的粒子群方程可表示為:

2.3 改進sPSO算法

2.3.1 進一步提高收斂速度

慣性權值作為粒子群算法中的一個重要參數,其主要作用是平衡整個粒子群的全局搜索能力和局部搜索能力,從而顯著提高粒子群優化算法的收斂速度。因此,可以從優化慣性權值ω入手,提高粒子群優化算法的收斂速度。

當慣性權值較小時,如果粒子群算法能夠找到全局最優解,它所經歷的搜索時間很短,即所有的粒子趨向于快速匯聚到一起[2]。當最優解在初始搜索空間內,粒子群算法能夠迅速找到全局最優解,否則將永遠找不到。當慣性權值較大時,粒子群算法更像全局搜索算法,總是探索新的區域,將需要更多的迭代來達到全局最優,并且更有可能無法找到最優解。

為了平衡整個粒子群的全局搜索能力和局部搜索能力,這里采用不同粒子分別隨機在給定范圍內對ω進行取值的方法,ω取值范圍是[0.6,1.3],這種取值方法平衡了粒子群的全局搜索能力和局部搜索能力,也不會導致算法失效。

另外,學習因子c1和c2分別代表了粒子對自身的學習和粒子群中粒子之間的協作,反映了粒子與群體間其它粒子的信息交流。當c1較大時粒子更傾向于自身經驗信息;當c2較大時粒子更傾向于群體經驗信息,可能過早的收斂于局部最優值。較理想的情況是,搜索初期,保證粒子的多樣性基礎上,使算法盡快進入局部搜索,以提高搜索效率;而搜索末期,粒子要保留一定的搜索能力,以擺脫局部極值的干擾。本文利用了線性策略動態調整學習因子,以獲得更好的適應值。c1從2.5線性遞減至0.5,c2從0.5線性遞增至2.5,實現在搜索初期對模型中的“認知部分”進行加強,而搜索后期則加強“社會部分”。

2.3.2 進一步提高收斂精度

sPSO算法一般前期收斂速度可觀,后期易陷入局部極值導致收斂速度驟降,影響其收斂精度,這種粒子群算法后期性能下降的狀態稱為“亞穩定態”。針對亞穩定態問題, 出現了如雜交PSO、變異PSO、模擬退火等添加極值擾動算子的策略,這些方法的共同特點是擾動亞穩定態的粒子,迫使粒子進行下一輪搜索,相比在原地停滯不前更有可能找到全局最優解。這里的觸發條件是進化停滯步數t,當t滿足需要進行擾動觸發條件時同時擾動Pi和 Pg,極值擾動算子為:

其中:ti是個體極值進化停滯步數,tg是全局極值進化停滯步數;Ti是個體極值停滯步數閾值,tg是全局極值停滯步數閾值;r3ti>Ti和r4tg>Tg為兩個帶條件的均勻隨機函數。將上面(4)式和(5)式分別代入公式(3)中,得到:

2.4 基于改進sPSO算法的測試數據自動生成模型

該模型主要包括測試環境構造、改進sPSO算法運行包和測試運行3個部分,各部分之間的關系如圖1所示。

圖1 基于改進sPSO算法的測試數據自動生成模型

2.4.1 測試環境構造

測試環境構造是整個系統的前提和基礎,首先利用程序控制流圖進行程序分析,選擇需要覆蓋的目標路徑,選擇參數、限定參數取值范圍,完成對分支函數以及適應值函數的構造,進行程序插裝。

程序插裝的前提是要保持被測程序原有的邏輯完整性和正確性,在此基礎上在程序中有針對性地插入一些探針,程序的執行過程中通過探針獲取一些運行特征數據。通過對這些數據進行分析,從而獲得程序的控制流信息和數據流信息,還可以通過進一步分析得到邏輯覆蓋等動態信息。適應值函數是粒子群算法與具體應用問題的唯一交互,其構造的好壞直接影響到算法的搜索效率。這里采用“分支函數疊加法”構造測試路徑的適應值函數。

2.4.2 改進sPSO算法運行包

改進sPSO算法運行包是系統的中樞,在系統初始階段提取測試環境構造模塊中的參數及其范圍,初始化粒子位置,接收測試運行模塊的適應值信息,進行判斷后應用改進的sPSO算法更新粒子位置,直到找到全局最優解。改進sPSO算法流程描述如下:

Step1:設置算法的相關參數,如粒子數目、粒子維度、搜索范圍、迭代次數上限等;

Step2:初始化粒子群,隨機生成粒子位置;

Step3:將當前位置寫入局部最優集;

Step4:計算每個粒子的適應值;

Step5:找出全局最優值;

Step6:更新全局最優向量;

Step7:更新粒子位置;

Step8:如果未達到結束條件(status=0或達到迭代次數上限),返回Step4;否則輸出結果,結束算法。

2.4.3 測試運行

測試運行將系統各個部分連接成為一個整體,完成插裝后的被測程序在運行時被調用,將當前參數代入適應值函數,并將得到的適應值發給改進sPSO算法運行包,為算法提供評價個體優劣的依據。

3 實例分析

三角形類別判定程序是在軟件測試研究中被廣泛應用的一個基準程序,本文利用該程序進行實驗仿真,并由C語言實現。分別用sPSO、RIW-sPSO和IMPR-sPSO來生成直角三角形路徑的測試數據,并對比這3種算法生成測試數據的運行結果。

當粒子群大小取值固定時(本次實驗中取值為100),使用sPSO、RIW-sPSO和IMPR-sPSO這3種算法分別運行20次找到最優解的迭代次數,如圖2所示。

圖2 實驗中找到測試數據的迭代次數統計圖

以下是當粒子群大小取值不同時(60遞增到160,每次增加20粒子),使用sPSO、RIW-sPSO和IM PR-sPSO這3種算法分別運行20次找到最優解的平均時間,如圖3所示。

圖3 試驗中找到測試數據的時間統計圖

圖2中黃線明顯較藍線和粉線平穩,沒有過大的波動,說明了多次運行時IM PR-sPSO較sPSO和RIW-sPSO找到測試數據的迭代次數相差不大,即算法的穩定性更好;圖3中黃線明顯較藍線和粉線位置低,說明了相同粒子數目前提下多次運行時IMPR-sPSO較sPSO和RIW-sPSO找到測試數據的平均時間最短,找到最優解的平均時間最短;綜上所述,改進sPSO算法確實在收斂速度和收斂精度兩個方面都有提高,從而有效提高了搜索效率。

4 結束語

利用計算機的計算能力自動為目標程序生成高質量的測試數據,已經成為軟件測試領域中一個被廣泛關注和研究的問題。本文介紹了如何將改進sPSO算法應用于測試數據自動生成的具體實踐中。從簡單的粒子群算法入手,對其進行簡化,并針對其特點和不足從收斂速度和收斂精度兩方面入手進行改進,有效地提高了搜索效率。

[1] 嚴 陽.粒子群算法的改進及其在非線性問題中的應用[D].廣東:華南理工大學,2010.

[2] 紀 震,廖慧連,吳青華.粒子群算法及應用[M].北京:科學出版社,2009.

[3] 胡 旺,李志蜀.一種更簡化而高效的粒子群優化算法[J].軟件學報,2007,18(4):861-868.

[4] 陳琳玲.基于簡化粒子群算法的測試數據自動生成方法研究[D].西安:西南大學,2010.

[5] 張艷麗.基于PSO的路徑測試數據自動生成方法研究[D].西安:西安科技大學,2008.

[6] Ramamoorthy.C.V. On the automated generation of program test data[J].IEEE Transactions on software Engineering,1976,2(4):215-222.

[7] Kennedy J, Eberhart R. Particle swarm optim ization[C]. IEEE Int Conf on Neural Networks, 1995 .

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 国产成人禁片在线观看| 日本人妻丰满熟妇区| 亚洲AV一二三区无码AV蜜桃| 国产成人乱无码视频| 欧美福利在线| P尤物久久99国产综合精品| 亚洲人成高清| 日本妇乱子伦视频| 高潮毛片免费观看| 国产亚洲精品自在线| 亚洲日韩欧美在线观看| 成人午夜亚洲影视在线观看| 国产偷倩视频| 日本亚洲最大的色成网站www| 国产精品久久久精品三级| 日本成人不卡视频| 国产va欧美va在线观看| 最新国产网站| 伊人精品视频免费在线| 午夜电影在线观看国产1区| 好吊色妇女免费视频免费| 精品国产美女福到在线不卡f| 欧美日韩亚洲国产| 一本久道久久综合多人| 第一区免费在线观看| a在线亚洲男人的天堂试看| 国产精品久久久久久影院| 亚洲69视频| AV无码一区二区三区四区| 五月婷婷导航| 国产中文在线亚洲精品官网| 亚洲福利网址| 91久久国产热精品免费| 免费A∨中文乱码专区| 欧美午夜在线观看| 国产成人精品18| 欧美综合一区二区三区| 中文字幕日韩视频欧美一区| 毛片网站在线看| 99在线观看免费视频| 国产99在线| 国产一区二区三区视频| 国产综合另类小说色区色噜噜| 日本在线视频免费| 婷婷六月综合网| 日本高清有码人妻| 中国国产高清免费AV片| 日韩激情成人| 国产精品私拍99pans大尺度| 国产91九色在线播放| 国产精鲁鲁网在线视频| 精品国产美女福到在线不卡f| 亚洲综合专区| 国产精品亚洲а∨天堂免下载| 欧美成人精品一级在线观看| 欧美19综合中文字幕| 国产一级视频久久| 国产亚洲一区二区三区在线| 色综合婷婷| 亚洲国产无码有码| 日韩高清一区 | 久久香蕉国产线看观看精品蕉| 国产精品尹人在线观看| 日韩在线观看网站| 亚洲人成网线在线播放va| 国内自拍久第一页| 国产视频资源在线观看| 国产精品人成在线播放| 亚洲国产日韩在线成人蜜芽| 国产视频 第一页| 欧美日韩中文国产va另类| 中国毛片网| 少妇精品久久久一区二区三区| 激情影院内射美女| 国产69精品久久久久孕妇大杂乱| 最新国产你懂的在线网址| 婷婷六月综合网| 国产黑丝视频在线观看| 91小视频在线| 人人爱天天做夜夜爽| 久久综合亚洲鲁鲁九月天| 亚洲综合精品香蕉久久网|