?

人工智能技術下軟件可靠性自動測試系統的設計研究*

2024-01-03 12:24魏化永
九江學院學報(自然科學版) 2023年4期
關鍵詞:軟件測試適應度次數

魏化永

(安徽交通職業技術學院 安徽合肥 230051)

隨著信息社會的進程不斷推進,軟件技術也不斷發展和成熟。如何進行軟件質量的檢驗,保證軟件運行穩定可靠,成為業內研究的重點。粒子群算法(particle swarm optimization,PSO)以模擬簡化社會模型為基礎依據,忽略成員的體積與質量,對粒子成員的加速及速度狀態進行研究。粒子群算法的應用越來越廣泛,劉道文[1]驗證了粒子群算法在提高搜索結果精度的有效性和在解決實際問題上的可行性;文獻[2-5]在不同領域應用粒子群算法用以求解優化問題。文章提出基于PSO算法進行改進,并用于軟件測試,與GA、PSO算法相比,更具便捷性、高效性。

1研究方法

1.1 PSO算法

PSO算法屬于智能優化算法的一種,主要依據人工生命以及演化的計算理論,通過信息共享以及協作以得到問題的最優解。設第一個粒子為aj={aj1…aj2…ajm},其速度表示為vj={vj1…vj2…vjm},種群當中最大值表示為nj={nj1…nj2…njm},同時在該種群中,全局極值表示為vq={vq1…vq2…vqm}。以當前最佳粒子為基本依據,粒子a的位置以及速度的改變如公式(1)及(2):

(1)

(2)

其中,由于在進行問題優化時通常采用全局搜索的策略,因此慣性權重需要依據迭代進行不斷地線性調整。權重調整如公式(3)。

(3)

公式(3)中,ωmax表示最大慣性權重,ωmin表示最小慣性權重,itermax表示迭代的最大次數,iter表示目前的迭代次數。

1.2 GA算法與PSO算法的比較

GA算法主要以自然界的生物進化機制作為啟發,演變為計算機算法。GA算法的終止條件有兩個,一是最優解已經求得,二是在算法當中,已經預定義好對應的終止條件。

PSO算法主要是以群體優化算法為依據的,模擬的是鳥類的覓食以及飛行等行為,通過個體之間的互相配合完成既定目標,使結果最優。設定目標搜索空間維度為l,一個種群由c個粒子形成,那么l維的第j個粒子則為ajl,飛行速度為vjl,當前粒子搜索過程中,其最優位置表示為njl,在整個粒子組當中,其最優位置表示為nql。各粒子的位置變換由下式決定。

(4)

(5)

上式中,加速常數用正數h1和h2表示,k1和k2為分布在[0,1]當中的任意隨機數,s表示對應的慣性因子,當s比較小時,通常用于求解空間小范圍內的搜索,當s比較大時,在相對大的范圍內搜索更加適用。維度位置上,其變化范圍是l(1≤l≤L),kd維區間為[almin,almax],速度對應的變化區間為[vlmin,vlmax],當迭代的速度或者位置超出邊界值時,取對應的邊界值。

同時由于對加速常數進行了約束并需要判定相應的粒子密度,因此在粒子分支路徑中引入相應的路徑謂語和路徑嵌套。路徑謂語的權重系數表示為公式(6):

(6)

公式(6)中,dj表示迭代至第j代時的加速常數。

路徑嵌套的權重系數表示為公式(7):

(7)

公式(7)中,pj表示第j個粒子路徑當前的深度,pmin表示該粒子路徑中的最小深度,pmax表示該粒子路徑中的最大深度。

由路徑謂語以及路徑嵌套可以推導出粒子群算法對應的適應度函數,如公式(8)。

(8)

PSO算法的終止條件有兩個,一是在粒子群搜索的過程當中,達到其最優位置對應最小的自適應的閾值,二是達到了最優問題搜索迭代次數的最大值。

在以上算法當中,最優位置的最優解通常對應的是整個粒子群,因此該算法也稱作全局粒子群優化算法,同時當最優位置的求解只對應某部分粒子群時,被稱為局部粒子群優化算法。二者相比,局部粒子群優化算法相對不容易產生局部最優的問題,但是其收斂速度相比全局優化更慢;全局粒子群優化算法具有更快的優化速度,但是容易產生局部最優的問題。

1.3基于PSO算法的軟件自動化測試方法

文章在PSO算法的基礎上,對算法做出改進。公式(2)中,h1和h2作為粒子對應的加速常數,表示在粒子群當中各粒子交互與傳遞信息的能力。加速常數在人為取值時,無法精確的符合粒子群在運行過程中的實際情況。針對這一情況,對h1和h2這兩個加速常數進行約束,如公式(9)和公式(10)。

(9)

(10)

在進行加速常數的約束之后,可以使PSO算法獲得更強的執行度,但過早收斂的問題仍然有幾率發生。當出現粒子聚類(即:多個粒子執行適應度函數時得到十分接近的結果)時,此時算法同時判定結果‘最佳’,那么就容易出現過早收斂的情況。因此,通過對粒子密度做出判斷的方式,分辨粒子群是過早收斂還是確實達到收斂界限。設第j個粒子的適應度函數為Sj,當粒子群迭代到當前次數時,平均適應度可以通過公式(11)求解。

(11)

其中,總的迭代次數為N,由求得的平均適應度,可以對判定粒子密度的函數進行推導,如公式(12):

(12)

粒子密度的判定函數在每次迭代完成后執行,并對ρ值進行判定,當ρ值過小時,粒子群算法容易出現過早收斂的情況,算法進行下一次迭代,不進行收斂。

軟件自動化測試方法將測試用例中的元素表達為向量a的元素,首先生成測試數據,然后通過軟件自動化測試算法對測試數據的最優解進行搜索,并使自適應值最大。

2測試結果分析

2.1測試用例

求解問題質量的好壞與否,通過適應度函數進行判別。因此,適應度函數需要具有結合實際問題的合理結構。對于適應度的評估,需要依靠程序路徑對應的分支謂詞,既需要考慮到分支謂詞對應的特性,同時需要使用到程序插樁。

程序插樁以及分支函數,可以通過以下示例進行說明。下列為等邊三角形的判別函數,通過C語言進行實現。

voidEquTri (int a,int b,int c)

{if(((a+b+c)&&((b+c)>a)&&((a+c)>b))

if((a>0&&a<100)&&(b>0&&b<100)&&(c>0&&c<100))

if((a==b)&&(b==c))

printf(“等邊三角形”)

else

printf(“不是等邊三角形”)

2.2實驗結果分析

通過實驗,對GA算法以及改進PSO算法在進行等邊三角形對應的判斷函數進行最優解的求解過程進行對比。表1中,對GA算法以及PSO算法當粒子種群或者粒子數在100~280區間內時,其迭代時間以及迭代次數的最優解做出表征。

表1 使用改進粒子群算法與遺傳算法生成等邊三角形實驗數據的迭代時間和次數

同時,在多次實驗的過程中,對可能出現路徑覆蓋率進行統計分析,在覆蓋率比較中,結合傳統粒子群算法進行對比,結果如圖1所示。

圖1 不同算法路徑覆蓋率比較

圖1中,結合粒子群算法或者遺傳算法的測試方式所得結果較接近,其路徑覆蓋率處于40~50%左右,改進的粒子群算法能夠保證路徑覆蓋率達到80%左右。也就是說,改進的粒子群算法對可能出現的路徑覆蓋率更高,在軟件測試的過程中,更加可靠和全面。

算法的迭代次數表明了算法是否高效,結合傳統粒子群算法對不同算法的迭代次數進行比較,結果如圖2所示。

圖2 不同算法的迭代次數比較

圖2中,遺傳算法在達到收斂時所需要的迭代次數平均在27次左右,傳統粒子群算法在達到收斂時所需要的平均迭代次數在32次左右,改進粒子群算法在達到收斂時所需要的平均迭代次數在30次左右。三種算法達到收斂時需要的迭代次數相對接近。結合圖1和圖2,改進粒子群算法在收斂速度與其他兩種算法大致相同的情況下,具有更好的路徑覆蓋率,能夠更為精確和全面的進行軟件測試。

在軟件測試的自動化運行以及可靠性運行上,只有保證測試算法有效、準確,才能夠保證軟件質量更為可靠,同時保證測試數據分析合理快速。生成更為精確明了的測試數據,是軟件測試最有效的保障?;赑SO算法改進的軟件自動測試方法,與GA算法相比,更加簡潔高效,同時在系統設置當中,對參數進行了進一步的優化,使得參數調整更少,更加易于實現。

3結論

以人工智能技術為前提,以PSO算法為基礎依據改進后的智能算法,能夠在軟件測試,數據生成的過程當中,起到更為高效和精確的效果。實驗結果表明,該方法切實可行,在軟件可靠性自動測試的過程中更為適合。

猜你喜歡
軟件測試適應度次數
改進的自適應復制、交叉和突變遺傳算法
機場航站樓年雷擊次數計算
2020年,我國汽車召回次數同比減少10.8%,召回數量同比增長3.9%
一類無界算子的二次數值域和譜
基于OBE的軟件測試課程教學改革探索
EXCEL和VBA實現軟件測試記錄管理
關于軟件測試技術應用與發展趨勢研究
依據“次數”求概率
軟件測試工程化模型及應用研究
基于空調導風板成型工藝的Kriging模型適應度研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合