亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于神經(jīng)網(wǎng)絡(luò)的回歸測試用例優(yōu)化研究

        2015-10-22 21:08:22黃偉楊金鳳
        現(xiàn)代電子技術(shù) 2015年19期

        黃偉 楊金鳳

        摘 要: 回歸測試是指修改了源代碼后,重新進行測試以確認已發(fā)現(xiàn)的缺陷是否修復和檢測修改是否引入了新的錯誤或?qū)е缕渌a產(chǎn)生錯誤,在測試過程中占有很大的工作量比重。通過分析神經(jīng)網(wǎng)絡(luò)的基本原理,并將BP算法的思想引入到回歸測試的用例集選取中,介紹了回歸測試用例包選取的算法,通過樣本訓練,篩選出代碼改動后可能影響到的功能,從而可以篩選出優(yōu)先級別較高的用例。最后,通過測試實踐的積累,總結(jié)了一套高效易行的回歸測試策略。

        關(guān)鍵詞: 回歸測試; 測試用例; 神經(jīng)網(wǎng)絡(luò); BP網(wǎng)絡(luò)

        中圖分類號: 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 引 言

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

        1 相關(guān)工作

        1.1 回歸測試

        回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤。對于一個軟件開發(fā)項目來說,項目的測試組在實施測試的過程中會將所開發(fā)的測試用例保存到“測試用例庫”中,并對其進行維護和管理。當?shù)玫揭粋€軟件的基線版本時,用于基線版本測試的所有測試用例就形成了基線測試用例庫。在需要進行回歸測試時,就可以根據(jù)所選擇的回歸測試策略,從基線測試用例庫中提取合適的測試用例組成回歸測試包,通過運行回歸測試包實現(xiàn)回歸測試。

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

        1.2 相關(guān)技術(shù)的研究

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

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

        2.1 基本原理

        神經(jīng)網(wǎng)絡(luò)是通過對人腦的基本單元——神經(jīng)元的建模和聯(lián)接,探索模擬人腦神經(jīng)系統(tǒng)功能的模型,并研制一種具有學習、聯(lián)想、記憶和模式識別等智能信息處理功能的人工系統(tǒng)。

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

        2.2 BP神經(jīng)網(wǎng)絡(luò)

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

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

        BP算法的具體步驟如下:

        (1) 用小的隨機數(shù)對每一層的權(quán)值[W]初始化,以保證網(wǎng)絡(luò)不被大的加權(quán)輸入飽和;

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

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

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

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

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

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

        2.3 回歸測試用例包選取

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

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

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

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

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

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

        在上述步驟中,第(2)和第(3)步測試驗證修改是否破壞了現(xiàn)有的功能,第(4)和第(5)步測試驗證修改工作本身。第(3)步中,將神經(jīng)網(wǎng)絡(luò)知識結(jié)合到測試領(lǐng)域,通過對樣本的學習,確認修改沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤。

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

        3 回歸測試實踐的優(yōu)化

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

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

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

        (3) 對原有功能,按優(yōu)先級進行測試?;谝欢ǖ娘L險標準從基線測試用例庫中選擇回歸測試包。首先運行最重要、關(guān)鍵和可疑的測試,而跳過那些非關(guān)鍵、優(yōu)先級別低或者高穩(wěn)定的測試用例,這些用例即便可能測試到缺陷,這些缺陷的嚴重性也較低,不影響系統(tǒng)的功能。一般而言,測試從主要特征到次要特征。

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

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

        4 結(jié) 語

        將神經(jīng)網(wǎng)絡(luò)知識引入到測試領(lǐng)域是一個比較新的研究,本文就此方向進行了研究,并給出了實例說明。然而,BP神經(jīng)網(wǎng)絡(luò)需要大量的樣本數(shù)據(jù)用來訓練和測試,當樣本數(shù)量不夠時,預測的誤偏差可能會較大,回歸測試開始時,由于數(shù)據(jù)樣本不足,可能會存在預測的偏差,所以下一步的研究方向?qū)⑹侨绾慰朔@一問題。

        參考文獻

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

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

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

        [4] 徐寶文,聶長海,史亮,等.一種基于組合測試的軟件故障調(diào)試方法[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] 鄭燕妮,李志蜀,李奇.蟻群模擬退火算法在測試用例約簡中的應(yīng)用[J].計算機工程,2009,35(2):197?199.

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

        无码一区二区三区在线在看| 国产黄久色一区2区三区| 偷拍综合在线视频二区| 亚洲色偷偷偷综合网| 欧美四房播播| 少妇激情av一区二区| 国产成人精品自在线无码 | 亚洲精品成人网站在线观看| 女同性恋精品一区二区三区| 在线观看一区二区三区国产| 美女扒开大腿让男人桶| 亚洲午夜福利在线观看| 巨乳av夹蜜桃站台蜜桃机成人| 亚洲一区二区日韩精品| 久久久久人妻一区二区三区| 久久精品国产精品| 精品免费在线| 中文字幕av人妻一区二区 | 亚洲天堂二区三区三州| 成人免费无码大片a毛片软件| 日韩免费小视频| 在线亚洲国产一区二区三区 | 亚洲av无码一区二区三区乱子伦| 国产日韩网站| 韩国日本在线观看一区二区| 成人av资源在线观看| 777精品出轨人妻国产| 成人免费ā片在线观看| 国内自拍第一区二区三区| av网站在线观看亚洲国产| 日韩有码中文字幕在线观看| 久久综合给合综合久久| 国模精品二区| 美女露屁股无内裤视频| 国产精品亚洲二区在线看| 国产性生大片免费观看性| 国产午夜激无码av毛片| 全部免费国产潢色一级| 91久久精品一区二区三区大全| 一区二区精品国产亚洲| 国产免费拔擦拔擦8x高清在线人|