999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于神經網絡的回歸測試用例優化研究

2015-10-22 21:08:22黃偉楊金鳳
現代電子技術 2015年19期

黃偉 楊金鳳

摘 要: 回歸測試是指修改了源代碼后,重新進行測試以確認已發現的缺陷是否修復和檢測修改是否引入了新的錯誤或導致其他代碼產生錯誤,在測試過程中占有很大的工作量比重。通過分析神經網絡的基本原理,并將BP算法的思想引入到回歸測試的用例集選取中,介紹了回歸測試用例包選取的算法,通過樣本訓練,篩選出代碼改動后可能影響到的功能,從而可以篩選出優先級別較高的用例。最后,通過測試實踐的積累,總結了一套高效易行的回歸測試策略。

關鍵詞: 回歸測試; 測試用例; 神經網絡; BP網絡

中圖分類號: TN711?34 文獻標識碼: A 文章編號: 1004?373X(2015)19?0114?03

Abstract: Regression testing means after modifying the source code, re?testing to confirm whether the discovered defect is repaired, and whether detection and modification have brought in a new bug or caused the errors in other codes which possesses a large proportion of the workload during testing procedure. The fundamental principle of neural network is analyzed, and the thought of BP algorithm is introduced into the case set selection of regression testing. The algorithm to select regression testing case package is presented. The functions which may be influenced by code modification are screened out by samples training, and the higher priority use case can be screened out. A set of regression testing strategy with high efficient and easy operation was summed up through the accumulation of testing practice.

Keywords: regression testing; testing case; neural network; BP network

0 引 言

軟件分析,設計過程中難免有各種各樣的錯誤,需要通過測試查找錯誤,以保證軟件的質量。軟件測試是由人工或計算機來執行或評價軟件的過程,驗證軟件是否滿足規定的需求或識別期望的結果和實際結果之間有無差別。大量統計資料表明,軟件測試工作量往往占軟件開發總量的40%以上。而回歸測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,軟件開發的各個階段都會進行多次回歸測試。在漸進和快速迭代開發中,新版本的連續發布使回歸測試變得更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。因此,研究回歸測試方法,盡可能地將軟件存在的問題找出來,對保證軟件質量和提升測試工作效率都是非常有意義的。

1 相關工作

1.1 回歸測試

回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。對于一個軟件開發項目來說,項目的測試組在實施測試的過程中會將所開發的測試用例保存到“測試用例庫”中,并對其進行維護和管理。當得到一個軟件的基線版本時,用于基線版本測試的所有測試用例就形成了基線測試用例庫。在需要進行回歸測試時,就可以根據所選擇的回歸測試策略,從基線測試用例庫中提取合適的測試用例組成回歸測試包,通過運行回歸測試包實現回歸測試。

在軟件生命周期中,即使一個得到良好維護的測試用例庫也可能變得相當大,這使每次回歸測試都重新運行完整的測試包變得不切實際。一個完全的回歸測試包括每個基線測試用例,時間和成本約束可能阻礙運行這樣一個測試,有時測試工作不得不選擇一個縮減的回歸測試包來完成回歸測試。

1.2 相關技術的研究

測試用例的優化技術旨在以小的運行代價盡可能多地發現系統Bug。假設測試用例是能發現缺陷的;測試用例的運行效率是一樣的。測試用例的集合的選取不僅是減少用例的數目,降低用例的執行代價,也需要考慮測試覆蓋能力,即缺陷發現能力。在測試用例選擇優化的問題上,已有很多文獻對此進行了研究,如配對測試法[1]、關系樹模型[2]、蟻群模擬退火算法[3]及一些其他新的理論和方法[4?7]。

2 回歸測試用例集生成方法

2.1 基本原理

神經網絡是通過對人腦的基本單元——神經元的建模和聯接,探索模擬人腦神經系統功能的模型,并研制一種具有學習、聯想、記憶和模式識別等智能信息處理功能的人工系統。

神經網絡的一個重要特性是它能夠從環境中學習,并把學習的結果分布存儲于網絡的突觸連接中。神經網絡的學習是一個過程,在其所處環境的激勵下,相繼給網絡輸入一些樣本模式,并按照一定的規則(學習算法)調整網絡各層的權值矩陣,待網絡各層權值都收斂到一定值,學習過程結束,從而以新的方式響應環境。

2.2 BP神經網絡

Back?Propagation Network,由于其權值的調整采用反向傳播(Back Propagation)的學習算法,因此被稱為BP網絡。網絡中心思想是梯度下降法,通過梯度搜索技術,使網絡實際輸出值與期望輸出值的誤差均方值最小。網絡的學習過程是一種誤差邊向后傳播邊修正權系數的過程。一般分三層:輸入層(Input Layer),隱層(Hide Layer),輸出層(Out Layer),也可以有2層或更多個隱層。層與層之間采用全互聯方式,同一層單元之間不存在相互連接,如圖1所示。endprint

由于神經網絡具有自學習、自組織和并行處理等特征,并具有很強的容錯能力和聯想能力,因此,神經網絡具有模式識別能力。在神經網絡識別中,根據標準的輸入輸出模式對,采用神經網絡學習算法,以標準的模式作為學習樣本進行訓練,通過學習調整神經網絡的連接權值。當訓練滿足要求后,得到知識庫,如圖2所示。

BP算法的具體步驟如下:

(1) 用小的隨機數對每一層的權值[W]初始化,以保證網絡不被大的加權輸入飽和;

(2) 計算網絡各層輸出矢量以及網絡誤差[E;]

(3) 計算各層反傳的誤差變化并計算各層權值的修正值以及新權值;

(4) 再次計算權值修正后誤差的平方和;

(5) 檢查誤差是否小于給定誤差,若是,訓練結束;否則繼續。

輸入信號[Xi]通過中間節點(隱藏層節點)作用于輸出節點,經過非線性變換,產生輸出信號[Yk,]網絡訓練的每個樣本包括輸入向量[X]和期望輸出量[t](類別),網絡輸出值[Y]和期望輸出值(真值)[t]之間的偏差,通過調整輸入節點與隱藏層節點的連接強度取值和隱藏層節點與輸出節點之間的連接強度以及閾值,使誤差沿梯度的方向下降,經過反復學習訓練,確定與最小誤差項對應的網絡參數(權值和閾值),訓練即告停止。學習樣本的數量和質量影響學習效果和學習速度。

為了訓練一個BP網絡,需要計算網絡加權輸入矢量以及網絡輸出和誤差矢量,然后求得誤差平方和。當所訓練矢量的誤差平方和小于誤差目標,訓練則停止;否則在輸出層計算誤差變化,且采用反向傳播學習規則調整權值,并重復此過程。當網絡完成訓練后,對網絡輸入一個不是訓練集合中的矢量,網絡將給出輸出結果。

2.3 回歸測試用例包選取

基于全量的測試用例庫,回歸測試包的選擇策略可遵循下述基本算法進行:

(1) 識別出軟件中被修改的部分。

(2) 從原基線測試用例庫[T]中,排除所有不再適用的測試用例,確定那些對新的軟件版本依然有效的測試用例,其結果是建立一個新的基線測試用例庫[T0。]

(3) 依據一定的策略從[T0]中選擇測試用例測試被修改的軟件。

(4) 如果必要,生成新的測試用例集[T1,]用于測試[T0]無法充分測試的軟件部分。

(5) 用[T1]執行修改后的軟件。

在上述步驟中,第(2)和第(3)步測試驗證修改是否破壞了現有的功能,第(4)和第(5)步測試驗證修改工作本身。第(3)步中,將神經網絡知識結合到測試領域,通過對樣本的學習,確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。

其主要思想為:對于[q]個輸入學習樣本:[P1,P2,…,Pq,]已知與其對應的輸出樣本為:[T1,T2,…,Tq。]通過網絡的實際輸出[A1,A2,…,Aq]與目標矢量[T1,T2,…,Tq]之間的誤差來修改其權值,使[Al (l=1,2,…,q)]與期望的[Tl]盡可能地接近,使網絡輸出層的誤差平方和達到最小。

3 回歸測試實踐的優化

在項目測試過程中,不僅需要應用高新的測試技術,也要從宏觀上制定可行的測試策略,解決在有限的時間中使測試覆蓋率最優化。本文從項目實踐角度出發,提出以下的回歸測試策略:

(1) 對所有已修復Bug進行驗證;

(2) 對新增功能進行全量重點測試;

(3) 對原有功能,按優先級進行測試。基于一定的風險標準從基線測試用例庫中選擇回歸測試包。首先運行最重要、關鍵和可疑的測試,而跳過那些非關鍵、優先級別低或者高穩定的測試用例,這些用例即便可能測試到缺陷,這些缺陷的嚴重性也較低,不影響系統的功能。一般而言,測試從主要特征到次要特征。

(4) 對修復的Bug可能會引入新的Bug的功能模塊重點測試,可采用本文介紹的神經網絡進行樣本訓練和用例篩選。將回歸測試局限于被改變的模塊和它的接口上。通常,一個回歸錯誤一定涉及一個新的、修改的或刪除的代碼段。在允許的條件下,回歸測試盡可能覆蓋受到影響的部分。

(5) 如果情況允許,測試全部用例的策略是最安全的策略。但已經運行過許多次的回歸測試不太可能揭示新的錯誤,而且很多時候,由于時間、人員、設備和經費的原因,不允許選擇再測試全部用例的回歸測試策略,此時,可以選擇適當的策略進行縮減的回歸測試。

4 結 語

將神經網絡知識引入到測試領域是一個比較新的研究,本文就此方向進行了研究,并給出了實例說明。然而,BP神經網絡需要大量的樣本數據用來訓練和測試,當樣本數量不夠時,預測的誤偏差可能會較大,回歸測試開始時,由于數據樣本不足,可能會存在預測的偏差,所以下一步的研究方向將是如何克服這一問題。

參考文獻

[1] 廖劍鋒,蔡賢濤.組合測試中用例集的選擇策略[J].計算機工程與應用,2012,48(11):65?70.

[2] 鈕鑫濤,聶長海,CHAN Alvin.組合測試故障定位的關系樹模型[J].計算機學報,2014,37(12):2505?2518.

[3] 聶長海,徐寶文,史亮.一種基于組合測試的軟件故障診斷方法[J].東南大學學報:自然科學版,2003,33(6):681?684.

[4] 徐寶文,聶長海,史亮,等.一種基于組合測試的軟件故障調試方法[J].計算機學報,2006,29(1):132?138.

[5] YILMAZ C. Covering arrays for efficient fault characterization in complex configuration space [J]. IEEE Transaction on Software Engineering, 2006, 32(1): 20?34.

[6] 鄭燕妮,李志蜀,李奇.蟻群模擬退火算法在測試用例約簡中的應用[J].計算機工程,2009,35(2):197?199.

[7] 于秀山,于洪敏.軟件測試新技術與實踐[M].北京:電子工業出版社,2006.endprint

主站蜘蛛池模板: 中文字幕乱码中文乱码51精品| 91国语视频| 欧美综合在线观看| 国产精品福利尤物youwu| 国产精品亚洲天堂| 免费又爽又刺激高潮网址| yjizz视频最新网站在线| 不卡网亚洲无码| 免费一看一级毛片| 色香蕉影院| 国产爽爽视频| 久久综合结合久久狠狠狠97色| 亚洲精品黄| 一级毛片在线播放| 久久综合九九亚洲一区| 国产精品污视频| 精品一区国产精品| 婷婷五月在线| av尤物免费在线观看| 欧美a在线看| 国产性生大片免费观看性欧美| 国产在线一区二区视频| 国产黑人在线| 精品无码一区二区在线观看| 91精品国产一区| 亚洲熟妇AV日韩熟妇在线| 国产97区一区二区三区无码| 欧美一级特黄aaaaaa在线看片| 国产va在线观看免费| 国产91线观看| 2022精品国偷自产免费观看| 亚洲国产中文在线二区三区免| 久久久久国产精品嫩草影院| 四虎精品黑人视频| 亚洲AV无码一二区三区在线播放| 国产成人精品18| 欧美成人亚洲综合精品欧美激情| 国产99视频在线| 婷婷成人综合| 亚洲欧美成aⅴ人在线观看| 日韩无码白| 国产精品第三页在线看| 日本亚洲最大的色成网站www| 欧美一区二区自偷自拍视频| 久久亚洲天堂| 亚洲综合片| 在线亚洲精品自拍| 亚洲h视频在线| 91丝袜美腿高跟国产极品老师| 在线国产欧美| 国产成人AV综合久久| 国产欧美视频在线观看| 亚洲美女一级毛片| 国产在线精彩视频论坛| 久久特级毛片| v天堂中文在线| 国产欧美视频在线| 2021最新国产精品网站| 久久a级片| 中文字幕1区2区| 97精品久久久大香线焦| 青草精品视频| 操国产美女| 国产成人综合久久精品尤物| 欧美日韩激情| 欧美日韩国产精品va| 亚洲欧美在线看片AI| 亚洲视频欧美不卡| 中文字幕人妻无码系列第三区| 国产香蕉97碰碰视频VA碰碰看| 18禁色诱爆乳网站| 自拍欧美亚洲| 中文字幕乱码二三区免费| 亚洲IV视频免费在线光看| 国产h视频免费观看| 国产精品99在线观看| 国产特级毛片| 成人国产三级在线播放| 国产美女视频黄a视频全免费网站| 日韩欧美中文在线| 欧美一级高清片欧美国产欧美| 欧美丝袜高跟鞋一区二区|