論文: 基於智慧優化演算法的測試資料生成綜述
緣由:
最近一直在看智慧演算法,然後進行了在測試函式上的實驗,遇到問題。
(1)測試函式 不是現實的問題,單純的在測試函式 上進行一遍遍的比較,看不到具體的用途, 他的結果在我看來反應的 只是一個指標值。 這些測試函式只是一種評價的 指標(自己雖測試函式理解的可能不是太好),綜合就是在智慧演算法的“多樣性”以及“收斂性”做一個評測, 就只是一個單純的評測指標。
(2)指標 不能代表問題得到了應用, 怎樣才能一步步 的去接近問題,就登陸CCF然後看了最近發表的論文。“基於智慧優化演算法的測試資料生成綜述”。 智慧演算法生成測試函式, 在通過對軟體設計的一些學習我知道在軟體設計中,測試有一個十分重要的角色,對於V模型的設計方法,會在不同的階段反覆的進行測試,若是能夠在一開始的時候測試 出問題,就可以在很大程度上保證專案的順利進行。
(3)我自身還是很瞭解智慧演算法的,資料懂一點,所以就想多瞭解,然後看看能不能做出具體的實驗,雖然這個可能已經不是熱點了,但是我覺得對於一直在bechmark的我,還是會推進我慢慢的去應用 智慧演算法。
通過這篇論文我希望獲得
(1)具體的智慧演算法生成測試資料的歷史,證明有人在用,以及有使用的價值
(2)具體的有沒有某個演算法的具體的 應用流程,看懂
(3)具體的實驗部分是通過什麼語言編寫以及使用什麼軟體等=--實驗基礎
(4)有沒有完備的一個演算法進行測試資料生成的虛擬碼,可以進行思路疏導
閱讀論文了解到的:
1.引言
(1)美國國家標準技術研究所(NIST)2002年的統計報告指出:通過軟體測試能夠減少由於軟體失效引起經濟損失
的三分之一
(2)基於搜尋的軟體工程(Search-Based Software Engineering,SBSE)於 2001由 Harman和 Jones首次提出,其基本思想是採用智慧優化演算法,以合理的計算代價求解一類能夠轉化為組合優化問題的軟體工程問題[2],於 2007 年被 IEEE 國際軟體工程大會(ICSE)確立為軟體工程未來發展的新方向.(專有名詞以及官文)
2. 基於GA的測試資料生成
(1)最早的:1992 年首次成功將 GA 應用於軟體測試資料生成中後,出現了大量的研究成果。1996年 Sthamer的博
士學位論文《The Automatic Generation of SoftwareTest Data Using Genetic Algorithms》是首篇將GA應用於測試資料生成的博士論文。(先應用然後研究的趨勢------> 博士論文在baidu以及IEEE Explore 沒有查到)
(2)田甜[14]在並行程式的測試資料生成中使用了 GA,較為詳細地研究了路徑覆蓋測試資料生成問題。
GA還被用於面向物件的測試資料生成[16]、軟體功能測試資料生成[17]及壓力測試資料生成[18]等方面
基於GA的面向路徑覆蓋測試資料生成
Ahmed等人[19]提出了一種基於GA的面向多路徑覆蓋測試資料生成方法,在該方法中將軟體測試資料生成問題轉化成多目標優化問題,利用 GA分別計算個體對不同目標的滿足程度,達到執行一次GA(達到什麼??達到每個目標的滿足程度嗎?人為設定滿足的閾值?),同時生成覆蓋多個目標路徑的測試資料的目的。姚香娟等人[20]認為Ahmed 等人將多路徑覆蓋測試資料生成問題轉化成單純的多目標優化問題是不合適的。因此,他們首先建立了多路徑覆蓋測試資料生成問題的數學模型,把多路徑覆蓋測試資料生成問題建模為包含多個目標函式的優化問題,使用多種群 GA求解,通過個體間資訊共享,提高了每個子種群的求解效率。
[14] 田甜 . 訊息傳遞並行程式測試資料進化生成理論與應用[D].江蘇徐州:中國礦業大學,2014.
[15] 戚榮志,王志堅,黃宜華,等.基於 Spark的並行化組合測試用例集生成方法[J].計算機學報,2018(6):1064-1079.
[16] Arcuri A,Yao X.Search based software testing of objectoriented containers[J].Information Sciences,2008,178(15):
3075-3095.
[17] Bühler O,Wegener J.Evolutionary functional testing[J].Computers & Operations Research,2008,35(10):3144-
3160.
[18] Briand L C,Labiche Y,Shousha M.Stress testing realtime systems with genetic algorithms[C]//Proceedings of
the 2005 Conference Genetic and Evolutionary Computation,GECCO2005,Washington DC,USA,2005:1021-1028.
[19] Ahmed M A,Hermadi I.GA-based multiple paths testdata generator[J].Computers & Operations Research,2008,
35(10):3107-3124.
[20] Yao X J,Gong D W.Genetic algorithm-based test datageneration for multiple paths via individual sharing[J].Computational Intelligence & Neuroscience,2014,38(6):1-12.
3. 基於PSO的測試資料生成
(1) 引述PSO公式,
(2)文章: 2007 年 Windisch 等人[27]運用完全學習PSO(Comprehensive Learning Particle Swarm Optimization,CL-PSO)演算法來代替 GA,進行分支覆蓋測試資料生成,實驗比較了兩種演算法在 13 個工業程式上的測試資料生成效率(好奇)
(3)Jia等人[31]開發了一個基於 PSO 的測試資料生成工具:PSODGT(沒找到),用於條件/判定覆蓋測試資料生成
(4)王令賽等人[36]為保持粒子的多樣性,增強演算法的全域性搜尋能力,利用奇異值分解預測種群進化方向,在其正交方向上生
成新的種群,並使用交替變數法 AVM(Alternating Variable Method)增強演算法的區域性搜尋能力,使全域性和區域性搜尋能力相協調
(怎麼做到的? 依據?? 這樣就可以了嗎? )
4.基於其他智慧優化演算法的測試資料生成
簡要的概述了一下HC,SA,ACO等
5. 基於智慧優化演算法的測試資料生成工具
7. 總結:
(1)適應函式作為智慧演算法結果評測的標準,和測試資料生成的品質優劣有直接的關係。適應度函式是基於智慧優化演算法的測試資料生成方法的核心和關鍵
(2)基於智慧優化演算法測試資料生成效率不高的另一個原因是:智慧優化演算法在搜尋過程存在隨機性,產生了大量冗餘的測試用例。如果能有效減少冗餘測試用例,將有利於測試資料生成效率的提高。
本文的感覺:
(1) 並沒有足夠的說明為什麼會使用智慧演算法進行測試資料生成,沒有對比原來的傳統的方法,感覺yi一竅不通
(2)沒有的流程說明,所以即使自己看完了,仍然不是太清楚是是怎麼樣的過程
(3) 目前現在的研究現狀是shen什麼樣子的?? 沒有ju具體的資料說明,比方說體現在: 每年you'有關論文發表的統計deng等等,以及那些智慧方法是比較多的??
所以說自己覺的不清楚是沒有看懂還是怎樣,並沒有一個思路框架在腦袋裡。 而且沒有對其進行相關的分類,只是單純de的將其按什麼智慧方法順序捋了一下。