一、 某站點經過用戶輸入的用戶名和密碼(在login.jsp登陸頁中輸入)來判斷出現什麼樣的界面,若是是管理員(即用戶名爲admin或administrator)跳轉到管理員頁面(welcome_admin.jsp),非管理用戶跳轉到普通用戶界面(welcome.jsp)。遊客訪問站點是,無需輸入用戶名和密碼,直接進入普通用戶界面(welcome.jsp)。java
要求:找出UserOperation.java文件中的getUserRole ()方法存在的問題,說明問題產生的緣由,並修改它。jsp
說明:不要求編寫Junit單元測試用例,能夠本身設想測試數據,經過靜態分析,配合動態運行調試找出問題所在。單元測試
問題:當用index.jsp登陸時,在肯定跳轉時會出現錯誤;而用login.jsp登錄時,不會出錯。測試
緣由:在UserOperation.java文件中的getUserRole ()方法存在的問題是,它沒有設置考慮到隱用戶的處理(即當用戶名爲空值時)。spa
修改://增長判斷,先對userName作出判斷,是否未看,不爲空再繼續執行,若爲空則默認userRole="guest"調試
public String getUserRole(String userName){ci
String userRole="guest";get
if(userName!=null){it
if(userName.equals("admin") || userName.equals("administrator")){io
userRole="admin";
}
}
else{
userRole="guest";
}
return userRole;
}
二、 用戶註冊(register.jsp)時要輸入年齡字段,用戶輸入的參數由UserOperation.java文件中的validateUserAge()方法,轉換爲數值型,判斷年齡是否在18~26之間(包括18和26),若是年齡在此區間內,則返回true,跳轉到login.jsp頁,不然彈出提示框,提示「用戶年齡輸入不正確」。
要求:找出UserOperation.java文件中的validateUserAge()方法存在的問題,說明問題產生的緣由,並修改它。
問題:用戶註冊(register.jsp)時要輸入年齡字段,除了輸入數字外,輸入其餘字符都會報錯,出現500的語法錯誤。
緣由:UserOperation.java文件中的validateUserAge()方法中沒有作異常(除數字外其餘輸入)的處理。
修改:
/* throws Exception拋出異常處理
* try {}catch(Exception e){}捕獲異常並處理
*/
public boolean validateUserAge(String userAge)throws Exception{
try {
if(Integer.parseInt(userAge)<18 || Integer.parseInt(userAge)>26){
return true;
}
}catch(Exception e){
return true;
}
return false;
}
}
說明:不要求編寫Junit單元測試用例,能夠本身設想測試數據,經過靜態分析,配合動態運行調試找出問題所在。
2、利用黑盒測試中的等價類劃分完成如下題目
三、某程序規定:"輸入三個非0正整數 a 、 b 、 c 分別做爲三邊的邊長構成三角形(暫不考慮特殊三角形的狀況)。請根據給出的說明,用等價類劃分法進行劃分,並給每一個等價類規定惟一的編號。
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
輸入三個非0正整數 a 、 b 、 c 構成三角形 |
三個非零正整數 a>0,b>0,c>0 |
1 |
有一邊爲非正整數(a<=0或b<=0或c<=0) |
2 |
有兩邊爲非正整數(a<=0,b<=0或a<=0,c<=0或b<=0,c<=0) |
3 |
|||
三邊都爲非正整數(a<=0,b<=0,c<=0) |
4 |
|||
兩邊之和大於第三邊 a+b>c或a+c>b或b+c>a |
5 |
兩邊之和不大於第三邊 a+b<=c或a+c<=b或b+c<=a |
6 |
|
兩邊之差小於第三邊 a-b<c或a-c<b或b-c<a |
7 |
兩邊之差不小於第三邊 a-b>=c或a-c>=b或b-c>=a |
8 |