實驗2白盒測試用例設計

2021-12-29 12:02:03 字數 3186 閱讀 8431

1、實訓目的

1、掌握白盒測試用例的設計方法。

2、綜合運用所學的白盒測試方法設計測試用例。

2、實訓準備

1、白盒測試用例的設計方法。

2、測試用例模板。

3、實訓內容

3.1基本訓練

實驗一:下面是快速排序演算法中的一趟劃分演算法,其中datalist是資料表,它有兩個資料成員:一是元素型別為element的陣列v,另乙個是陣列大小n。

演算法中用到兩個操作,一是取某陣列元素v[i]的關鍵碼操作getkey( ),一是交換兩陣列元素內容的操作swap( ):

int partition ( datalist &list, int low, int high )

(1) 試畫出它的程式流程圖;

(2) 試利用路徑覆蓋方法為它設計足夠的測試用例(迴圈次數限定為0次,1次和2次)。

實驗二:下面是選擇排序的程式,其中datalist是資料表,它有兩個資料成員:一是元素型別為element的陣列v,另乙個是陣列大小n。

演算法中用到兩個操作,一是取某陣列元素v[i]的關鍵碼操作getkey ( ),一是交換兩陣列元素內容的操作swap( ):

void selectsort ( datalist & list )

}(1) 試計算此程式段的mccabe複雜性;

(2) 用基本路徑覆蓋法給出測試路徑;

(3) 為各測試路徑設計測試用例。

3.2 擴充套件訓練

題目:根據下面給出的三角形的需求完成程式並完成測試:

一、輸入條件:

1、 條件1:a+b>c

2、 條件2:a+c>b

3、 條件3:b+c>a

4、 條件4:0  5、 條件5:0  6、 條件6:0  7、 條件7:a==b

8、 條件8:a==c

9、 條件9:b==c

10、條件10:a2+b2==c2

11、條件11:a2+ c2== b2

12、條件12:c2+b2== a2

二、輸出結果:

1、不能組成三角形

2、等邊三角形

3、等腰三角形

4、直角三角形

5、一般三角形

6、某些邊不滿足限制

4、實訓步驟

4.1基本訓練

實驗一步驟:

(1)畫出程式流程圖,如圖1所示。

圖1 程式流程圖

(2)利用路徑覆蓋方法為它設計足夠的測試用例,如圖2所示。

圖2 測試用例

(3)設計測試用例,如圖3所示。

分析:畫程式流程圖是設計測試用例的關鍵。所以首先要把流程圖中的邏輯關係搞清楚再畫出正確的流程圖。

考慮測試用例設計需要首先有測試輸入資料,還要有預期的輸出結果。對於此例,控制迴圈次數靠迴圈控制變數i和迴圈終值high。迴圈0次時,取low = high,此時一次迴圈也不做。

迴圈一次時,取low +1 = high,迴圈二次時,取low+2 = high。

若出題時特別強調要使用bro策略,條件v[i] < pivot && ++k≠i的約束集合為 ,因此,測試用例設計為:

實驗二步驟:

(1)畫出程式流程圖和控制流圖,計算複雜度v(g),其計算公式如下:

v(g)=區域個數

v(g)=邊條數-結點數+2

v(g)=判定節電個數+1

(2)用基本路徑覆蓋法給出測試路徑:

獨立路徑有5條:

①③①②⑤⑧……

①②⑤⑨……

①②④⑥……

①②④⑦……

(3) 為各測試路徑設計測試用例:

路徑①③:取n = 1

路徑①②⑤⑧……:取n = 2,

預期結果:路徑⑤⑧③不可達

路徑①②⑤⑨……:取n = 2,

預期結果:路徑⑤⑨③不可達

路徑①②④⑥⑤⑧③:

取n = 2, v[0] = 2, v[1] = 1, 預期結果:k = 1, v[0] = 1, v[1] = 2

路徑①②④⑥⑤⑨③:

取n = 2, v[0] = 2, v[1] = 1, 預期結果:k = 1, 路徑⑨③不可達

路徑①②④⑦⑤⑧③:

取n = 2, v[0] = 1, v[1] = 2, 預期結果:k = 0, 路徑⑧③不可達

路徑①②④⑦⑤⑨③:

取n = 2, v[0] = 1, v[1] = 2, 預期結果:k = 0, v[0] = 1, v[1] = 2

4.2擴充套件訓練

提示:看到題目給出的條件達12個之多,可以把它們分成4組來討論:

1、 條件1:a+b>c; 條件2:a+c>b; 條件3:b+c>a

這三個表示式有什麼特點呢?實際上它們的邏輯是一樣的:兩個數之和大於第三個數。那麼,前面程式的寫法就存在邏輯重複的地方,應該把這個邏輯提取到乙個函式中。

2、 條件4:0這三個表示式也是同乙個邏輯:判斷乙個數的範圍是否在(0, 200)區間內,也應該把這個邏輯提取到乙個函式中,去掉重複的邏輯,提高**的可重用性。

可重用性的好處:比如,現在使用者的需求改為了三條邊的取值範圍要改為[100,400],那麼,按前面的思路來說,需要改3個地方,而現在只需要在乙個函式裡改1個地方,這就是**重用的好處。

3、條件7:a==b; 條件8:a==c; 條件9:b==c

這三個表示式的邏輯:判斷兩個數是否相等。也應該把它提取到乙個函式中。

我們進一步來分析一下判斷是否是等邊三角形或等腰三角形的條件:

(1)前面程式的判斷是從最直觀的方式(a==b && b==c && a==c)(實際上只需要兩個表示式成立即可)三條邊都相等來判定是等邊三角形;(a==b || b==c || a==c)只有兩條邊相等來判定是等腰三角形。

(2)轉變一下思路:給定三個整數,然後用乙個函式來判斷這三個整數有幾個相等,返回相等的個數,如果返回值等於3,那麼它是等邊三角形,如果返回值是2,那麼它是等腰三角形,否則,它是一般三角形(如果不是直角三角形的話)。

4、條件10:a2+b2==c2 條件11:a2+ c2== b2 條件12:c2+b2== a2

這三個條件的處理方式有兩種:

(1)跟前面三組分析一樣,把相同的邏輯提取到乙個函式中,然後三次呼叫。

(2)根據直角三角形的特點:斜邊是最長的,所以我們可以事先寫乙個函式來找到最長的邊,然後把它賦值給c,這樣處理之後,只需要一次呼叫判定(a2+b2==c2)的函式。

5、實訓思考

(1)良好測試用例的特徵?

(2)測試用例的組成元素與範例?

白盒測試實驗報告4

計算機與資訊科技學院綜合性 設計性實驗報告 專業年級 班級 2015 2016學年第一學期 一 實驗目的 1.能熟練應用功能性測試技術進行測試例設計 2.對測試用例進行優化設計 二 實驗儀器或裝置 計科樓實驗室計算機 三 總體設計 設計原理 設計方案及流程等 內容描述 針對實驗一編寫的源 進行白盒測...

實驗專案三黑盒測試用例設計

實驗名稱 因果圖法設計測試用例 實驗任務 有乙個自動售貨機軟體用於處理單價為1元5角錢的盒裝飲料,若投入1元5角硬幣,按下 可樂 雪碧 或 紅茶 按鈕,相應的飲料就會送出來。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣,用因果圖法設計測試用例。實驗目的 1 掌握黑盒測試技術中的因果圖測試法的基本...

功能測試測試用例設計

註冊 登陸測試用例 一 註冊測試用例 測試編號 001 測試目標 驗證系統是否對必填項為空時做出正確的響應 測試環境 windows xp作業系統和瀏覽器ie6.0 測試步驟 1 開啟瀏覽器,在瀏覽器的位址列中輸入 使用者註冊 頁面的url,單擊 轉到 按鈕 2 在 使用者註冊 介面什麼都沒有輸入,...