李龍澍,郭紫夢
(安徽大學 計算機科學與技術(shù)學院,合肥 230601)
伴隨軟件應(yīng)用領(lǐng)域和軟件規(guī)模不停的擴展和增大,軟件的質(zhì)量顯得愈發(fā)重要.軟件測試是保障軟件質(zhì)量的關(guān)鍵技術(shù)措施,通常從始至終貫穿著全部的軟件研發(fā)流程,軟件測試的重點就在于測試用例的編寫,測試用例的自動化便成為軟件測試的重中之重[1].路徑覆蓋測試是指在測試過程中,選擇有效且充足的測試數(shù)據(jù),除去不可能路徑,使得測試程序中的其余所有路徑都存在至少一條對應(yīng)的測試數(shù)據(jù).在現(xiàn)實測試中,眾多軟件測試問題都可以轉(zhuǎn)化為路徑覆蓋測試的數(shù)據(jù)生成問題.
S Xanthakis 等人在1992年,初次提出采取遺傳算法進化生成路徑覆蓋測試用例的思想,因此首創(chuàng)了一個嶄新的研究領(lǐng)域[2].自此后,遺傳算法便廣泛的運用在路徑覆蓋測試研究領(lǐng)域內(nèi),從而出現(xiàn)多量的相關(guān)研究文獻.夏春艷等人從穿過節(jié)點的困難情況出發(fā),用遺傳算法實現(xiàn)路徑覆蓋測試[3];丁蕊等人提出關(guān)鍵點路徑表示法,改進算法適應(yīng)度函數(shù),以快速生成路徑覆蓋測試數(shù)據(jù)[4];鞏敦衛(wèi)等人采用Huffman Coding提出一種新的多路徑覆蓋測試數(shù)據(jù)的進化方法[5];張巖等人從種群的搜索空間這一角度入手,提出一種新的路徑覆蓋測試進化技術(shù)[6];隨后,張巖等人在前文的基礎(chǔ)之上,再次提出測試數(shù)據(jù)具有不同貢獻度的思想,以參數(shù)來調(diào)節(jié)個體的適應(yīng)度值[7];Pachauri A等人提出一種擴展路徑前綴的策略,使用遺傳算法實現(xiàn)分支覆蓋[8];Peng Ye-ping 等人從路徑匹配的角度入手,實現(xiàn)了多條目標路徑同時覆蓋的測試進化方法[9];Jakkrit Kaewyotha等人用循環(huán)結(jié)構(gòu)尋找關(guān)鍵路徑,使用遺傳算法進行基本路徑測試[10];Ghiduk Ahmed S重新定義了遺傳算法中染色體、交叉和變異等概念,用以快速覆蓋路徑[12].這些方法在處理路徑覆蓋測試這一領(lǐng)域的問題時,多是選取遺傳算法,通過對算法的適應(yīng)度函數(shù)做些改進,或者交叉算子,變異算子的重定義及優(yōu)化,以此來提高算法生成測試數(shù)據(jù)的效率.但是,鑒于遺傳算法原理上的制約,導致在處理較為復雜的路徑覆蓋時,會出現(xiàn)計算量爆炸增長的現(xiàn)象[13],從而不能高效的處理路徑覆蓋測試問題.
在 2011 年,學者潘文超提出一種新的智能算法——果蠅優(yōu)化算法(Fruit Fly Optimization Algorithm,FOA),該算法是從果蠅搜尋食物行為中得出的一種全新的智能優(yōu)化算法[14],具有程序簡單,尋優(yōu)精度高等特點,最突出的優(yōu)點是該算法計算量小,復雜度低,在復雜問題下不會出現(xiàn)計算量爆炸增長的現(xiàn)象,已在求解數(shù)學函數(shù)極值、微調(diào)Z-SCORE模型系數(shù)、廣義回歸神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化與支持向量機參數(shù)優(yōu)化等多個領(lǐng)域得到廣泛應(yīng)用.同時該算法具有不穩(wěn)定性因素,存在著“早熟”現(xiàn)象,針對這一現(xiàn)象,眾多研究學者引入混沌策略來保持種群的多樣性,跳出局部最優(yōu),尋找全局最優(yōu).唐賢倫等人提出多目標混沌來優(yōu)化PSO算法[15];范九倫等人對Logistic方程做出一種分段處理,使得其具有優(yōu)異的非線性征象[16].Cheng YuHuei提出一種基于正弦的混沌策略,以此來調(diào)整PSO中的函數(shù)參數(shù)[17];Rezaee Jordehi A利用混沌搜索策略優(yōu)化蝙蝠群算法[18].這些針對“早熟”現(xiàn)象改進的研究,均取得了較好的效果.
在遺傳算法、果蠅優(yōu)化算法的優(yōu)缺點及文獻[16]的啟發(fā)下,本文提出一種基于混沌果蠅優(yōu)化算法(C-FOA)的路徑覆蓋測試用例生成方法:通過對算法進行建模及設(shè)計味道濃度判定函數(shù)(適應(yīng)度函數(shù)),使之運用于路徑覆蓋測試領(lǐng)域;同時對果蠅優(yōu)化算法每次迭代中的最優(yōu)個體加入混沌操作,使其跳出局部最優(yōu),快速地覆蓋目標路徑.最后,經(jīng)過仿真實驗,分析考驗了本文方法的有效性.
果蠅優(yōu)化算法,其原始想法來源于果蠅在找尋食物時的飛行行為.果蠅這一物種具有天然良好的感官知覺,在找尋食物時,首先會利用優(yōu)異的嗅覺能力搜尋食物的氣味,根據(jù)氣味調(diào)整飛行的方向,同時在距離食物位置較近時,再次利用敏感的視覺能力,兩者相結(jié)合以此來找到食物.根據(jù)這一行為特性,FOA算法基本思路如下[13]:
1)設(shè)置果蠅種群數(shù)目為 NP,最大迭代次數(shù)為 Maxgen,并任意給出果蠅種群二維開始位置為 X_axis,Y_axis.
2)給予果蠅個體運動的隨機方向與間隔,random value為運動的間隔.
Xi=X_axis+RandomValueYi=Y_axis+RandomValue
(1)
3)求出果蠅個體與原點的間隔Dist、味道濃度判定值S和味道濃度Smell.
(2)
4)得到該種群中Smell值最大的果蠅個體,記為當前最優(yōu)果蠅個體.
[bestSmellbestIndex]=max(Smell)
(3)
5)判斷當前最優(yōu)個體濃度值bestSmell是否高于上一次迭代的最優(yōu)味道濃度值,若是,執(zhí)行(6);若否,執(zhí)行(7).
6)保存下來當前最優(yōu)個體的味道濃度值與其二維坐標X、Y,其他果蠅個體則操縱方向飛往最優(yōu)位置.
Smellbest=bestSmellX_axis=X(bestIndex)Y_axis=Y(bestIndex)
(4)
7)判斷是否滿足結(jié)束條件,若是,則結(jié)束;反之,執(zhí)行2).
果蠅優(yōu)化算法的不足之處在于其穩(wěn)定性差,易出現(xiàn)“早熟”現(xiàn)象,從而導致收斂速率減緩,收斂精度降低,甚至于不能獲取全局最優(yōu)值.混沌是天然的一種普遍的非線性征象.表面上是紊亂無序的混沌變量,實際卻蘊含著一種深層的內(nèi)在聯(lián)系,眾多學者利用這種深層聯(lián)系進化搜索來達到相應(yīng)效果[19].在FOA中融入混沌策略,提升算法脫離局部最優(yōu)的能力,從而使得算法收斂的速率和精度得以提高.
本文使用Logistic映射的混沌方法.Logistic映射是探究混沌等繁雜體系行徑的一個典型模型.按照如下方程進行反復迭代:
Z(t+1)=μZ(t)(1-Z(t))
(5)
式(5)中μ為控制參量,當μ=4,0≤Z0≤1,Logistic 處于絕對混沌狀態(tài).對于任何指定的Z0∈[0,1],均可迭代出唯一明確的混沌序列Z1,Z2,Z3,….
基于混沌策略的果蠅優(yōu)化算法的基礎(chǔ)思想為:每次迭代過程中,對整個果蠅群體搜尋到的最優(yōu)個體A進行混沌擾動操作,將混沌序列中的最優(yōu)個體A*保留,以A和A*各自為中心的隨機搜索方向和距離范圍內(nèi)產(chǎn)生一半種群個體,并搜索到當前迭代過程中的最優(yōu)值,繼續(xù)進行混沌操作.融入混沌策略的進化算法可在迭代中不斷產(chǎn)生局部最優(yōu)點運動距離外的混沌個體,協(xié)助相應(yīng)算法跳出局部極值點,以此更快的搜尋到全局最優(yōu)值.
本小節(jié)通過一個實例來描述如何通過路徑覆蓋來達到測試的目的.首先,為了得到測試數(shù)據(jù)在程序中的運行走向,需要對程序加入插樁.如圖1所示,是一個插樁后的三角形分類程序,輸入一組數(shù)據(jù)(a,b,c),運行該程序得到標識變量序列,通過與目標路徑對應(yīng)的標識變量序列對比,來判斷是否覆蓋目標路徑.本文中使用的三角形程序借鑒了文獻[20]中的三角形程序,并對其稍加改動,此程序包含2個多分支選擇關(guān)系,以及4個選擇并列關(guān)系,剔除不可行路徑后,共有19條可行路徑,將分別作為需要覆蓋的目標路徑.
在路徑覆蓋測試中,利用果蠅優(yōu)化算法的收斂性迭代出最優(yōu)個體來達到測試目標.將每個果蠅個體作為一條測試數(shù)據(jù),設(shè)F0=(t1,t2,…,tm)表示路徑覆蓋測試中的目標路徑標識序列,于是該問題就轉(zhuǎn)化為尋找最優(yōu)向量(x1,x2,…,xm)覆蓋目標路徑標識序列,具體如下:
1)編碼
C-FOA算法采用整數(shù)編碼方式,每個整數(shù)代表相應(yīng)果蠅個體在該維度上的分量位置,其范圍為[min,max],其中min為該維度上的最小值,max為該維度上的最大值.
圖1 三角形分類插樁程序
Fig.1 Instrumentation program of triangular classification
2)果蠅個體
果蠅個體Gi(x1,x2,…,xj,…,xm),其中xj為整數(shù),表示第i個果蠅個體在第j維度上的分量位置,N個果蠅個體構(gòu)成果蠅種群,記為G={G1,G2,…,Gn}.
3)混沌果蠅個體
4)味道濃度函數(shù)
味道濃度函數(shù)代表著果蠅個體的效用,用Fitness表示,以此用來區(qū)分不同果蠅個體間的優(yōu)劣情況,進而挑選出最優(yōu)的那一個個體.本文的味道濃度函數(shù)依據(jù)路徑覆蓋測試適應(yīng)度函數(shù)的設(shè)計,分為層接近度(approach_level)和分支距離(branch_distance)兩部分相結(jié)合.
假設(shè)果蠅個體Gi穿越的路徑標識序列為F(Gi),目標測試路徑標識序列為F0.Gi的層接近度為approach_level(Gi),計算方法為:統(tǒng)計F(Gi)與F0相同標識變量的個數(shù),用其除以目標測試路徑標識序列F0的標識變量總數(shù)來計算,故層接近度值與個體的優(yōu)異程度成正比;分支距離為branch_distance(Gi),計算方法與Tracey方法相同[21].同時為防止分支距離過大,從而使層接近度失去引導作用,將其采取1.001-branch_distance(Gi)做出標準化操作,故分支距離值與個體的優(yōu)異程度成正比.
于是,個體Gi的味道濃度Fitness(Gi)可表示為:
Fitness(Gi)=approach_level(Gi)+1.001-branch_distance(Gi)
(6)
由式(6)可得,個體Gi的味道濃度Fitness(Gi)與個體的優(yōu)異程度成正比.
假設(shè)需要覆蓋的目標路徑為F0,C-FOA算法具體流程如下:
輸入:群體數(shù)量為 N,最大迭代次數(shù)為 Maxgen,混沌次數(shù)為K,并隨機果蠅群體m維開始位置X1_axis,X2_axis,…,Xm_axis
輸出:目標測試數(shù)據(jù)x1,x2,…,xm
Step1.給予果蠅個體Gi的隨機方向與間隔,xi=Xi_axis+randomvalue,(i=1,2,…,m);
Step2.運行插樁后的程序;
Step3.根據(jù)公式(6)計算每只果蠅的味道濃度值,并找出其中濃度最高的;
Step4.判斷當前最優(yōu)個體的濃度值是否高于上一次迭代的值,若是,保存最優(yōu)個體GBest(x1,x2,…,xm),若否,繼續(xù)下一步;
Step5.判斷是否覆蓋目標路徑F0,或達到最大迭代次數(shù),若是,跳轉(zhuǎn)Step 8,若否,繼續(xù)下一步;
Step7.給予個體GBest*和GBest的隨機方向與間隔,且分別對GBest*和GBest給予一半種群數(shù)目的個體,跳轉(zhuǎn)Step 2;
Step8.終止種群的進化,保存并輸出相應(yīng)的測試結(jié)果.
C-FOA算法過程對應(yīng)的流程圖如圖2所示.
圖2 算法流程圖Fig.2 Algorithm flowchart
為了防止混沌策略太過干擾最優(yōu)值的尋找,同時也為了保持FOA計算量小的優(yōu)勢,根據(jù)情況對混沌次數(shù)做出了恰當?shù)恼{(diào)整,即每兩個周期添加一次混沌干擾.即使算法在未添加混沌的周期內(nèi)出現(xiàn)“早熟”征兆,隨后的混沌干擾便會迅速的使算法脫離局部極值.
為了確定本文方法的實際可操作性及有效性,選擇 3 個基準程序進行考驗.將本文方法(C-FOA)與同類方法(即GA方法、ACO方法、FOA方法、及文獻[11]中改進的GA方法)在同樣的被測程序上實驗.每組實驗結(jié)果都將與同類方法的結(jié)果進行比較分析.
為了降低隨機性的誤差,5種方法的選擇依據(jù)均是使用分支距離和層接近度相結(jié)合作為適應(yīng)度函數(shù)(即味道濃度函數(shù)),并且均選取相同的參數(shù)設(shè)置進化生成測試數(shù)據(jù).同時,以生成覆蓋目標路徑的測試數(shù)據(jù)或達到最大迭代次數(shù)作為算法運行的終止條件,針對不同程序每種情況獨立運行 20 次后取其平均值.與其對比,可以更好地驗證本文方法生成測試數(shù)據(jù)的效率.
共進行了兩組實驗,第一組為在不同迭代次數(shù)下的覆蓋率;第二組為找到覆蓋目標路徑測試數(shù)據(jù)的評價次數(shù)與運行時間.實驗條件:Windows 7 操作系統(tǒng),MyEclipse 10仿真環(huán)境,計算機主頻 2.80GHz,內(nèi)存4GB.
表1 被測程序的基本信息
Table 1 Basic information of tested programs
程序分支結(jié)構(gòu)三個數(shù)排序3個選擇并列關(guān)系三角形分類2個多分支選擇結(jié)構(gòu),4個選擇并列關(guān)系冒泡程序 2層循環(huán)嵌套,內(nèi)層嵌套含有1個選擇結(jié)構(gòu)輸入分量個數(shù)目標路徑數(shù)代碼行數(shù)插樁節(jié)點數(shù)37183319276434246
實驗1.不同迭代次數(shù)下的覆蓋率
程序輸入變量取值范圍為 0-1023 之間的整數(shù),種群大小為 50.對三個基準程序,分別在限定迭代次數(shù)為1、50、100、150、200的條件下,對于所有目標路徑進行覆蓋測試,得到相應(yīng)的覆蓋率,如圖3-圖5.
圖3 三個數(shù)排序覆蓋率Fig.3 Coverage of ranking of three numbers
由圖3-圖5可得:
1)從遺傳算法、蟻群算法和果蠅優(yōu)化算法的對比可以看出,在相同環(huán)境下,FOA的覆蓋率在多數(shù)情況下是高于GA和ACO的,說明FOA方法應(yīng)用在路徑覆蓋測試領(lǐng)域內(nèi)是可行的.
圖4 三角形分類覆蓋率Fig.4 Coverage of triangular classification
2)在三個基準程序中,本文方法的覆蓋率明顯高于另外四種方法,特別是,在未達到完全覆蓋時,本文方法具有更高的覆蓋率;在均能達到完全覆蓋時,本文方法具有更快的覆蓋速度.綜合以上,本文方法生成測試數(shù)據(jù)的效率高于同類方法.
圖5 冒泡排序覆蓋率Fig.5 Coverage of bubble sort
實驗2.覆蓋目標路徑下的評價次數(shù)與運行時間
程序輸入變量取值范圍為 0-127 之間的整數(shù),種群大小為 50.對三個基準程序進行所有目標路徑的覆蓋測試,得到相應(yīng)的評價次數(shù)與運行時間.若評價次數(shù)超過1000,即認為該路徑的測試數(shù)據(jù)尋找失敗.具體結(jié)果如表2.
表2 覆蓋全部目標路徑下的評價次數(shù)與運行時間
Table 2 Evaluation times and runtime with all the target paths covered
測試函數(shù)GAACO評價次數(shù)運行時間(S)覆蓋率(%)評價次數(shù)運行時間(S)覆蓋率(%)三個數(shù)排序29.330.99510021.670.898100三角形分類495.6516.45694.74195.829.313100冒泡排序 246.439.399100149.146.298100測試函數(shù)FOA文獻[11]的GA評價次數(shù)運行時間(S)覆蓋率(%)評價次數(shù)運行時間(S)覆蓋率(%)三個數(shù)排序21.480.72710011.630.725100三角形分類187.846.37910076.104.744100冒泡排序 133.174.52210097.126.054100測試函數(shù)C?FOA評價次數(shù)運行時間(S)覆蓋率(%)三個數(shù)排序9.750.659100三角形分類54.263.682100冒泡排序 92.533.142100
由表2可以得到:
1)從評價次數(shù)來看,在5種方法中,本文方法以最少的評價次數(shù)獲取了所有的測試數(shù)據(jù).如在三角形分類程序中,本文方法的評價次數(shù)為54.26,遺傳算法的評價次數(shù)為495.65,且未能全部覆蓋,蟻群算法的評價次數(shù)為195.82,果蠅算法的評價次數(shù)為187.84,文獻[11]中遺傳算法的評價次數(shù)為76.10.以上數(shù)據(jù)說明本文方法的性能優(yōu)于同類方法;
2)從運行時間來看,本文方法的運行時間明顯少于另外4種方法.特別是,隨著程序的復雜度增加,本文方法的優(yōu)勢更加明顯,這是因為,本文方法具有計算量小,復雜度低等優(yōu)勢,再次證明本文方法生成測試用例的效能優(yōu)于同類方法;
3)從覆蓋成功率來看,隨著目標路徑的增多以及路徑復雜程度的增加,本文方法的評價次數(shù)和運行時間也有所增加.但是本文方法仍能有效生成測試數(shù)據(jù).而且生成測試數(shù)據(jù)的成功率均可達到 100%,說明本文方法具有有效性.
通過以上的兩組實驗,本文方法充分考驗了 FOA 算法應(yīng)用在路徑覆蓋測試用例進化生成領(lǐng)域內(nèi)的可行性,并且考證了本文方法生成路徑覆蓋測試數(shù)據(jù)的有效性,提升了獲取測試用例的效率.
鑒于果蠅優(yōu)化算法和遺傳算法等智能算法同屬于一類算法,同時果蠅優(yōu)化算法具有計算量小,復雜度低,尋優(yōu)精度高等優(yōu)點,本文把果蠅優(yōu)化算法應(yīng)用到路徑覆蓋測試領(lǐng)域內(nèi),并針對果蠅優(yōu)化算法穩(wěn)定性差的缺點,對迭代過程中的最優(yōu)個體加入混沌策略,在保留優(yōu)秀個體的同時,增加種群多樣性,優(yōu)化全局搜索能力,加快算法收斂速度,有效提高了生成測試數(shù)據(jù)的效率.實驗結(jié)果表明,本文方法與同類方法相比生成測試數(shù)據(jù)的效率更高.
[1] Dong Yue-hua,Dai Yu-qian.Automatic software test data generation based on DPPSO[J].Journal of Chinese Computer Systems,2015,36(9):2015-2020.
[2] Xanthakis S,Ellis C,Skourlas C,et al.Application of genetic algorithms to software testing[C].Perry D,Jeffery R,Notkin D,eds.Proceedings of the 5th International Conference on Software Engineering and its Applications.Los Alamitos:IEEE,1992:625-636.
[3] Xia Chun-yan,Zhang Yan,Song Li.Evolutionary generation of test data for paths coverage based on node probability[J].Journal of Software,2016,27(4):802-813.
[4] Ding Rui,Dong Hong-Bin,Zhang Yan,et al.Fast automatic generation method for software testing data based on key-point path[J].Journal of Software,2016,27(4):814-827.
[5] Gong Dun-wei,Zhang Yan.Novel evolutionary generation approach to test data for multiple paths coverage[J].Acta Electronica Sinica,2010,38(6):1299-1304.
[6] Zhang Yan,Gong Dun-wei.Evolutionary generation of test data for path coverage based on automatic reduction of search space[J].Acta Electronica Sinica,2012,40(5):1011-1016.
[7] Zhang Yan,Gong Dun-wei.Evolutionary generation of test data for paths coverage based on scarce data capturing[J].Chinese Journal of Computers,2013,36(12):2429-2440.
[8] Pachauri A,Srivasatava G.Towards a parallel approach for test data generation for branch coverage with genetic algorithm using the extended path prefix strategy[C].International Conference on Computing for Sustainable Global Development.IEEE,2015:1786-1792.
[9] Peng Ye-ping,Zeng Bi.Software test data generation for multiple paths based on genetic algorithms[J].Applied Mechanics & Materials,2012,263-266:1969-1973.
[10] Jakkrit Kaewyotha,Wararat Songpan.Finding the critical path with loop structure for a basis path testing using genetic algorithm[M].Recent Advances in Information and Communication Technology 2015,Springer International Publishing,2015:41-52.
[11] You Feng,Zhao Rui-lian,Lv Shan-shan.Output domain based automatic test case generation[J].Journal of Computer Research and Development,2016(3):541-549.
[12] Ghiduk Ahmed S.Automatic generation of basis test paths using variable length genetic algorithm[J].Information Processing Letters,2014,114(6):304-316.
[13] Zhang Wei-xiang,Wei Bo,Du Hui-sen.Test case prioritization method based on genetic algorithm [J].Journal of Chinese Computer Systems,2015,36(9):1998-2002.
[14] Fan Wen-chao.Fruit fly optimization algorithm-a new evolutionary computation approach[M].Taiwan:Tsang Hai Publishing,2011.
[15] Tang Xian-lun,Zhou Wei,Zhang Heng,et al.Robot soccer defensive strategy based on multi-objective chaotic PSO[J].Journal of System Simulation,2014,26(1):51-61.
[16] Fan Jiu-lun,Zhang Xue-feng.Piecewise logistic chaotic map and its performance analysis [J].Acta Electronica Sinica,2009,37(4):720-725.
[17] Cheng Yu-huei.Evaluation of sine-based chaotic strategy for adapting inertia weight of particle swarm optimization[J].Lecture Notes in Engineering & Computer Science,2015,1(1):36-40.
[18] Rezaee Jordehi A.Chaotic bat swarm optimisation(CBSO)[J].Applied Soft Computing,2015,26(C):523-530.
[19] Chuang Li-yeh,Tsai Sheng-wei,Yang Cheng-hong.Improved binary particle swarm optimization using catfish effect for feature selection[J].Expert Systems with Applications,2011,38(10):12699-12707.
[20] Wu Chuan,Gong Dun-wei.Evolutionary generation of Test data for regression testing based on path correlation [J].Chinese Journal of Computers,2015(11):2247-2261.
[21] Zhang Yan.Theories and methods of evolutionary generation of test data for path coverage[D].Beijing:China University of Mining and Technology,2012.
附中文參考文獻:
[1] 董躍華,戴玉倩.一種改進PSO的軟件測試數(shù)據(jù)自動生成算法[J].小型微型計算機系統(tǒng),2015,36(9):2015-2020.
[3] 夏春艷,張 巖,宋 麗.基于節(jié)點概率的路徑覆蓋測試數(shù)據(jù)進化生成[J].軟件學報,2016,27(4):802-813.
[4] 丁 蕊,董紅斌,張 巖,等.基于關(guān)鍵點路徑的快速測試用例自動生成方法[J].軟件學報,2016,27(4):814-827.
[5] 鞏敦衛(wèi),張 巖.一種新的多路徑覆蓋測試數(shù)據(jù)進化生成方法[J].電子學報,2010,38(6):1299-1304.
[6] 張 巖,鞏敦衛(wèi).基于搜索空間自動縮減的路徑覆蓋測試數(shù)據(jù)進化生成[J].電子學報,2012,40(5):1011-1016.
[7] 張 巖,鞏敦衛(wèi).基于稀有數(shù)據(jù)撲捉的路徑覆蓋測試數(shù)據(jù)進化生成方法[J].計算機學報,2013,36(12):2429-2440.
[11] 尤 楓,趙瑞蓮,呂珊珊.基于輸出域的測試用例自動生成方法研究[J].計算機研究與發(fā)展,2016(3):541-549.
[13] 張衛(wèi)祥,魏 波,杜會森.一種基于遺傳算法的測試用例優(yōu)先排序方法[J].小型微型計算機系統(tǒng),2015,36(9):1998-2002.
[14] 潘文超.果蠅最佳化演算法—最新演化式計算技術(shù)[M].臺灣:滄海書局,2011.
[15] 唐賢倫,周 維,張 衡,等.一種基于多目標混沌 PSO 的機器人足球防守策略[J].系統(tǒng)仿真學報,2014,26(1):51-61.
[16] 范九倫,張雪鋒.分段Logistic混沌映射及其性能分析[J].電子學報,2009,37(4):720-725.
[20] 吳 川,鞏敦衛(wèi).基于路徑相關(guān)性的回歸測試數(shù)據(jù)進化生成[J].計算機學報,2015(11):2247-2261.
[21] 張 巖.路徑覆蓋測試數(shù)據(jù)進化生成理論與方法[D].北京:中國礦業(yè)大學,2012.