摘 要:
隨著我國軟件開發(fā)規(guī)模的擴大,在當(dāng)前軟件工具開發(fā)過程中,軟件測試的難度也不斷增大,存在動態(tài)性、多變性的測試弊端,當(dāng)軟件產(chǎn)品推出時,對于其軟件測試實踐中,采取FDI算法,不僅可以有效找出軟件產(chǎn)品未知的隱藏缺陷,還可以提升軟件使用性能,提升軟件測試有效性。為此,淺析FDI算法在軟件測試實踐中的應(yīng)用。
關(guān)鍵詞:
軟件測試;FDI算法;算法應(yīng)用
中圖分類號:TB
文獻標(biāo)識碼:A
文章編號:16723198(2015)16021002
0 引言
采用FDI頻率差異積分算法,測試軟件中的數(shù)據(jù),并對軟件測量數(shù)據(jù)進行分析評價,不僅可以發(fā)現(xiàn)系統(tǒng)軟件內(nèi)的故障,還可以改進傳統(tǒng)的軟件測試方法。將FDI算法應(yīng)用到軟件測試中,可以降低軟件測試工作中對人的依賴性,降低對軟件程序人員的要求,具有實際應(yīng)用價值。以下對此做具體分析。
1 FDI算法
1.1 FDI算法原理介紹
對于FDI算法,其原理就針對程序運行中的謂詞,在謂詞錯誤運行、正確運行的過程之中,對于評估謂詞結(jié)果間差距的問題,就可以應(yīng)用模式差異的量化原則,只需在程序中具體測量出謂詞的錯誤相關(guān)度,就可以得到錯誤數(shù)。
1.2 FDI算法的公式
基于FDI算法,就是能夠?qū)浖械哪吵绦?,在進行軟件測試中,針對軟件程序運行中的謂詞,給與其多次進行了賦值,并應(yīng)用該謂詞描述、記錄軟件測試中的數(shù)據(jù),以謂詞描述測試用例程序被采用的真值率。對于軟件測試之中,軟件程序運行的過程中,程序謂詞假設(shè)是P,謂詞記錄成真次數(shù)以nt表示,謂詞記錄為假次數(shù),用nf來表示,則可以在軟件測試中,將謂詞當(dāng)成執(zhí)行程序的真值率。具體執(zhí)行過程如下公式中表示:
算法是遞推的,適用于多維隨機過程的估計,離散型算法適用于計算機處理;同樣在軟件測試中,可以針對多樣本情況,也可以用π(P)形式,表示一次程序執(zhí)行中謂詞的真值頻率。
2 軟件測試中FDI算法的應(yīng)用優(yōu)勢
在軟件開發(fā)過程中,軟件故障,不僅會嚴(yán)重影響軟件的調(diào)試進程,同時也會影響軟件在開發(fā)質(zhì)量,影響軟件產(chǎn)品發(fā)展。因此,對于當(dāng)前軟件產(chǎn)品測試方面中,應(yīng)用FDI算法,避免傳統(tǒng)人工測試定位故障的弊端,減輕工作量,降低對人的依賴性。對于軟件測試實踐中,采用FDI的頻率差異積分算法,有效提高軟件的測試效率,提升軟件質(zhì)量,為復(fù)雜軟件開發(fā)工作能夠帶來很大測試便利。在軟件測試中,應(yīng)用FDI頻率差異積分算法,以此來測試軟件中的數(shù)據(jù),并對軟件測量數(shù)據(jù)進行分析評價,不僅可以發(fā)現(xiàn)系統(tǒng)軟件內(nèi)的故障,還可以以此來改進傳統(tǒng)軟件的測試方法。并且,對于大型軟件開發(fā)程序以及復(fù)雜度高的軟件測試中,就可以設(shè)計出有技巧性的軟件測試策略,針對軟件程序故障給出有效測試用例,提升軟件測試的是實效性。
3 軟件測試中實踐應(yīng)用FDI算法
3.1 設(shè)計測試用例
首先需要設(shè)計測試用例,然后運行軟件程序,最后根據(jù)軟件程序的動態(tài)執(zhí)行信息和輸出結(jié)果進行軟件測試,實現(xiàn)故障定位。當(dāng)假設(shè)對于軟件開發(fā)中,需要測試軟件進程,如果該測試中所有軟件測試用例,可以用集合形式表示,此處以T表示用例的集合,集合Tf表示失敗測試用例,集合Tp表示成功用例,則在該項軟件測試實踐中,就可應(yīng)用f(X|θp)以及f(X|θf)的形式,表示Tf集合與Tp集合的真值率與概率密度。同時,對于該FDI算法軟件測試用例設(shè)計中,用f(X|θp)以及f(X|θf)的相差面積,描述出S(P)差異關(guān)鍵值。在基于FDI算法軟件測試,在測試用例的設(shè)計中,不僅可以提升軟件檢測效率,還可以盡量降低軟件故障。因為其中f(X|θp)與f(X|θf),并不符合實際的測試要求,因此,對于實際的軟件測試工作,可以應(yīng)用化整為零以及分段計算的方式,實現(xiàn)測試算法。
3.2 對比測試用例
將程序失敗運行和成功運行進行對比,從而發(fā)現(xiàn)軟件程序中,對于失敗運行程序,其存在哪些偏離點,找到偏離點,則其可能就是軟件測試過程中故障的所在位置。FDI算法變量值用于識別故障,當(dāng)這些變量超出指定范圍,F(xiàn)DI算法則會發(fā)出警告,設(shè)計基于FDI算法的軟件測試,估計狀態(tài)向量,只輸出估計需要;一個輸入輸出模型可以確定產(chǎn)量預(yù)測,估計實際輸出故障情況。如圖1為測試比對過程。
圖1 軟件測試比對
利用解析模型與可測信息,重建某一可測變量,然后由測試輸出與真實系統(tǒng)輸出差值,進行分析處理。在軟件測試中,當(dāng)前執(zhí)行全部測試程序用例后,記錄程序中出現(xiàn)謂詞P的真值率,如果真值率出現(xiàn)次數(shù)的較低,則用例執(zhí)行次數(shù),將會小于程序執(zhí)行的次數(shù)。
3.3 軟件測試程序仿真
基于軟件測試中,針對溫度控制軟件,應(yīng)用FDI算法進行軟件測試,其軟件實現(xiàn)中代碼如下所示:
toc
3.4 評估軟件測試結(jié)果
在進行軟件測試之中,可以應(yīng)用FDI算法,其得到的測試效果較為有效;在對軟件測試結(jié)果進行評估中,其FDI算法和CBI算法、MW測試算法、SOBER測試算法的結(jié)構(gòu)相同,均能夠為軟件測試提供計算功能。圖2是FDI算法軟件測試結(jié)果案例。
圖2 分析軟件測試結(jié)果
其中,淺色曲線輸出在25上下波動,且波動幅度遠遠小于觀測值(綠色曲線所示)的波動幅度,說明FDI算法能很好的估計當(dāng)前狀態(tài)值。隨著時間的推移,F(xiàn)DI算法的輸出越來越接近25,說明隨著遞推次數(shù)的增加,F(xiàn)DI算法的輸出會越來越接近真實的狀態(tài)值。在基于FDI算法的測試中,其得到的測試數(shù)據(jù)結(jié)果,在其根本上,則不會因為正態(tài)分布不同而受到影響,同時對算法中得出的面積差,則依然有計算效用。突破軟件測試中傳統(tǒng)算法的一些限制,還可以有效的解決軟件測試問題,簡化算法時間的復(fù)雜度,提高軟件測試效率。
4 結(jié)論
綜上所述,對于軟件測試實踐之中,應(yīng)用FDI頻率差異積分算法進行測試,這樣能夠有效提高當(dāng)前軟件測試工作效率,還能夠提高對軟件故障的定位準(zhǔn)確度,降低軟件維護的成本,提高軟件調(diào)試自動化,有效縮短軟件開發(fā)實踐,具有有效性與高效性。
參考文獻
[1]何清華,李樂奇,鄒湘伏.帶FDI算法的無人機組合導(dǎo)航姿態(tài)確定控制系統(tǒng)設(shè)計[J].飛機設(shè)計,2007,(01):4750.
[2]劉洪波,呂貴.軟件自動測試?yán)碚撛趫D象編輯軟件測試中的應(yīng)用[J].桂林電子工業(yè)學(xué)院學(xué)報,2012,(06).
[3]陳志宏.測試用例自動生成方法的研究與應(yīng)用[D].天津:天津大學(xué),2012,(02).
[4]何智杰.快速SVM訓(xùn)練算法研究及其高效參數(shù)選擇方案[D].廣州:華南理工大學(xué),2009,(06).
[5]鄭煒,李知隆,靳如一.基于頻率差異積分的故障定位算法研究[J].西北工業(yè)大學(xué)學(xué)報,2013,(06).