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 在 使用者註冊 介面什麼都沒有輸入,...