實驗三+030+路凱旋
一、實驗目的
掌握黑盒測試用例設計方法
二、實驗要求
(1)對被測程序進行黑盒測試用例設計
(2)運用等價類、邊界值、決策表、狀態圖法等進行測試用例設計。
(3)對手機上任意一款音樂軟件進行黑盒測試實踐。
三、實驗內容
1、對被測程序運用不同的測試技巧進行測試用例設計,並執行測試,撰寫測試小結。
要求寫出測試用例表、執行情況和測試小結。
2、對手機上任意一款音樂軟件進行黑盒測試。
要求:1)使用思維導圖
2)根據場景法、狀態圖法 設計測試用例。
3)附加題:如有可能嘗試用正交實驗法、組合測試對測試用例進行簡化。
寫出測試用例表、執行情況,測試小結。
測試鏈接:http://www.cnblogs.com/hsy123/p/6803297.html
1.被測項目界面
2.測試用例設計表:
(1)等價類
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
Month |
Month=1,3,5,7,8,10 |
1 |
Month<1 |
13 |
Month=4,6,8,9,11 |
2 |
Month>12 |
14 |
|
Month=2 |
3 |
Month為非整數 |
15 |
|
Month=12 |
4 |
|||
Date |
1<=Day<=27 |
5 |
Day<1 |
16 |
Day=28 |
6 |
Day為非整數 |
17
|
|
Day=29 |
7 |
|||
Day=30 |
8 |
|||
Day=31 |
9 |
Day>31 |
18 |
|
Year |
Year為閏年 |
10 |
Year<1912 |
19 |
Year非閏年 |
11 |
Year>2050 |
20 |
|
Year為整數 |
12 |
Year為非整數 |
21 |
等價類測試用例:
測試用例 |
輸入 |
期望輸出 |
實際輸出 |
覆蓋等價類 |
通過 |
||||||
年 |
月 |
日 |
上一天 |
下一天 |
星期幾 |
上一天 |
下一天 |
星期幾 |
|||
1 |
2017 |
2 |
20 |
2017年2月19日 |
2017年2月21日 |
一 |
2017年2月19日 |
2017年2月21日 |
一 |
3,5,11,12 |
√ |
2 |
2016 |
12 |
28 |
2016年12月27日 |
2016年12月29日 |
三 |
2016年12月27日 |
2016年12月29日 |
三 |
4,6,10,12 |
√ |
3 |
2017 |
5 |
29 |
2017年5月28日 |
2017年5月30日 |
一 |
2017年5月28日 |
2017年5月30日 |
一 |
1,7,11,12 |
√ |
4 |
2017 |
6 |
30 |
2017年6月29日 |
2017年7月1日 |
五 |
2017年6月29日 |
2017年7月1日 |
五 |
2,8,11,12 |
√ |
5 |
1911 |
-1 |
31 |
年份超出範圍! |
年份超出範圍! |
9,12,13,19 |
√ |
||||
6 |
2050.1 |
15.1 |
-1.1 |
輸入有誤,請重新輸入! |
輸入有誤,請重新輸入! |
14,15,16,17 |
√ |
||||
7 |
2011 |
12 |
51 |
月份超出範圍! |
月份超出範圍! |
4,11,12,18 |
√ |
||||
8 |
2017 |
2 |
29 |
日期不合法! |
日期不合法! |
3,7,11,12 |
√ |
||||
9 |
2017 |
12 |
32 |
日期超出範圍! |
日期超出範圍! |
4,11,12,18 |
√ |
(2)邊界值:
變量month,day,year的取值範圍為:
1<=month<=12
1<=day<=31
1912<=year<=2050
邊界值測試用例:
測試用例 |
輸入 |
期望輸出 |
實際輸出 |
通過 |
|||||||||
年 |
月 |
日 |
上一天 |
下一天 |
星期幾 |
上一天 |
下一天 |
星期幾 |
|||||
1 |
2017 |
-1 |
10 |
月份超出範圍! |
月份超出範圍! |
√ |
|||||||
2 |
2017 |
0 |
10 |
月份超出範圍! |
月份超出範圍! |
√ |
|||||||
3 |
2017 |
1 |
17 |
2017年1月16日 |
2017年1月18日 |
二 |
2017年1月16日 |
2017年1月18日 |
二 |
√ |
|||
4 |
2017 |
2 |
17 |
2017年2月16日 |
2017年2月18日 |
五 |
2017年2月16日 |
2017年2月18日 |
五 |
√ |
|||
5 |
2017 |
11 |
17 |
2017年11月16日 |
2017年11月18日 |
五 |
2017年11月16日 |
2017年11月18日 |
五 |
√ |
|||
6 |
2017 |
12 |
17 |
2017年12月16日 |
2017年12月18日 |
天 |
2017年12月16日 |
2017年12月18日 |
天 |
√ |
|||
7 |
2017 |
13 |
15 |
月份超出範圍! |
月份超出範圍! |
√ |
|||||||
8 |
2017 |
5 |
-1 |
日期超出範圍! |
日期超出範圍! |
√ |
|||||||
9 |
2017 |
5 |
0 |
日期超出範圍! |
日期超出範圍! |
√ |
|||||||
10 |
2017 |
5 |
1 |
2017年4月30日 |
2017年5月2日 |
一 |
2017年6月2日 |
2017年5月31日 |
一 |
√ |
|||
11 |
2017 |
5 |
2 |
2017年5月1日 |
2017年5月3日 |
二 |
2017年5月1日 |
2017年5月3日 |
二 |
√ |
|||
12 |
2017 |
5 |
30 |
2017年5月29日 |
2017年5月31日 |
二 |
2017年5月29日 |
2017年5月31日 |
二 |
√ |
|||
13 |
2017 |
6 |
31 |
日期不合法! |
日期不合法! |
√ |
|||||||
14 |
2017 |
6 |
32 |
日期超出範圍! |
日期超出範圍! |
√ |
|||||||
15 |
1911 |
6 |
10 |
年份超出範圍! |
年份超出範圍! |
√ |
|||||||
16 |
1912 |
6 |
10 |
1912年6月9日 |
1912年6月11日 |
一 |
1912年6月9日 |
1912年6月11日 |
一 |
√ |
|||
17 |
1913 |
5 |
10 |
1913年5月9日 |
1913年5月11日 |
六 |
1913年5月9日 |
1913年5月11日 |
六 |
√ |
|||
18 |
2049 |
5 |
10 |
2049年5月9日 |
2049年5月11日 |
一 |
2049年5月9日 |
2049年5月11日 |
一 |
√ |
|||
19 |
2050 |
5 |
10 |
2050年5月9日 |
2050年5月11日 |
二 |
2049年5月9日 |
2049年5月11日 |
二 |
√ |
|||
20 |
2051 |
5 |
10 |
年份超出範圍! |
年份超出範圍! |
√ |
(3)決策表:
NextDate:
條件樁如下:
M1={month:month=4,6,9,11}
M2={month:month=1,3,5,7,8,10,}
M3={month:month=12}
M4={month:month=2}
D1={day:1<=day<=27}
D2={day:day=28}
D3={day: day=29}
D4={day:day=30}
D5={day:day=31}
Y1={year: year為閏年}
Y2={year:year為非閏年}
動作樁如下:
R1:變量day加1操作;
R2:變量day復位操作;
R3:變量month加1操作;
R4:變量month復位操作;
R5:變量year加1操作;;
R6:日期不合法!
決策表:
選項規則 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
|
條件 |
C1=month在 |
M1 |
M1 |
M1 |
M1 |
M1 |
M2 |
M2 |
M2 |
M2 |
M2 |
M3 |
M3 |
M3 |
M3 |
M3 |
M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
C2=day在 |
D1 |
D2 |
D3 |
D4 |
D5 |
D1 |
D2 |
D3 |
D4 |
D5 |
D1 |
D2 |
D3 |
D4 |
D5 |
D1 |
D2 |
D2 |
D3 |
D3 |
D4 |
D5 |
|
C3=year在 |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
-- |
Y1 |
Y2 |
Y1 |
Y2 |
-- |
-- |
|
動作 |
R1:day+1 |
√ |
√ |
√ |
|
|
√ |
√ |
√ |
√ |
|
√ |
√ |
√ |
√ |
|
√ |
√ |
|
|
|
|
|
R2:day復位 |
|
|
|
√ |
|
|
|
|
|
√ |
|
|
|
|
√ |
|
|
√ |
√ |
|
|
|
|
R3:month+1 |
|
|
|
√ |
|
|
|
|
|
√ |
|
|
|
|
|
|
|
√ |
√ |
|
|
|
|
R4:month復位 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
R5:yea+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R6:日期不合法! |
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
√ |
√ |
選項規則 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
|
條件 |
C1=month在 |
M5 |
M5 |
M5
|
M5 |
M5 |
M5 |
M6 |
M6 |
M6 |
M6 |
M6 |
M6
|
C2=day在 |
D2 |
D3 |
D3 |
D4 |
D5 |
D6 |
D1 |
D2 |
D2 |
D3 |
D4 |
D3 |
|
C3=year在 |
-- |
Y1 |
Y2 |
-- |
-- |
-- |
-- |
Y1 |
Y2 |
-- |
--
|
--- |
|
動作 |
R1:day-1;
|
|
√ |
|
|
|
|
√ |
|
|
√ |
√ |
√ |
R2:day=28;
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
R3:day=29;
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
R4:day=30;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R5:day=31;
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
R6:month-1;
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
R7:month=12;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R8:year-1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R9:日期不合法!
|
|
|
√ |
√ |
√ |
√ |
|
|
|
|
|
|
測試用例:
測試用例 |
輸入 |
期望輸出 |
實際輸出 |
通過 |
||
年 |
月 |
日 |
上一天 |
上一天 |
||
1 |
2017 |
5 |
10 |
2017年5月9日 |
2017年5月9日 |
√ |
2 |
2017 |
5 |
1 |
2017年4月30日 |
2017年4月30日 |
√ |
3,4 |
2017 |
5 |
29 |
2017年5月28日 |
2017年5月28日 |
√ |
5 |
2017 |
5 |
31 |
2017年5月30日 |
2017年5月30日 |
√ |
6 |
2017 |
4 |
10 |
2017年4月9日 |
2017年4月9日 |
√ |
7 |
2017 |
4 |
1 |
2017年3月31日 |
2017年3月31日 |
√ |
8,9 |
2017 |
4 |
29 |
2017年4月28日 |
2017年4月28日 |
√ |
10 |
2017 |
4 |
31 |
2017年4月30日 |
2017年4月30日 |
√ |
11 |
2017 |
8 |
4 |
2004年8月3日 |
2004年8月3日 |
√ |
12 |
2017 |
8 |
1 |
2017年7月31日 |
2017年7月31日 |
√ |
13,14,15 |
2017 |
8 |
31 |
2017年8月30日 |
2017年8月30日 |
√ |
16 |
2017 |
1 |
4 |
2017年1月3日 |
2017年1月3日 |
√ |
17 |
2017 |
1 |
1 |
2016年12月31日 |
2016年12月31日 |
√ |
18~20 |
2017 |
1 |
29 |
2017年1月28日 |
2017年1月28日 |
√ |
21 |
2017 |
2 |
4 |
2017年2月4日 |
2017年2月4日 |
√ |
22 |
2017 |
2 |
1 |
2017年1月31日 |
2017年1月31日 |
√ |
23 |
2004 |
2 |
29 |
2017年2月28日 |
2017年2月28日 |
√ |
24 |
2017 |
2 |
29 |
日期不合法! |
日期不合法! |
√ |
25,26,27 |
2017 |
2 |
30 |
日期不合法! |
日期不合法! |
√ |
28 |
2017 |
3 |
4 |
2017年3月3日 |
2017年3月3日 |
√ |
29 |
2004 |
3 |
1 |
2004年2月29日 |
2004年2月29日 |
√ |
30 |
2005 |
3 |
1 |
2005年2月28日 |
2005年2月28日 |
√ |
31~33 |
2017 |
3 |
29 |
2017年3月28日 |
2017年3月28日 |
√ |
2.對apple music 進行黑盒測試
思維導圖:
場景法:
基本流:播放音樂
備選流1:暫停播放
備選流2:繼續播放
備選流3 :重復播放模式開
備選流4:重復播放模式關
備選流5:隨機播放模式開
備選流6:隨機播放模式關
序號 | 場景 | 流 | 預期結果 | 實際結果 | 是否通過 |
1 | 播放音樂 | 基本流 | 播放音樂 | 播放音樂 | √ |
2 | 音樂暫停 | 備選流1 | 音樂暫停 | 音樂暫停 | √ |
3 | 繼續播放 | 備選流2 | 繼續播放 | 繼續播放 | √ |
4 | 重復播放模式開 | 備選流3 | 循環播放 | 循環播放 | √ |
5 | 重復播放模式關 | 備選流4 | 單曲循環 | 單曲循環 | √ |
6 | 隨機播放模式開 | 備選流5 | 隨機播放 | 隨機播放 | √ |
7 | 隨機播放模式關 | 備選流6 | 順序播放 | 順序播放 | √ |
狀態法:
測試結果:結果與預期相符
測試小結:apple music 功能繁多,界面復雜,這裏只列出了主要的功能界面並且測試了基本的播放功能,通過這次測試明白了app開發工作的不易,而且要掌握各種邏輯性,各功能之間獨立而又緊密聯系互相影響 。
實驗三+030+路凱旋