亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

不變量指導(dǎo)的隨機(jī)測試用例自動化生成方法

文檔序號:6357659閱讀:337來源:國知局
專利名稱:不變量指導(dǎo)的隨機(jī)測試用例自動化生成方法
技術(shù)領(lǐng)域
本專利發(fā)明屬于軟件測試領(lǐng)域,它是該領(lǐng)域的核心課題一測試用例自動化生成的研究。
2.
背景技術(shù)
3. I隨機(jī)測試技術(shù)隨機(jī)測試是通過在程序輸入域上隨機(jī)選擇輸入 數(shù)據(jù)來測試程序。它是一種應(yīng)用廣泛且極具潛力的軟件自動化測試技術(shù)。在第29屆軟件工程國際會議上,隨機(jī)測試被認(rèn)為是測試用例生成領(lǐng)域最具潛力的三大技術(shù)之一。在軟件工程方面,隨機(jī)測試已被廣泛應(yīng)用到各領(lǐng)域,如Unix工具集、Windows GUI應(yīng)用軟件、Java程序等等。但是在隨機(jī)測試的實(shí)際應(yīng)用中,存在覆蓋率低,冗余測試用例重復(fù)生成等等各種缺點(diǎn),嚴(yán)重限制了隨機(jī)測試方法優(yōu)點(diǎn)的體現(xiàn)。3. 2不變量技術(shù)程序不變量是指在程序的某個(gè)特定的點(diǎn)或某些特定的點(diǎn)上保持為真的屬性,是描述在程序運(yùn)行時(shí)保持不變的性質(zhì)的邏輯斷言;它經(jīng)常出現(xiàn)在斷言聲明(assertstatement)、形式化描述(formal specif ications)、說明文檔(documentation)中。程序不變量有助于軟件開發(fā)人員理解程序中的數(shù)據(jù)結(jié)構(gòu)、算法及各種操作,對軟件的設(shè)計(jì)、編碼、驗(yàn)證、測試、優(yōu)化和維護(hù)等各階段都有著積極的作用(Ernst,2000)。近年來程序不變量的自動提取技術(shù)成為研究熱點(diǎn)之一。
3.

發(fā)明內(nèi)容
本申請書中就軟件測試的核心問題——測試用例自動化生成,針對目前一種廣泛應(yīng)用的自動化技術(shù)——隨機(jī)測試方法的缺點(diǎn),提出了一種結(jié)合不變量技術(shù)的隨機(jī)測試改進(jìn)方法——不變量指導(dǎo)下的隨機(jī)用例生成方法。通過不變量的提取,了解程序?qū)傩?,提高隨機(jī)方法選取有效用例的概率,降低冗余率,滿足覆蓋率要求,極大地改進(jìn)了傳統(tǒng)隨機(jī)方法的缺點(diǎn)。且整個(gè)用例生成過程完全自動化,除了必需的被測程序外,不需要其它任何的輸入和人工干預(yù)。
4.
具體實(shí)施例方式4. I不變量指導(dǎo)的測試用例生成方法的理論介紹附圖
I是不變量指導(dǎo)測試用例生成方法的總體流程圖,通過附圖I中5個(gè)步驟地反復(fù)進(jìn)行(見附圖I說明),可以完成測試用例集合自動化的生成。下面就該流程圖中的幾個(gè)重要理論基礎(chǔ)分別進(jìn)行說明4. I. I新用例的生成過程我們將完成新用例生成的功能模塊稱為測試用例構(gòu)造器,由三個(gè)相對獨(dú)立的部分組成——源碼信息抽取、可選用例空間和測試用例構(gòu)造。本工具以被測函數(shù)為單位,依次對被測函數(shù)中每個(gè)參數(shù)獨(dú)立生成,進(jìn)而構(gòu)造出一個(gè)測試用例。具體的構(gòu)造流程如附圖2所示。源碼信息抽取模塊,主要分析被測程序源碼,根據(jù)源碼信息,構(gòu)造出被測函數(shù)信息表和復(fù)雜類型成員信息表??蛇x用例空間主要由參數(shù)區(qū)間信息表構(gòu)成,該表從被測函數(shù)信息表,以及復(fù)雜類型成員信息表中提取信息 進(jìn)行構(gòu)造。該表中保存了被測函數(shù)每一個(gè)參數(shù)的取值區(qū)間,隨機(jī)數(shù)的挑選被限制在這些取值區(qū)間之中,通過這種做法,限制了各個(gè)參數(shù)的取值范圍,縮小用例的可選空間大小,進(jìn)而提高選中有效用例的概率。測試用例構(gòu)造模塊從被測函數(shù)信息表中依次選取參數(shù)進(jìn)行構(gòu)造,若為簡單類型,則從可選用例空間中直接隨機(jī)挑選隨機(jī)數(shù)即可生成;若為復(fù)雜類型,則讀取該類型成員表信息,對該類的各個(gè)成員依次進(jìn)行構(gòu)造,構(gòu)造過程與參數(shù)構(gòu)造過程類似,若在類成員的構(gòu)造中遇到復(fù)雜類型,則往下遞歸,最終完成測試用例的構(gòu)造。4. I. 2不變量判斷測試用例有效性如前背景技術(shù)中所述,不變量對于軟件開發(fā)維護(hù)的各個(gè)階段有著極其重要的意義,本工具CRT也利用了不變量來進(jìn)行測試用例有效性的判別。程序不變量是指在程序的某個(gè)特定的點(diǎn)或某些特定的點(diǎn)上保持為真的屬性,是描述在程序運(yùn)行時(shí)保持不變的性質(zhì)的邏輯斷言;它經(jīng)常出現(xiàn)在斷言聲明(assertstatement)、形式化描述(formal specif ications)、說明文檔(documentation)中(Ernstet al,2007),形如表I. I所示
1. field > abs(y)
2y = 2*x+3
3array a is sorted
4for all List objects 1st,1st. next, prev = 1st,,
5for all Treenode objects n,n. left, value < n. right, value,,
6p ! = null = > p. content in myArray表I程序不變量示例程序似然不變量集(Likely Program Invariant)指“可能的,不確定”的程序動態(tài)不變量集合,程序動態(tài)不變量提取工具的輸出就是程序似然不變量集合,它依賴于程序輸入(測試用例),它會在程序動態(tài)運(yùn)行時(shí)隨著輸入的變化而改變。輸入越完備,則動態(tài)提取的程序似然不變量集越逼近于在理論上的程序動態(tài)不變量集??偟膩碚f,程序運(yùn)行時(shí)程序內(nèi)部的某個(gè)保真的屬性稱為程序動態(tài)不變量,程序動態(tài)不變量的集合稱為程序動態(tài)不變量集,程序動態(tài)不變量提取工具輸出的是程序似然不變量集合。隨著輸入的不斷增多,程序似然不變量集逐漸地向程序動態(tài)不變量集逼近。舉個(gè)例子說明上述情況,例I :
1int test(intx){
2if (x>0) return I;
3elsereturn 0;
4}“return = one of {0,1} ”是該程序的一個(gè)程序動態(tài)不變量,它和程序中其他的不變量(若存在)構(gòu)成的集合是程序動態(tài)不變量集。程序動態(tài)不變量提取工具在程序輸入大于O時(shí)會給出似然不變量”return == 1”,當(dāng)程序輸入中出現(xiàn)小于等于O的值出現(xiàn)時(shí),不變量提取工具剔除該似然不變量(該似然不變量非程序不變量),最終程序動態(tài)不變量提取工具輸出似然不變量集“return = one of{0,1} ”和其他似然不變量(若存在)。此時(shí),從例I可以看出,該似然不變量集就是程序動態(tài)不變量集。上述過程就是不變量指導(dǎo)測試用例生成的核心思想,比較添加新的測試用例前后的程序似然不變量集,判斷是否有所改善,若有,則該新用例是有效的,添加到有效測試用例集中,若無,則認(rèn)為該測試用例是冗余的,丟棄。算法表述見算法I。算法I基本的程序動態(tài)不變量集指導(dǎo)測試用例生成算法.
IProcedure TESTCASE—GENERATER(program P,int N)
2Testsuite S {}
3int i^O
4while i<N do
5testcase c^-RANDNEWCASE()
6if OPABSTR(P,S)!=OPABSTR(P,S U {c}) then
7S^S U {c}
8i^O
9else
10 i^i+1
IIreturn SRANDNEffCASE是隨機(jī)測試數(shù)據(jù)生成方法。0PABSTR是程序似然不變量集,在本文中用DAIKON不變量提取工具獲得。上述算法(算法I)起始于一個(gè)空的有效測試用例集合和一個(gè)空的程序動態(tài)不變量集,重復(fù)地添加測試用例,如果該測試用例改變了程序動態(tài)不變量集(如前所述,實(shí)際上是程序似然不變量集),則保留該測試用例。若連續(xù)N次,程序似然不變量集未發(fā)生改變,算法終止。N是一個(gè)權(quán)衡值,它是綜合考量算法時(shí)間開銷和所得測試?yán)|(zhì)量的結(jié)果。以一個(gè)簡單的C程序絕對值函數(shù)abs (X)來說明算法I的工作流程,該函數(shù)的代碼如例2。例2
int abs(x){
if(x>0) return x; else return -x;
}算法I作用于例2的工作 流程如表2所示
權(quán)利要求
1.一種不變量指導(dǎo)的隨機(jī)測試用例自動化生成方法,其特征是利用程序不變量屬性信息指導(dǎo)隨機(jī)測試用例的自動化生成。
2.根據(jù)權(quán)利要求I所述的方法,其特征是高自動化,除需提供必要的被測源碼外,完全自動化。
3.根據(jù)權(quán)利要求I所述的方法,其特征是利用程序不變量的提取結(jié)果來過濾無效用例。降低最終用例集合中的無效用例數(shù)目,降低冗余率。
4.根據(jù)權(quán)利要求I所述的方法,其特征是利用程序不變量的提取結(jié)果來約簡可選用例空間,見效隨機(jī)用例生成的取值區(qū)間大小,提高有效用例被選中的概率,進(jìn)而提高用例生成效率。
全文摘要
本申請書中就軟件測試的核心問題——測試用例自動化生成,針對目前一種廣泛應(yīng)用的自動化技術(shù)——隨機(jī)測試方法的缺點(diǎn),提出了一種結(jié)合不變量技術(shù)的隨機(jī)測試改進(jìn)方法——不變量指導(dǎo)下的隨機(jī)用例生成方法。主要提出兩個(gè)新方法——利用提取到的程序不變量過濾無效測試用例,保留有效用例;利用提取到的程序不變量約簡無效用例空間,提高選中有效用例的概率。通過這些方法,降低冗余率,滿足覆蓋率要求,極大地改進(jìn)了傳統(tǒng)隨機(jī)方法的缺點(diǎn)。且整個(gè)用例生成過程完全自動化,除了必需的被測程序外,不需要其它任何的輸入和人工干預(yù)。
文檔編號G06F11/36GK102736973SQ20111008586
公開日2012年10月17日 申請日期2011年4月7日 優(yōu)先權(quán)日2011年4月7日
發(fā)明者張美超, 曾凡平, 潘能剛, 黃玉涵 申請人:中國科學(xué)技術(shù)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1