基于數(shù)據(jù)流準(zhǔn)則的測試用例自動生成方法研究
發(fā)布時間:2020-06-24 16:59
【摘要】:軟件測試主要分為三個步驟:(1)為待測程序設(shè)計一組合理的測試用例;(2)在測試程序中執(zhí)行設(shè)計好的測試用例;(3)判斷執(zhí)行結(jié)果和預(yù)期結(jié)果是否一致,以此確認(rèn)輸出的正確性。手工設(shè)計測試用例所需成本高,需要測試人員具備豐富的經(jīng)驗。實現(xiàn)測試用例生成的自動化有利于提高軟件測試效率,降低測試成本。測試用例可以隨機生成,也可以依據(jù)一些測試覆蓋準(zhǔn)則生成可以覆蓋指定測試目標(biāo)的測試用例。根據(jù)覆蓋準(zhǔn)則所考慮的程序?qū)嶓w的不同,可以分為兩種類型:(1)基于控制流的測試覆蓋準(zhǔn)則,如語句覆蓋、分支覆蓋等;(2)基于數(shù)據(jù)流的測試覆蓋準(zhǔn)則,如所有使用覆蓋準(zhǔn)則等。其中數(shù)據(jù)流測試覆蓋準(zhǔn)則關(guān)注的是程序中的數(shù)據(jù)流交互關(guān)系,如果某條語句定義了一個變量且該變量用于另一條語句,就有必要執(zhí)行經(jīng)過這兩條語句的路徑來檢查這之間是否存在錯誤。相比較于基于控制流的覆蓋準(zhǔn)則,數(shù)據(jù)流覆蓋準(zhǔn)則更容易檢測到程序中通過變量引起的方法交互之間存在的錯誤,有著更為廣泛的應(yīng)用前景。但是,目前在基于數(shù)據(jù)流準(zhǔn)則的測試用例生成問題上,依然有一些不足之處。包括:(1)數(shù)據(jù)流測試使用的適應(yīng)度函數(shù)所包含的測試用例信息單一,無法較好地指導(dǎo)測試用例的進化;(2)覆蓋數(shù)據(jù)流測試目標(biāo)的難度高于分支等測試目標(biāo),導(dǎo)致數(shù)據(jù)流測試復(fù)雜度高,影響了數(shù)據(jù)流測試的應(yīng)用。為此,本文對基于數(shù)據(jù)流準(zhǔn)則的測試用例生成開展了以下相關(guān)的研究工作:(1)利用遺傳算法實現(xiàn)基于數(shù)據(jù)流準(zhǔn)則的測試用例自動生成方法,并設(shè)計了一個新的適應(yīng)度函數(shù)指導(dǎo)測試測試用例的進化。適應(yīng)度函數(shù)分別考慮定義節(jié)點和使用節(jié)點,利用分支距離度量測試用例到節(jié)點的距離,并引入一個常量來表示殺死節(jié)點信息,為測試用例的進化提供更多的信息,提高測試效率。(2)生成測試用例之前,利用所有使用覆蓋準(zhǔn)則和分支覆蓋準(zhǔn)則之間的并行覆蓋關(guān)系,將部分?jǐn)?shù)據(jù)流測試目標(biāo)定義使用對替換為分支測試目標(biāo)。在生成測試用例過程中,對于這部分被替換的目標(biāo),只需要保證測試用例覆蓋對應(yīng)的分支,不需要保證測試用例同時覆蓋定義節(jié)點和相同變量的使用節(jié)點,也不需要額外考慮定義節(jié)點和使用節(jié)點之間是否存在殺死節(jié)點。以此降低數(shù)據(jù)流測試的復(fù)雜度。(3)設(shè)計并實現(xiàn)一個面向Java的基于數(shù)據(jù)流準(zhǔn)則的測試用例自動生成工具DFTCG,使用遺傳算法實現(xiàn)基于搜索的測試用例生成方法。提供可視化的界面方便使用者進行相關(guān)的配置。
【學(xué)位授予單位】:中國礦業(yè)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2018
【分類號】:TP311.53
【圖文】:
將源程序轉(zhuǎn)換為程序的控制流圖(con以用一個四元組 G 來表示。G=(N,合;E 是邊的集合,用于表示兩個語句一的入口節(jié)點;e 表示唯一的出口節(jié)點,每條邊 e=(ni, nj)∈ E 代表從節(jié)程序路徑 p 可以表示為一組控制節(jié)點序種,一種是控制流路徑,是一組順著程行路徑,表示由程序輸入所驅(qū)動的已制流圖示例,圓圈表示各個節(jié)點,圓圈示控制轉(zhuǎn)移的方向,兩個節(jié)點和箭頭共轉(zhuǎn)移。
采用公式 4-3 作為適應(yīng)度函數(shù),對于不可推斷類型的測試目標(biāo) DUP,采用式 4-4 作為適應(yīng)度函數(shù)。我們在 22 個實驗對象上分別實現(xiàn)了這三種方法,致力于回答以下四個問題:(1) CDTG 識別的 DUP 中的過程間和過程內(nèi)的 puse 和 cuse 類型占比分布情況如何?(2) CDTG 識別出的 DUP 中可以替換為分支的 DUP 占比為多少?(3) CDTG 中可推斷 DUP 的類型分布情況如何?(4) CDTG 可實現(xiàn)的 DUP 覆蓋率以及需要的時間開銷是多少?.3.2 實驗結(jié)果與分析1)不同類型 DUP 占比統(tǒng)計CDTG 可以收集程序中的 DUP 的相關(guān)信息,包括程序中 DUP 的總數(shù)以及不類型 DUP 的數(shù)量。圖 4-4(a)和圖 4-4(b)表示 CDTG 識別出的不同類型 DUP柱形圖,橫坐標(biāo)表示程序?qū)?yīng)的編號,縱坐標(biāo)表示識別出的 DUP 的個數(shù)。
本文編號:2728132
【學(xué)位授予單位】:中國礦業(yè)大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2018
【分類號】:TP311.53
【圖文】:
將源程序轉(zhuǎn)換為程序的控制流圖(con以用一個四元組 G 來表示。G=(N,合;E 是邊的集合,用于表示兩個語句一的入口節(jié)點;e 表示唯一的出口節(jié)點,每條邊 e=(ni, nj)∈ E 代表從節(jié)程序路徑 p 可以表示為一組控制節(jié)點序種,一種是控制流路徑,是一組順著程行路徑,表示由程序輸入所驅(qū)動的已制流圖示例,圓圈表示各個節(jié)點,圓圈示控制轉(zhuǎn)移的方向,兩個節(jié)點和箭頭共轉(zhuǎn)移。
采用公式 4-3 作為適應(yīng)度函數(shù),對于不可推斷類型的測試目標(biāo) DUP,采用式 4-4 作為適應(yīng)度函數(shù)。我們在 22 個實驗對象上分別實現(xiàn)了這三種方法,致力于回答以下四個問題:(1) CDTG 識別的 DUP 中的過程間和過程內(nèi)的 puse 和 cuse 類型占比分布情況如何?(2) CDTG 識別出的 DUP 中可以替換為分支的 DUP 占比為多少?(3) CDTG 中可推斷 DUP 的類型分布情況如何?(4) CDTG 可實現(xiàn)的 DUP 覆蓋率以及需要的時間開銷是多少?.3.2 實驗結(jié)果與分析1)不同類型 DUP 占比統(tǒng)計CDTG 可以收集程序中的 DUP 的相關(guān)信息,包括程序中 DUP 的總數(shù)以及不類型 DUP 的數(shù)量。圖 4-4(a)和圖 4-4(b)表示 CDTG 識別出的不同類型 DUP柱形圖,橫坐標(biāo)表示程序?qū)?yīng)的編號,縱坐標(biāo)表示識別出的 DUP 的個數(shù)。
【參考文獻】
相關(guān)期刊論文 前5條
1 王令賽;姜淑娟;張艷梅;于巧;;基于正交搜索的粒子群優(yōu)化測試用例生成方法[J];電子學(xué)報;2014年12期
2 史嬌嬌;姜淑娟;韓寒;王令賽;;自適應(yīng)粒子群優(yōu)化算法及其在測試數(shù)據(jù)生成中的應(yīng)用研究[J];電子學(xué)報;2013年08期
3 莊健;楊清宇;杜海峰;于德弘;;一種高效的復(fù)雜系統(tǒng)遺傳算法[J];軟件學(xué)報;2010年11期
4 張長勝;孫吉貴;歐陽丹彤;;一種自適應(yīng)離散粒子群算法及其應(yīng)用研究[J];電子學(xué)報;2009年02期
5 王雪梅,王義和;模擬退火算法與遺傳算法的結(jié)合[J];計算機學(xué)報;1997年04期
本文編號:2728132
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/2728132.html
最近更新
教材專著