国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng)的制作方法

      文檔序號(hào):10569842閱讀:386來源:國(guó)知局
      一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng)的制作方法
      【專利摘要】本發(fā)明公開了一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng),該方法包括步驟:S1、獲取n個(gè)接口參數(shù)及其相應(yīng)的取值;S2、將所述n個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為n個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn);S3、對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào);S4、從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例;且構(gòu)成所述測(cè)試用例中的數(shù)據(jù)類型不一致。本發(fā)明能快速搜索有效用例算法的黑盒測(cè)試用例覆蓋率更高,更快速地定位到系統(tǒng)的缺陷。
      【專利說明】
      一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng)
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及軟件測(cè)試領(lǐng)域,尤其涉及一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng)。
      【背景技術(shù)】
      [0002]軟件測(cè)試是保證軟件質(zhì)量的重要手段,尤其是自動(dòng)化測(cè)試可以提高測(cè)試效率,降低成本。測(cè)試用例的自動(dòng)獲取尤其是黑盒測(cè)試用例的自動(dòng)生成是軟件測(cè)試的關(guān)鍵和難點(diǎn)。多年來很多研究人員對(duì)此進(jìn)行了大量的研究。然而目前,測(cè)試用例測(cè)生成主要靠手工完成,而且要求軟件測(cè)試人員具有一定的經(jīng)常和較高的專業(yè)水平。因而,測(cè)試過程往往帶有很大的盲目性,指示測(cè)試效率低下,軟件成本居高不下,軟件質(zhì)量也很難保證。為此,測(cè)試用例的自動(dòng)生成方法及測(cè)試工作的研究有其現(xiàn)實(shí)的必要性。
      [0003]基本的黑盒測(cè)試方法包括:等價(jià)劃分法、邊界值分析法、因果圖分析法、錯(cuò)誤猜測(cè)法等,即使使用這些方法來手動(dòng)生成覆蓋全面的測(cè)試用例也是很不現(xiàn)實(shí)的。然而窮舉測(cè)試又是無法實(shí)現(xiàn)的,這有兩方面的含義:
      [0004]一是我們無法測(cè)試一個(gè)程序以確保他是無錯(cuò)的;
      [0005]二是軟件測(cè)試中需要考慮的一個(gè)基本問題是軟件測(cè)試的經(jīng)濟(jì)學(xué)。
      [0006]借助邊界分析法和等價(jià)類劃分法等基本黑盒測(cè)試方法選取一組典型的值,如何結(jié)合上述典型值實(shí)現(xiàn)測(cè)試用例的自動(dòng)生成,來達(dá)到對(duì)所測(cè)試系統(tǒng)的全面覆蓋是黑盒測(cè)試用例自動(dòng)生成的一個(gè)研究方向,另外如何結(jié)合典型值盡快找到測(cè)試系統(tǒng)的有效用例也是黑盒測(cè)試用例自動(dòng)生成一個(gè)研究方向。這里的有效用例不是能使程序通過的用例,而是能找出程序中存在的錯(cuò)誤的用例,因?yàn)闇y(cè)試的目的是找到程序中存在的問題而不是證明程序是正確的。

      【發(fā)明內(nèi)容】

      [0007]本發(fā)明的主要目的在于提出一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng),旨在解決如何自動(dòng)生成黑盒測(cè)試用例以快速找出系統(tǒng)缺陷。
      [0008]為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種基于樹型的黑盒測(cè)試用例生成方法,所述方法包括步驟:
      [0009]S1、獲取η個(gè)接口參數(shù)及其相應(yīng)的取值;
      [0010]S2、將所述η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn);
      [0011 ] S3、對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào);
      [0012]S4、從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例;且構(gòu)成所述測(cè)試用例中的數(shù)據(jù)類型不一致。
      [0013]可選地,在所述步驟S4中,按樹型結(jié)構(gòu)的層次從上到下,每一層從左到右的順序逐個(gè)節(jié)點(diǎn)執(zhí)行。
      [0014]可選地,所述步驟S4中具體包括步驟:
      [0015]Al、第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);
      [0016]A2、第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);
      [0017]A3、依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例。
      [0018]可選地,當(dāng)步驟A3中測(cè)試用例不能找到系統(tǒng)存在的缺陷時(shí),還包括步驟:
      [0019]B1、保留步驟A3中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn);
      [0020]Β2、在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào);
      [0021]Β3、按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直到遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn)或出現(xiàn)系統(tǒng)缺陷的數(shù)字串。
      [0022]可選地,所述η接口參數(shù)相應(yīng)的取值通過等價(jià)劃分法和邊界值法獲得。
      [0023]可選地,所述η接口參數(shù)的數(shù)據(jù)類型依據(jù)編程語言中的數(shù)據(jù)類型進(jìn)行劃分。
      [0024]可選地,采用特殊的字符或字母代表所述數(shù)據(jù)類型,并將代表所述數(shù)據(jù)類型的字符或字母置于所述η個(gè)接口參數(shù)取值的編號(hào)之后。
      [0025]此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種基于樹型的黑盒測(cè)試用例生成系統(tǒng),所述系統(tǒng)包括:
      [0026]接口參數(shù)取值獲取單元,用于獲取η個(gè)接口參數(shù)及其相應(yīng)的取值;
      [0027]樹型結(jié)構(gòu)構(gòu)建單元,用于將所述η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn);
      [0028]取值分類編號(hào)單元,用于對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào);
      [0029]測(cè)試用例生成單元,用于從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例;且構(gòu)成所述測(cè)試用例中的數(shù)據(jù)類型不一致。
      [0030]可選地,所述測(cè)試用例生成單元包括:最小節(jié)點(diǎn)生成單元,用于將第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);將第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例;測(cè)試用例補(bǔ)充單元,用于保留最小節(jié)點(diǎn)生成單元生成的測(cè)試用例中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn);在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào);按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直至遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn),或出現(xiàn)系統(tǒng)缺陷的數(shù)字串即有效的測(cè)試用例。
      [0031]可選地,所述數(shù)據(jù)類型依據(jù)編程語言中的數(shù)據(jù)類型進(jìn)行劃分,采用特殊的字符或字母代表所述數(shù)據(jù)類型,并將代表所述數(shù)據(jù)類型的字符或字母置于所述η個(gè)接口參數(shù)取值的編號(hào)之后。
      [0032]本發(fā)明提出的基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng),結(jié)合自定義的樹型模型設(shè)計(jì)了快速搜索有效用例算法,使有效用例算法的黑盒測(cè)試用例覆蓋率更高,更快速定位到系統(tǒng)的缺陷。
      【附圖說明】
      [0033]圖1為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成方法的流程示意圖;
      [0034]圖2為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成方法構(gòu)建的樹型結(jié)構(gòu)。
      [0035]圖3為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成方法的補(bǔ)充流程示意圖;
      [0036]圖4為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成方法的再補(bǔ)充流程示意圖;
      [0037]圖5為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成方法具有3個(gè)接口參數(shù)構(gòu)建的樹型結(jié)構(gòu)。
      [0038]圖6為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成系統(tǒng)的結(jié)構(gòu)示意圖;
      [0039]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
      【具體實(shí)施方式】
      [0040]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0041]現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
      [0042]如圖1所示,本發(fā)明第一實(shí)施例提出一種基于樹型的黑盒測(cè)試用例生成方法,包括步驟:S1、獲取η個(gè)接口參數(shù)及其相應(yīng)的取值;S2、將所述η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn);S3、對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào);S4、從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例。
      [0043]其中,在步驟SI中,該η接口參數(shù)相應(yīng)的取值通過等價(jià)劃分法和邊界值法獲得。對(duì)于該η個(gè)接口參數(shù)來說,可以先按每個(gè)接口參數(shù)取值個(gè)數(shù)的多少進(jìn)行排序,假設(shè)第i個(gè)參數(shù)有ti個(gè)取值,其中,? = 1,2,...,η;則此時(shí)應(yīng)滿足:tOb〉...Hn。當(dāng)然在運(yùn)用等價(jià)類劃分法和邊界值法得到的基礎(chǔ)數(shù)據(jù),不論怎么組合都不能發(fā)現(xiàn)程序中的存在的缺陷時(shí),以上算法效果是相同的,必須要生成廣個(gè)測(cè)試用例。并運(yùn)用這^個(gè)測(cè)試用例對(duì)系統(tǒng)進(jìn)行測(cè)試。
      [0044]本發(fā)明研究了功能測(cè)試即黑盒測(cè)試的單元測(cè)試階段,針對(duì)不同測(cè)試目的有效的測(cè)試用例自動(dòng)生成算法??焖偎阉饔行в美惴ㄒ詷湫徒Y(jié)構(gòu)的深度搜索為基礎(chǔ)能以較快的速度找到有效的數(shù)字組合即測(cè)試用例,這里的有效的測(cè)試用例不是使測(cè)試通過的用例,而是能找到系統(tǒng)中缺陷的測(cè)試用例。利用數(shù)據(jù)分類后的數(shù)字組合,更快、更準(zhǔn)確的找到有效的測(cè)試用例,找到系統(tǒng)中缺陷的測(cè)試用例,節(jié)省了無效測(cè)試用例的生成。在不同的測(cè)試階段及不同的測(cè)試目的時(shí),選擇有效的測(cè)試方法能大大降低測(cè)試成本,提高測(cè)試效率。對(duì)于有η個(gè)參數(shù),每個(gè)參數(shù)有^(1 = 1,2,...,!!)個(gè)取值的系統(tǒng),最好的測(cè)試用例設(shè)計(jì)師對(duì)任何兩個(gè)參數(shù)的各種組合只覆蓋一次的測(cè)試用例集,即在測(cè)試用例集中整棵樹的節(jié)點(diǎn)均只出現(xiàn)一次,且每個(gè)樹枝只遍歷一次。
      [0045]請(qǐng)同時(shí)參照?qǐng)D2,在步驟S2及S3中,由于樹型結(jié)構(gòu)的第一層為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn),即該節(jié)點(diǎn)具Wt1個(gè)取值,將該ti個(gè)取值取值予以編號(hào),并將標(biāo)好號(hào)的取值從左到右依次排列在Entrance下。第二層以下各層分別為有tftn個(gè)取值,將每層的個(gè)取值予以編號(hào)。除了編號(hào)外,還需對(duì)每個(gè)取值進(jìn)行數(shù)據(jù)類型的分類,數(shù)據(jù)類型依據(jù)java中的數(shù)據(jù)類型進(jìn)行劃分,包括:字節(jié)型(byte)、字符型(char)、短整型(short)、整形(int)、長(zhǎng)整型(long)、單精度實(shí)型(float)、雙精度實(shí)型(double)以及布爾型(boolean)。每個(gè)數(shù)據(jù)類型可以以特殊的字符或字母代表,例如:字節(jié)型以字母b表示,字符型以字母c表示,短整型以字母s表示,整形以字母i表示,長(zhǎng)整型以字母I表示、單精度實(shí)型以字母f表示,雙精度實(shí)型以字母d表示,布爾型以字母0表示。該些用來表示數(shù)據(jù)類型的特殊的字符或字母代表可以直接記錄在每個(gè)取值編號(hào)后,即每個(gè)取值可以由一個(gè)編號(hào)直接表示,也可以由一個(gè)編號(hào)以及代表其數(shù)據(jù)類型的特殊的字符或字母來表示。
      [0046]步驟S4中,本實(shí)施例要求構(gòu)成的測(cè)試用例數(shù)據(jù)類型為不一致,數(shù)據(jù)類型一致則進(jìn)行搜索,這樣時(shí)搜索出來的用例會(huì)更加高效。當(dāng)然,該η個(gè)接口參數(shù)需要輸入的是同一種數(shù)據(jù)類型時(shí),則不做此要求。
      [0047]請(qǐng)同時(shí)參照?qǐng)D3、圖4,在步驟S4中,可以按樹型結(jié)構(gòu)的層次從上到下,,每一層從左到右的順序逐個(gè)節(jié)點(diǎn)執(zhí)行。具體包括步驟:
      [0048]Al、第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);
      [0049]Α2、第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);
      [0050]A3、依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例。
      [0051]當(dāng)步驟A3中測(cè)試用例不能找到系統(tǒng)存在的缺陷時(shí),還包括步驟:
      [0052]B1、保留步驟A3中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn);
      [0053]Β2、在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào);
      [0054]Β3、按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直到遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn)或出現(xiàn)系統(tǒng)缺陷的數(shù)字串。
      [0055]下面結(jié)合具體的實(shí)例,進(jìn)一步說明本發(fā)明,請(qǐng)參照?qǐng)D5,假定n= 3,ti = t2 = t3;并且組合2-3-1測(cè)試用例能測(cè)試出系統(tǒng)存在缺陷。樹型結(jié)構(gòu)的第一層表示具有^(^ = 3)個(gè)取值的參數(shù)的取值,其編號(hào)為1、2、3,可見,本實(shí)施例中的取值是由一個(gè)編號(hào)直接表示的;第二層表示具有t2(t2 = 3)個(gè)取值的參數(shù)的取值,并將這3個(gè)取值作為t的葉節(jié)點(diǎn)予以連接;同理編號(hào)并連接二、三層。從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列就代表一個(gè)測(cè)試用例。1-1-3就表示第I個(gè)參數(shù)取第I個(gè)值,第2個(gè)參數(shù)取第I個(gè)值,第3個(gè)參數(shù)取第3個(gè)值構(gòu)成的一個(gè)測(cè)試用例。
      [0056]依據(jù)上述步驟Al至A3依次生成數(shù)字串:1-1-1、2-1-1、3-1-1;然后依據(jù)步驟BI至B3,將第二層與第三層組合生成數(shù)字串:1-2-1,2-2-1,3-2-1 ; 1_3_1、2_3_1。當(dāng)找到2_3_1時(shí),且2-3-1為不同的數(shù)據(jù)類型,算法終止運(yùn)行,整棵樹不需要機(jī)型搜索,即不需要生成3-3-1;1_1_2、2_1_2、3_1_2;1~2~2、2~2~2、3_2_2;1_3_2、2_3_2、3_3_2;1_1_3、2_1_3、3_1_3;1-2-3、2_2_3、3_2_3; 1-3_3、2-3-3、3-3_3,也不需要用其來執(zhí)行測(cè)試系統(tǒng),從而節(jié)省了測(cè)試時(shí)間,一定程度提高了測(cè)試效率。
      [0057]本發(fā)明進(jìn)一步提供一種基于樹型的黑盒測(cè)試用例生成系統(tǒng)。請(qǐng)參照?qǐng)D6,圖6為本發(fā)明實(shí)施例的基于樹型的黑盒測(cè)試用例生成系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)10包括:取值獲取單元11,用于獲取η個(gè)接口參數(shù)及其相應(yīng)的取值;樹型結(jié)構(gòu)構(gòu)建單元12,用于將η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn);取值分類編號(hào)單元13,用于對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào);測(cè)試用例生成單元14,用于從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例。
      [0058]取值獲取單元11可以通過等價(jià)劃分法和邊界值法獲得該η接口參數(shù)相應(yīng)的取值。取值獲取單元11還用于將對(duì)于該η個(gè)接口參數(shù)按每個(gè)接口參數(shù)取值個(gè)數(shù)的多少進(jìn)行排序,假設(shè)第i個(gè)參數(shù)有ti個(gè)取值,其中,? = 1,2,...,η;則此時(shí)應(yīng)滿足:tOb〉..->tno
      [0059]請(qǐng)同時(shí)參照?qǐng)D2,樹型結(jié)構(gòu)構(gòu)建單元12在構(gòu)建樹型結(jié)構(gòu)時(shí),由于樹型結(jié)構(gòu)的第一層為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn),即該節(jié)點(diǎn)具有^個(gè)取值,通過取值分類編號(hào)單元13將該ti個(gè)取值取值予以編號(hào),并將標(biāo)好號(hào)的^個(gè)取值從左到右依次排列在Entrance下。第二層以下各層分別為有tr_tn個(gè)取值,同樣通過取值分類編號(hào)單元13將每層的^個(gè)取值予以編號(hào)。除了編號(hào)外,取值分類編號(hào)單元13還需對(duì)每個(gè)取值進(jìn)行數(shù)據(jù)類型的分類,數(shù)據(jù)類型可以依據(jù)java中的數(shù)據(jù)類型進(jìn)行劃分,包括:字節(jié)型(byte)、字符型(char)、短整型(short)、整形(int)、長(zhǎng)整型(long)、單精度實(shí)型(float)、雙精度實(shí)型(doub I e )以及布爾型(boolean)。每個(gè)數(shù)據(jù)類型可以以特殊的字符或字母代表,例如:字節(jié)型以字母b表示,字符型以字母c表示,短整型以字母s表示,整形以字母i表示,長(zhǎng)整型以字母I表示、單精度實(shí)型以字母f表示,雙精度實(shí)型以字母d表示,布爾型以字母0表示。該些用來表示數(shù)據(jù)類型的特殊的字符或字母代表可以直接記錄在每個(gè)取值編號(hào)后,即每個(gè)取值可以由一個(gè)編號(hào)直接表示,也可以由一個(gè)編號(hào)以及代表其數(shù)據(jù)類型的特殊的字符或字母來表示。
      [0060]本實(shí)施例中,測(cè)試用例生成單元14構(gòu)成的測(cè)試用例數(shù)據(jù)類型為不一致,數(shù)據(jù)類型一致則進(jìn)行搜索,這樣時(shí)搜索出來的用例會(huì)更加高效。當(dāng)然,該η個(gè)接口參數(shù)需要輸入的是同一種數(shù)據(jù)類型時(shí),則不做此要求。
      [0061]在具體實(shí)施時(shí),測(cè)試用例生成單元14可以包括最小節(jié)點(diǎn)生成單元24以及測(cè)試用例補(bǔ)充單元25。其中,最小節(jié)點(diǎn)生成單元24用于將第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);將第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例。測(cè)試用例補(bǔ)充單元25用于保留最小節(jié)點(diǎn)生成單元生成的測(cè)試用例中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn);在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào);按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直至遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn),或出現(xiàn)系統(tǒng)缺陷的數(shù)字串即有效的測(cè)試用例。
      [0062]請(qǐng)參照?qǐng)D5的具體實(shí)例,在該實(shí)例中,假定11 = 3,。=。=。;并且組合2-3-1測(cè)試用例能測(cè)試出系統(tǒng)存在缺陷。取值獲取單元11獲取該3個(gè)接口參數(shù)及其相應(yīng)的^個(gè)取值、^個(gè)取值、t3個(gè)取值;樹型結(jié)構(gòu)構(gòu)建單元12構(gòu)建的樹型結(jié)構(gòu)為:樹型結(jié)構(gòu)的第一層表示具有tKti=3)個(gè)取值的參數(shù)的取值,取值分類編號(hào)單元13將其編號(hào)為1、2、3;第二層表示具有^(^ =3)個(gè)取值的參數(shù)的取值,并將這3個(gè)取值作為^的葉節(jié)點(diǎn)予以連接;同理編號(hào)并連接二、三層。測(cè)試用例生成單元14從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列就代表一個(gè)測(cè)試用例。1-1-3就表示第I個(gè)參數(shù)取第I個(gè)值,第2個(gè)參數(shù)取第I個(gè)值,第3個(gè)參數(shù)取第3個(gè)值構(gòu)成的一個(gè)測(cè)試用例。
      [0063]具體地,測(cè)試用例生成單元14中的最小節(jié)點(diǎn)生成單元24生成數(shù)字串:1-1-1、2-1_1、3-1-1;測(cè)試用例生成單元14中的測(cè)試用例補(bǔ)充單元25生成數(shù)字串為:1-2-1、2-2-1、3-2-1;1-3-1、2-3-1。當(dāng)找到2-3-1時(shí),且2-3-1為不同的數(shù)據(jù)類型,算法終止運(yùn)行,整棵樹不需要機(jī)型搜索,測(cè)試用例生成單兀14不再生成后續(xù)的數(shù)字串,即:3_3_1 ; 1-1-2、2-1-2、3-1_2; 1-2~2、2~2~2、3_2_2;1_3_2、2_3_2、3_3_2;1_1_3、2_1_3、3_1_3;1_2_3、2_2_3、3_2_3;1_3_3、2-3-3、3-3-3,也不需要用其來執(zhí)行測(cè)試系統(tǒng),從而節(jié)省了測(cè)試時(shí)間,一定程度提高了測(cè)試效率。
      [0064]本發(fā)明提供的一種基于樹型的黑盒測(cè)試用例生成方法及其系統(tǒng),運(yùn)用等價(jià)類劃分法和邊界值法得到的基礎(chǔ)數(shù)據(jù),并對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行數(shù)據(jù)類型的分類,數(shù)據(jù)類型分類參考java語言中的類型進(jìn)行分類并進(jìn)行編號(hào),從上至下,從左往右快速搜索后,進(jìn)行組合生成的黑盒測(cè)試用例,直到定位到缺陷則本次搜索終止。本發(fā)明適于在對(duì)系統(tǒng)單元進(jìn)行可用性測(cè)試時(shí)運(yùn)用,可用性測(cè)試是在第一輪測(cè)試之初,初步測(cè)試應(yīng)用程序,以確定該程序已實(shí)現(xiàn)基本需求,即可用。如果基于此來運(yùn)用該算法時(shí),可盡量減少運(yùn)用邊值分析和等價(jià)類等基本黑盒測(cè)試方法所得到的基礎(chǔ)參數(shù)的個(gè)數(shù)。本發(fā)明快速搜索有效用例算法的黑盒測(cè)試用例覆蓋率更高,能更快速定位到系統(tǒng)的缺陷。
      [0065]需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
      [0066]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),月艮務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
      [0067]以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
      【主權(quán)項(xiàng)】
      1.一種基于樹型的黑盒測(cè)試用例生成方法,其特征在于,所述方法包括步驟: 51、獲取η個(gè)接口參數(shù)及其相應(yīng)的取值; 52、將所述η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn); 53、對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào); 54、從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例;且構(gòu)成所述測(cè)試用例中的數(shù)據(jù)類型不一 Sc ο2.根據(jù)權(quán)利要求1所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,在所述步驟S4中,按樹型結(jié)構(gòu)的層次從上到下,每一層從左到右的順序逐個(gè)節(jié)點(diǎn)執(zhí)行。3.根據(jù)權(quán)利要求1所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,所述步驟S4中具體包括步驟: Al、第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn); Α2、第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn); A3、依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例。4.根據(jù)權(quán)利要求3所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,當(dāng)步驟A3中測(cè)試用例不能找到系統(tǒng)存在的缺陷時(shí),還包括步驟: B1、保留步驟A3中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn); Β2、在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào); Β3、按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直到遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn)或出現(xiàn)系統(tǒng)缺陷的數(shù)字串。5.根據(jù)權(quán)利要求1所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,所述η接口參數(shù)相應(yīng)的取值通過等價(jià)劃分法和邊界值法獲得。6.根據(jù)權(quán)利要求1所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,所述η接口參數(shù)的數(shù)據(jù)類型依據(jù)編程語言中的數(shù)據(jù)類型進(jìn)行劃分。7.根據(jù)權(quán)利要求1或6所述的基于樹型的黑盒測(cè)試用例生成方法,其特征在于,采用特殊的字符或字母代表所述數(shù)據(jù)類型,并將代表所述數(shù)據(jù)類型的字符或字母置于所述η個(gè)接口參數(shù)取值的編號(hào)之后。8.一種基于樹型的黑盒測(cè)試用例生成系統(tǒng),其特征在于,所述系統(tǒng)包括: 接口參數(shù)取值獲取單元,用于獲取η個(gè)接口參數(shù)及其相應(yīng)的取值; 樹型結(jié)構(gòu)構(gòu)建單元,用于將所述η個(gè)接口參數(shù)及其取值構(gòu)建成倒立的樹型結(jié)構(gòu);所述樹型結(jié)構(gòu)的每一層代表一個(gè)接口參數(shù)的取值,且第一層節(jié)點(diǎn)為η個(gè)接口參數(shù)中取值個(gè)數(shù)最多的節(jié)點(diǎn); 取值分類編號(hào)單元,用于對(duì)每一層的接口參數(shù)的取值進(jìn)行分類并編號(hào); 測(cè)試用例生成單元,用于從第一層某個(gè)節(jié)點(diǎn)出發(fā)沿著樹枝的方向向下推進(jìn),直到到達(dá)整棵樹的葉節(jié)點(diǎn),形成一條路徑,路徑上的節(jié)點(diǎn)號(hào)序列代表一個(gè)測(cè)試用例;且構(gòu)成所述測(cè)試用例中的數(shù)據(jù)類型不一致。9.根據(jù)權(quán)利要求8所述的基于樹型的黑盒測(cè)試用例生成系統(tǒng),其特征在于,所述測(cè)試用例生成單元包括: 最小節(jié)點(diǎn)生成單元,用于將第一層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)傳遞給其葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);將第二層編號(hào)最小的節(jié)點(diǎn)把自己的編號(hào)及其上層編號(hào)一起組成的串傳遞給他的葉節(jié)點(diǎn)中編號(hào)最小的節(jié)點(diǎn);依次將η層節(jié)點(diǎn)均取節(jié)點(diǎn)編號(hào)最小的節(jié)點(diǎn)組成的數(shù)字串,構(gòu)成一個(gè)測(cè)試用例; 測(cè)試用例補(bǔ)充單元,用于保留最小節(jié)點(diǎn)生成單元生成的測(cè)試用例中除了第一個(gè)編號(hào)以外的其他編號(hào)組成的數(shù)字串,將處于第一位的編號(hào)用同根節(jié)點(diǎn)下的次小的編號(hào)代替,直到遍歷完此根節(jié)點(diǎn);在遍歷完倒數(shù)第二層最小編號(hào)下的葉節(jié)點(diǎn)后,遍歷倒數(shù)第二層的次小編號(hào);按照倒推樹的原則不斷變換不同位置的根節(jié)點(diǎn)直至遍歷到第一層的編號(hào)最大的根節(jié)點(diǎn),或出現(xiàn)系統(tǒng)缺陷的數(shù)字串即有效的測(cè)試用例。10.根據(jù)權(quán)利要求8或9所述的基于樹型的黑盒測(cè)試用例生成系統(tǒng),其特征在于,所述數(shù)據(jù)類型依據(jù)編程語言中的數(shù)據(jù)類型進(jìn)行劃分,采用特殊的字符或字母代表所述數(shù)據(jù)類型,并將代表所述數(shù)據(jù)類型的字符或字母置于所述η個(gè)接口參數(shù)取值的編號(hào)之后。
      【文檔編號(hào)】G06F11/36GK105930268SQ201610244017
      【公開日】2016年9月7日
      【申請(qǐng)日】2016年4月19日
      【發(fā)明人】徐龍
      【申請(qǐng)人】努比亞技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1