【課後習題篇】
1. 以下代碼是判斷輸入的年份是否為閏年,設計判定覆蓋和條件覆蓋的測試用例.(P206)
if(year<0){
return -1;
}
if((year%4==0&&year%100!=0)||(year%400==0))
{
return 1;
}
else
{
return 0;
}
}
判定覆蓋
測試數據 | ||||
操作步驟 | 數據 | 期望結果 | 實際結果 | 測試狀態 |
1 | year=-12 | 數據不滿足要求 | 非法數據 | YF |
2 | year=1968 | 滿足判定閏年條件(能整除4且不能被整除100) | 是閏年 | YT,AT,BF |
3 | year=2000 | 滿足判定閏年條件(能整除400) | 是閏年 | YT,AF,BT |
條件覆蓋
測試數據 | ||||
操作步驟 | 數據 | 期望結果 | 實際結果 | 測試狀態 |
1 | year=-12 | 數據不滿足要求 | 非法數據 | DF |
2 | year=1968 | 滿足判定閏年條件(能整除4且不能被整除100) | 是閏年 | DT,AT,BT,CF |
3 | year=2000 | 滿足判定閏年條件(能整除400) | 是閏年 | DT,AF,BF,CT |
2. 以下代碼用於判斷閏年,由C語言書寫,其對應的控制流圖如圖7-14所示。請按要求回答問題(P207)
int isLeap(int year)
{ int leap;
if(year % 4 = = 0)
{
if(year % 100 = = 0)
{
if(year % 400 = =0)
leap = 1;
else
leap = 0;
}
else
leap = 1;
}
else
leap = 0;
return leap;
}
- V(G)=4
- Path1:1-2-10-11-12 Path2: 1-2-3-8-9-11-12 Path3: 1-2-3-4-6-7-9-11-12 Path4: 1-2-3-4-5-7-9-11-12
-
測試用例
條件
輸出
用例1
輸入1000-2001之間能被4整除的數
1004,1020
用例2
輸入1000-2001之間能被4整除但不能被100整除的數
1880,1968
用例3
輸入1000-2001之間能被400整除的數
1200,1600
3. 某公司招聘人員,其要求為學歷本科及以上,專業為計算機、通信、通信、自動化,年齡22~30歲。請劃分出各條件的有效等價類和無效等價類
輸入條件 |
有效等價類 |
無效等價類 |
學歷 |
本科及以上 |
本科以下(不包括本科) |
專業 |
計算機、通信、自動化 |
其他專業 |
年齡 |
22~30歲 |
22歲以下/30歲以上 |
【課後習題篇】