李華等
摘 要:計(jì)算機(jī)軟件測(cè)試的重要手段是測(cè)試用例的自動(dòng)生成,關(guān)鍵問(wèn)題是路徑搜索。遺傳算法技術(shù)是一種高效的搜索巡游算法,在軟件測(cè)試用例中廣泛應(yīng)用。將遺傳算法進(jìn)行優(yōu)化改進(jìn),使它有能力處理輸入的龐大數(shù)據(jù),均衡搜索能力,從而設(shè)計(jì)出最優(yōu)測(cè)試數(shù)據(jù)。
關(guān)鍵詞:遺傳算法 軟件測(cè)試 技術(shù)研究
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)03(b)-0050-01
軟件測(cè)試過(guò)程中,可以用搜索問(wèn)題的思想對(duì)測(cè)試數(shù)據(jù)的生成問(wèn)題進(jìn)行轉(zhuǎn)化。遺傳算法是美國(guó)學(xué)者提出的,是指通過(guò)對(duì)生物遺傳和進(jìn)化機(jī)制的模仿,對(duì)問(wèn)題進(jìn)行最優(yōu)化,它將遺傳基因中的某些行為,借鑒應(yīng)用到算法求解的過(guò)程中。作為一種高效的搜索尋優(yōu)算法,遺傳算法在解決現(xiàn)實(shí)中很多復(fù)雜問(wèn)題上起到了很大的作用。近些年,人們又嘗試在軟件測(cè)試中運(yùn)用遺傳算法,取得了一定的研究成果。但是在應(yīng)用過(guò)程中也存在很多缺陷,優(yōu)化遺傳算法在軟件測(cè)試方面的應(yīng)用是目前需要研究的重要課題。
1 基于遺傳算法的軟件測(cè)試用例優(yōu)化技術(shù)研究
1.1 遺傳算法技術(shù)介紹
遺傳算法產(chǎn)生于20世紀(jì)六七十年代,后來(lái),國(guó)外有科學(xué)家首次將遺傳算法應(yīng)用到機(jī)器學(xué)領(lǐng)域,并研制出分類(lèi)器系統(tǒng)。近些年,對(duì)遺傳算法的研究更多,作為一種簡(jiǎn)單、實(shí)用、高效的優(yōu)化技術(shù),得到迅速發(fā)展。
1.2 遺傳算法的應(yīng)用
遺傳算法的應(yīng)用領(lǐng)域比較廣泛,如自動(dòng)化工程中自適應(yīng)控制、車(chē)間調(diào)度、優(yōu)化設(shè)計(jì)等。遺傳算法主要包括可編碼設(shè)計(jì)、評(píng)價(jià)函數(shù)設(shè)計(jì)、選擇路徑、自適應(yīng)控制、計(jì)算機(jī)模擬等等。遺傳算法現(xiàn)已應(yīng)用于許多學(xué)科,目前已在生物科學(xué)術(shù)及計(jì)算機(jī)軟件工程等學(xué)科得到廣泛應(yīng)用,并且發(fā)展成為了一種綜合性技術(shù)。
1.3 遺傳算法在計(jì)算機(jī)軟件測(cè)試用例中的應(yīng)用
遺傳算法進(jìn)行軟件測(cè)試用例優(yōu)化的關(guān)鍵在于選擇恰當(dāng)?shù)脑u(píng)價(jià)函數(shù),用戶(hù)在設(shè)計(jì)評(píng)價(jià)函數(shù)時(shí)應(yīng)與求解問(wèn)題本身的要求相結(jié)合。我們知道軟件測(cè)試用例選擇的好壞直接影響測(cè)試結(jié)果,從而影響計(jì)算機(jī)軟件質(zhì)量。因此在軟件測(cè)試中對(duì)測(cè)試用例進(jìn)行優(yōu)化是重中這重,目前軟件測(cè)試用例優(yōu)化技術(shù)包括三種,一是測(cè)試用例序列化技術(shù)、測(cè)試用例最優(yōu)排序技術(shù)及測(cè)試用例集合最少技術(shù)。
2 遺傳算法與構(gòu)件化軟件測(cè)試技術(shù)相結(jié)合
軟件開(kāi)發(fā)是一個(gè)多人參與的復(fù)雜過(guò)程,在開(kāi)發(fā)中出現(xiàn)錯(cuò)誤的情況難以避免。隨著軟件需求的不斷增多和軟件規(guī)模的不斷擴(kuò)大,錯(cuò)誤發(fā)生的可能性也就越大,對(duì)軟件進(jìn)行有效測(cè)試的問(wèn)題也急需解決。在構(gòu)建和軟件測(cè)試中,需要利用改進(jìn)的算法來(lái)對(duì)最初生成的測(cè)試用例進(jìn)行優(yōu)化。遺傳算法從串集開(kāi)始搜索,覆蓋面大,利于全局擇優(yōu),同時(shí)具有基于領(lǐng)域交叉的交叉操作技術(shù),在實(shí)際操作中顯示了其獨(dú)特的優(yōu)勢(shì)。
2.1 構(gòu)件化軟件測(cè)試用例技術(shù)
目前的構(gòu)件化軟件測(cè)試用例生成技術(shù)是在傳統(tǒng)的軟件測(cè)試技術(shù)基礎(chǔ)上發(fā)展來(lái)的,相較于傳統(tǒng)技術(shù)而言,增設(shè)了對(duì)構(gòu)件源代碼不可見(jiàn)性問(wèn)題的研究,但是由于其自身的存在缺陷,也導(dǎo)致了一系列軟件測(cè)試問(wèn)題。在軟件測(cè)試中需要評(píng)判測(cè)試用例的有效性問(wèn)題,這就需要具體的軟件測(cè)試充分準(zhǔn)則。
測(cè)試準(zhǔn)則可以用一個(gè)定性的函數(shù)C(p,s,t)=true來(lái)表示。在這個(gè)公式中,p為代表程序、s代表規(guī)格說(shuō)明、t是測(cè)試集。函數(shù)結(jié)果為true時(shí),則意味著在程序p運(yùn)行的情況下,規(guī)格說(shuō)明s所產(chǎn)生的測(cè)試用例集t符合測(cè)試充分準(zhǔn)則。
2.2 構(gòu)件化軟件測(cè)試用例生成技術(shù)中應(yīng)用遺傳算法研究
在進(jìn)行搜索中,遺傳算法基本不需要利用外部信息,僅依據(jù)評(píng)價(jià)函數(shù),它用來(lái)判斷群體中的個(gè)體的優(yōu)劣程度的指標(biāo),因此,在利用遺傳算法進(jìn)行構(gòu)件化軟件測(cè)試中,關(guān)鍵是要選取恰當(dāng)?shù)脑u(píng)估函數(shù),進(jìn)而找到遺傳算法的最優(yōu)解。對(duì)于優(yōu)化的遺傳算法而言,不需要了解所需解決問(wèn)題的實(shí)質(zhì),問(wèn)題解決好壞的關(guān)鍵取決于適應(yīng)度函數(shù)的構(gòu)造是否合理。
對(duì)于構(gòu)件化軟件而言,構(gòu)造適度函數(shù)首先要對(duì)構(gòu)件化軟件的每個(gè)構(gòu)件建立標(biāo)記函數(shù),此標(biāo)記函數(shù)用作唯一的標(biāo)識(shí),并對(duì)相應(yīng)構(gòu)件加以識(shí)別。假設(shè)某構(gòu)件化軟件的構(gòu)件組成是m件,每個(gè)構(gòu)件接口為n個(gè),則每個(gè)構(gòu)件標(biāo)記函數(shù)可記為:
K1=f1(x1,x2,…,xn)
K2=f2(x1,x2,…,xn)
Km=fm(x1,x2,…,xn)
在構(gòu)建軟件結(jié)束處插入的適度函數(shù)為:
F=U(K1)+U(K2)+……+U(Km),其中,x>0。
3 軟件測(cè)試用例生成技術(shù)中應(yīng)用蟻群算法的研究
3.1 遺傳算法和蟻群算法
遺傳算法和蟻群算法均是模擬自然生物系統(tǒng)的仿生算法體系,是指通過(guò)正反饋、分布式協(xié)作來(lái)尋找最優(yōu)路徑,從而優(yōu)化生存狀態(tài),是一種仿生智能算法。遺傳算法和蟻群算法兩種算法間既有共同之處,又存在明顯差異。其相同點(diǎn)為兩種均屬概率型的全局優(yōu)化算法,具有組織性進(jìn)化型,均屬于智能控制算法等。但是,兩種算法也有很多不同之處,如算法原理和實(shí)現(xiàn)形式等方面。
遺傳算法和蟻群算法在科學(xué)研究中很多領(lǐng)域都有廣泛研究,但是在軟件測(cè)試方面研究較少,尤其是蟻群算法。如果將蟻群算法的思想融入遺傳算法之中,將兩種算法進(jìn)行優(yōu)勢(shì)互補(bǔ),合為遺傳蟻群算法,這對(duì)其在軟件測(cè)試方面的具有極大的研究?jī)r(jià)值。
3.2 改進(jìn)遺傳算法后測(cè)試用例自動(dòng)生成技術(shù)
基于遺傳蟻群算法的軟件測(cè)試用例自動(dòng)生成的方法,比單一的遺傳算法和蟻群算法更具優(yōu)勢(shì)。要充分發(fā)揮其優(yōu)勢(shì),需要對(duì)具體的遺傳蟻群核算方法進(jìn)行研究,不僅需要對(duì)模型方法進(jìn)行模型構(gòu)建,還要對(duì)適度函數(shù)進(jìn)行適當(dāng)改進(jìn)。具體的算法流程包括建立蟻群網(wǎng)、蟻群和控制參數(shù)的初始化設(shè)計(jì),隨后利用建構(gòu)的初始化網(wǎng)絡(luò)進(jìn)行信息的搜索,并根據(jù)螞蟻移動(dòng)規(guī)律更新信息,設(shè)計(jì)計(jì)算的最佳路徑,最后對(duì)信息的發(fā)揮作用進(jìn)行動(dòng)態(tài)控制,同時(shí)對(duì)路徑隨機(jī)變異進(jìn)行調(diào)控分析,最后找到最優(yōu)路徑。
遺傳蟻群算法中,對(duì)軟件測(cè)試數(shù)據(jù)生成,對(duì)參數(shù)編碼、信息、適度函數(shù)和螞蟻路徑都做出了很多改進(jìn),強(qiáng)化了混合算法的搜索能力。在軟件測(cè)試的具體應(yīng)用中取得了良好成效。
4 結(jié)語(yǔ)
綜上所述,軟件測(cè)試是軟件開(kāi)發(fā)利用工程的一個(gè)重要環(huán)節(jié),當(dāng)今社會(huì),軟件系統(tǒng)開(kāi)發(fā)規(guī)模不斷擴(kuò)大,軟件測(cè)試對(duì)軟件質(zhì)量檢測(cè)的意義重大。探索適合軟件測(cè)試的方法,對(duì)軟件的可行性與準(zhǔn)確性進(jìn)行科學(xué)有效測(cè)試,是當(dāng)今社會(huì)發(fā)展中探究解決的課題。在今后的研究中應(yīng)進(jìn)一步加大對(duì)遺傳蟻群算法應(yīng)用于軟件測(cè)試用例生成的研究,為軟件開(kāi)發(fā)提供科學(xué)參考。
參考文獻(xiàn)
[1] 祁金佺.直覺(jué)模糊遺傳算法在軟件測(cè)試中的應(yīng)用[J].自動(dòng)化與儀器儀表,2013,5(12):98-100.
[2] 苗亮亮.基于遺傳算法軟件測(cè)試用例自動(dòng)生成分析與研究[D].蘭州交通大學(xué),2013.