實驗專案名稱:實驗一 黑盒測試
一、 實驗目的
1、 掌握黑盒測試的基礎知識;
2、 掌握黑盒測試的檢查內容及測試目的;
3、 掌握黑盒測試的幾種基本測試方法:等價類劃分方法、邊界值分析方法、因果圖法、決策表法和場景法;
二、 實驗內容
實驗題目:
1、設計函式實現輸入日期顯示星期幾,並用等價類及邊界值法測試
2、找零錢最佳組合
3、飲料自動售貨機控制處理軟體
4、航空服務查詢問題:根據航線,倉位,飛行時間查詢航空服務。
5、旅館住宿系統中,旅館業主可進行新增房間操作。
三、 實驗步驟及結果
1、設計函式實現輸入日期顯示星期幾,並用等價類及邊界值法測試
實驗步驟:
設計程式
劃分等價類,得到等價類表。等價類表格式如下:
輸入條件 |
有效等價類 |
唯一標識 |
無效等價類 |
唯一標識 |
年 |
年>0 |
1 |
年<=0 |
7 |
月 |
1<=月<=12 |
2 |
月<1 |
8 |
|
|
|
月>12 |
9 |
日 |
月=1/3/5/7/8/10/12 1<=日<=31 |
3 |
月=1/3/5/7/8/10/12 日<1 日>31 |
10 11 |
|
月=4/6/9/11 1<=日<=30 |
4 |
月=4/6/9/11 日<1 日>30 |
12 13 |
|
閏年 月=2 1<=日<=29 |
5 |
閏年 月=2 日<1 日>29 |
14 15 |
|
平年 月=2 1<=日<=28 |
6 |
平年 月=2 日<1 日>28 |
16 17 |
運用等價類劃分法設計測試用例,得到測試用例表。測試用例表格式如下:
序號 |
輸入資料 |
覆蓋等價類 |
輸出 |
1 |
2022,5,31 |
1,2,3 |
星期二 |
2 |
2020,4,30 |
1,2,4 |
星期四 |
3 |
2000,2,29 |
1,2,5 |
星期二 |
4 |
1999,2,28 |
1,2,6 |
星期日 |
5 |
0000,12,20 |
7,2,3 |
錯誤 |
6 |
1988,0,4 |
1,8 |
錯誤 |
7 |
2024,13,10 |
1,9 |
錯誤 |
8 |
2020-7-0 |
1,2,10 |
錯誤 |
9 |
2021,5,32 |
1,2,11 |
錯誤 |
10 |
1999,4,0 |
1,2,12 |
錯誤 |
11 |
2023,9,31 |
1,2,13 |
錯誤 |
12 |
2004,2,0 |
1,2,14 |
錯誤 |
13 |
2008,2,30 |
1,2,15 |
錯誤 |
14 |
1999,2,0 |
1,2,16 |
錯誤 |
15 |
2023,2,29 |
1,2,17 |
錯誤 |
運用邊界值法設計測試用例。
{<1,6,23>,<2,6,23>,<2000,1,23>,<2000,2,23>,<2000,11,23>,<2000,12,23>,<2000,6,23>,<2000,6,1>,<2000,6,2>,<2000,5,30>,<2000,5,31>,<2000,6,29>,<2000,6,30>,<2000,2,28>,<2000,2,29>,<1999,2,27>,<1999,2,28>}
2、找零錢最佳組合
假設商店貨品價格(R) 都不大於100元(且為整數),若顧客付款(P)在100元內,現有一個程式能在每位顧客付款後給出找零錢的最佳組合(找給顧客貨幣張數最少)。 假定此商店的貨幣面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四種。
請結合等價類劃分法和邊界值分析法為上述程式設計 出相應的測試用例。
實驗步驟:
設計程式
劃分等價類,得到等價類表。等價類表格式如下:
輸入條件 |
有效等價類 |
唯一標識 |
無效等價類 |
唯一標識 |
商品價格 |
0<=R<=100 |
1 |
R<0或R>100 |
3 |
|
|
|
R非數字 |
4 |
顧客付款 |
0<=P<=100 |
2 |
P<0或P>100 |
5 |
|
|
|
P非數字 |
6 |
|
|
|
R>P |
7 |
運用等價類劃分法設計測試用例,得到測試用例表。測試用例表格式如下:
序號 |
輸入資料 |
覆蓋等價類 |
輸出 |
1 |
R=50,P=60 |
1,2 |
10元一張 |
2 |
R=110,P=20 |
2,3 |
輸入價格無效 |
3 |
R=d,P=20 |
2,4 |
輸入價格無效 |
4 |
R=50,P=120 |
1,5 |
輸入支付金額無效 |
5 |
R=20,P=d |
1,6 |
輸入支付金額無效 |
6 |
R=60,P=20 |
1,7 |
顧客付款小於商品價格 |
運用邊界值法設計測試用例。
{<1,1>,<2,2>,<99,50>,<100,50>,<60,50>,<60,1>,<60,2>,<100,99>,<100,100> }
7 |
R=99,P=100 |
1,2 |
一元一張 |
8 |
R=101,P=102 |
3,5 |
無效輸入 |
9 |
R=-1,P=1 |
2,3 |
無效輸入 |
3、有一個飲料自動售貨機(處理單價為5角錢)的控制處理軟體,它的軟體規格說明如下:
若投入5角錢的硬幣,按下“橙汁”或“啤酒”的按鈕,則相應的飲料就送出來。若投入1元錢的硬幣,同樣也是按“橙汁”或“啤酒”的按鈕,則自動售貨機在送出相應飲料的同時退回5角錢的硬幣。
模擬程式如下:
用因果圖法測試該程式,並撰寫實驗報告。
實驗步驟:
①編寫程式
②分析原因與結果,與同學交換程式測試。
原因:1.售貨機有零錢
2.投入1元硬幣
3.投入5角硬幣
4.按下橙汁按鈕
5.按下啤酒按鈕
結果:21.售貨機【零錢找完】燈亮
22.退還1元硬幣
23.退還5角硬幣
24.送出橙汁
25.送出啤酒
③畫出因果圖
④轉化為決策表
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
條件樁 |
五角硬幣 |
1 |
1 |
0 |
0 |
1 |
0 |
- |
- |
|
一元硬幣 |
0 |
0 |
1 |
1 |
0 |
1 |
- |
- |
|
橙汁按鈕 |
1 |
0 |
1 |
0 |
- |
- |
1 |
0 |
|
啤酒按鈕 |
0 |
1 |
0 |
1 |
- |
- |
0 |
1 |
動作樁 |
出啤酒 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
|
出橙汁 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
找五角錢 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
⑤根據決策表設計測試用例,得到測試用例表
一元硬幣1,五角硬幣2;啤酒按鈕1,橙汁按鈕2
序號 |
輸入資料 |
期望輸出 |
實際輸出 |
1 |
1,1 |
出啤酒,找回五角硬幣 |
出啤酒,找回五角硬幣 |
2 |
2,1 |
出啤酒 |
出啤酒 |
3 |
3,1 |
無效資料 |
無效資料 |
4 |
1,5 |
無效資料 |
無效資料 |
5 |
2,2 |
出橙汁,找回五角硬幣 |
出橙汁,找回五角硬幣 |
6 |
2,1 |
出橙汁 |
出橙汁 |
4、航空服務查詢問題:根據航線,倉位,飛行時間查詢航空服務。
假設一箇中國的航空公司規定:
① 中國去歐美的航線所有座位都有食物供應,每個座位都可以播放電影。
② 中國去非歐美的國外航線都有食物供應,只有商務倉可以播放電影。
③ 中國國內的航班的商務倉有食物供應,但是不可以播放電影
④ 中國國內航班的經濟倉只有當飛行時間大於2小時時才有食物供應,但是不可以播放電影。
請用程式實現上述功能,並用決策表法設計測試用例,再執行測試,撰寫實驗報告。
實驗步驟:
① 編寫程式,與同學交換程式測試。
② 構造決策表
|
|
1 |
2 |
3 |
4 |
5 |
6 |
條件樁 |
歐美 |
1 |
0 |
0 |
0 |
0 |
0 |
|
國外非歐美 |
0 |
1 |
1 |
0 |
0 |
0 |
|
國內 |
0 |
0 |
0 |
1 |
1 |
1 |
|
商務艙 |
- |
1 |
0 |
1 |
0 |
0 |
|
經濟艙 |
- |
0 |
1 |
0 |
1 |
1 |
|
飛行時間兩小時以內 |
- |
- |
- |
- |
0 |
1 |
|
飛行時間超過兩小時 |
- |
- |
- |
- |
1 |
0 |
動作樁 |
播放電影 |
1 |
1 |
0 |
0 |
0 |
0 |
|
食物供應 |
1 |
1 |
1 |
1 |
1 |
0 |
|
找五角錢 |
0 |
0 |
1 |
1 |
0 |
0 |
③ 根據決策表設計測試用例,得到測試用例表
歐美1,國外非歐美2,國內3;商務艙1,經濟艙2;飛行時間兩小時以內1,飛行時間超過兩小時2
序號 |
輸入資料 |
輸出 |
1 |
1,1,2 |
食物供應,播放電影 |
2 |
1,1,1 |
食物供應,播放電影 |
3 |
2,1,2 |
播放電影 |
4 |
2,2,1 |
食物供應 |
5 |
3,1,2 |
食物供應 |
6 |
3,2,1 |
無 |
5、旅館住宿系統中,旅館業主可進行新增房間操作。
– 旅館業主登入旅館住宿系統後,可以請求新增房間;
– 待進入“房間管理”對話方塊,單擊“新增”按鈕可進行新增房間操作;
– 新增房間時,可以設定房間的房間編號、房間型別、房間描述資訊;
– 新增房間資訊不能缺失,若某一項未填寫,要給出提示資訊;
– 房間編號長度不超過5個字元;
– 房間描述長度不超過1000個字元;
– 房間資訊不能重複,成功填寫後,可進行儲存或取消操作,之後返回“房間管理”對話方塊,結束新增房間流程。
實驗步驟:
利用黑盒測試策略編寫新增房間功能的測試用例。
輸入條件 |
有效等價類 |
唯一標識 |
無效等價類 |
唯一標識 |
房間編號 |
1-5個字元的有效字串 |
1 |
空字串 |
4 |
|
|
|
超過5個字元的字串 |
5 |
房間型別 |
有效的房間型別 |
2 |
空 |
6 |
|
|
|
無效的房間型別 |
7 |
房間描述資訊 |
1-1000個字元的有效描述資訊 |
3 |
空 |
8 |
|
|
|
超過1000個字元的字串 |
9 |
運用等價類劃分法設計測試用例,得到測試用例表。測試用例表格式如下:
序號 |
輸入資料 |
覆蓋等價類 |
輸出 |
1 |
房間編號: "101",房間型別: "單人間",房間描述資訊: "舒適的單人間" |
1,2,3 |
房間成功新增並儲存 |
2 |
房間編號: "",房間型別: "雙人間",房間描述資訊: "寬敞的雙人間" |
4,2,3 |
新增失敗,提示缺失房間編號 |
3 |
房間編號: "",房間型別: "雙人間",房間描述資訊: "寬敞的雙人間" |
5,2,3 |
新增失敗,提示房間編號超出長度限制 |
4 |
房間編號: "10001",房間型別: "",房間描述資訊: "豪華套房" |
1,3,6 |
新增失敗,提示缺失房間型別 |
5 |
房間編號: "10001",房間型別: "&&",房間描述資訊: "豪華套房" |
1,7,6 |
新增失敗,提示無效房間型別 |
6 |
房間編號: "102",房間型別: "單人間",房間描述資訊: "" |
1,2,8 |
新增失敗,提示無房間描述資訊 |
7 |
房間編號: "102",房間型別: "單人間",房間描述資訊: "超級豪華大床房,設施齊全,景觀無敵..." |
1,2,9 |
新增失敗,提示房間描述資訊過長 |
四、 個人體會
1、在實際的測試中,如何設計測試用例才能達到用最少的測試用例檢測出最多的缺陷;
(1)使用等價類劃分和邊界值分析等技術,識別關鍵的輸入領域和邊界條件。
(2)優先選擇具有代表性的測試用例,以覆蓋不同的等價類和邊界情況,從而最大限度地檢測缺陷。
(3)利用因果圖和狀態圖等技術,識別功能之間的關聯,從而設計具有高效覆蓋率的測試用例。
2、在進行用例設計時,如何考慮軟體測試用例的充分性和減少軟體測試用例的冗餘性;
(1)確保測試用例覆蓋了所有預期的功能需求和非功能需求,包括正常情況和異常情況。
(2)避免重複測試相同功能或路徑,透過設計測試用例時的巧妙組合和排列,減少測試用例的冗餘性。
(3)使用測試用例評估工具和技術,如覆蓋率分析和配對測試,確保測試用例集合既充分又高效。
3、本次實驗遇到的難點、如何解決的及體會。
難點:測試用例設計困難
解決:使用測試技術,採用等價類劃分、邊界值分析、因果圖等測試技術來指導測試用例的設計,確保覆蓋功能的關鍵方面。
體會:黑盒測試雖然具有挑戰,但透過有效的測試技術和適當的工具支援,可以克服難點並設計出高質量的測試用例,從而提高軟體的質量和可靠性。