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