摘 要:對PSO優化算法進行改進,結合程序流程圖提出一種負載壓力測試用例自動生成方法。以一個找到成功路徑的粒子代表一個用戶操作,對重復的成功路徑進行統計。根據成功路徑和其次數生成測試數據。實驗表明該算法很好的模擬了用戶對被測軟件的使用過程。與基本的黑盒測試相比,該算法考慮了被測軟件程序流程圖,因此輸入的測試數據不再是獨立無關聯的,而是有一定的聯系,根據這些聯系可以更好地模擬用戶。
關鍵詞:軟件測試;算法;測試用例生成
1 概述
近年來,隨著軟件系統規模的擴大和復雜程度的提高,開發者和用戶面對的系統都變得越來越大。對軟件的重量要求也越來越高,不僅要求軟件的基本功能,而且要使軟件系統能夠承受大量的并發訪問。由于并發訪問量過大而造成系統響應延遲甚至癱瘓的例子有很多。如2008年奧運會訂票,和春運網上訂票由于訪問量過多而造成系統癱瘓。在這種情況下,為了驗證軟件系統性能而實施的負載壓力測試變得尤為重要。而在負載壓力測試中需要大批測試數據模擬用戶行為對軟件系統進行并發訪問。因此,在負載壓力測試中測試數據的生成是很重要的。
本文提出一種基于粒子群優化(PSO)和程序流程圖的負載壓力測試數據生成方法,并以銀行自動取款機的測試數據生成為例,生成負載壓力測試數據。實驗結果表明PSO算法結合程序流程圖適用于負載壓力測試數據的自動生成。該方法與一般的黑盒測試數據生成方法如[1]的方法比較,具有智能、高效率等特點,并且考慮了輸入數據之間的因果關系。
2 基本概念
軟件系統的負載壓力是指系統在某種指定軟件、硬件及網絡環境下承受的流量,例如并發用戶數、持續運行時間、數據量等。其中并發用戶數是負載壓力的重要指標。負載壓力測試是一種動態黑盒測試,常用在集成測試、系統測試和驗收測試階段。負載壓力測試需要虛擬大量用戶對系統進行測試,所以本文主要研究這些虛擬用戶對系統的操作,并根據這些操作等信息生成測試數據。
3 PSO算法
4 基于程序流程圖和PSO算法的測試數據生成算法
4.1 改進思想
由PSO算法可知:粒子是在一個空間內自由飛行,為了使PSO算法實現測試數據的自動生成,要將PSO算法改進。首先應該使粒子沿著程序流程圖飛行,如果遇到分支情況,應該提前設定每個分支的概率,粒子按照概率隨機選擇分支,當粒子到達指定的結束點時,粒子完成了一個成功的路徑。基于上述原理,我們可以讓M個粒子沿著程序流程圖飛行,其中粒子的速度都是一樣的,以找到終點為結束點,假設有N個粒子到達終點。
根據上面的改進,可以模擬N個用戶在流程圖上的正確操作流程,將N個粒子在流程圖上重復的路徑進行統計,假設有MK條不同的路徑,出現次數為count1、count2……countK。根據這些信息,生成測試數據。
4.2 概念
6 結束語
研究了PSO算法在負載壓力測試數據生成中的應用,從上面試驗可知,粒子群算法很好地模擬了用戶對被測軟件的操作,并且在分支選擇和路徑重復次數上也比較靈活,可以按照設置的概率模擬用戶選擇。本文的算法與一般的黑盒測試相比考慮了輸入數據的先后順序和因果關系;該算法只需測試人員提供被測程序的流程圖,與白盒測試相比具有簡單易行的特點。
參考文獻
[1]孫淑香,侯秀萍,蔡文濤.基于樹型模型的黑盒測試用例自動生成[J].計算機技術與發展,2009(2).
[2]李愛國,張艷麗.基于PSO的軟件結構測試數據自動生成方法[J].計算機工程,2008.
[3]孫家澤,王曙燕.基于改進DPSO的組合測試數據生成算法[J].計算機工程,2012(4).
[4]曹曉燕,邵定宏.基于改進PSO算法的測試數據自動生成研究[J].計算機工程與設計,2011.
作者簡介:胥洲(1989,3-),男,碩士,研究方向為軟件測試。