《软件测试》实验四
?白盒測試 ??????????????????????????????????????????????????????
?實驗?zāi)康?/strong>
(1)?掌握靜態(tài)分析代碼的技巧
(2)?學(xué)習(xí)黑盒測試中的等價類劃分
實驗內(nèi)容
?
一、?找出函數(shù)中存在的問題。以下題目均在Lab04項目中完成。
?
1、?某站點(diǎn)通過用戶輸入的用戶名和密碼(在login.jsp登錄頁中輸入)來判斷出現(xiàn)什么樣的界面,如果是管理員(即用戶名為admin或administrator)跳轉(zhuǎn)到管理員頁面(welcome_admin.jsp),非管理用戶跳轉(zhuǎn)到普通用戶界面(welcome.jsp)。游客訪問站點(diǎn)是,無需輸入用戶名和密碼,直接進(jìn)入普通用戶界面(welcome.jsp)。
?要求:找出UserOperation.java文件中的getUserRole?()方法存在的問題,說明問題產(chǎn)生的原因,并修改它。
?說明:不要求編寫Junit單元測試用例,可以自己設(shè)想測試數(shù)據(jù),通過靜態(tài)分析,配合動態(tài)運(yùn)行調(diào)試找出問題所在。
解答:
問題:判斷方式不安全,當(dāng)普通用戶或游客輸入的userName為admin或者administrator將直接進(jìn)入管理員頁面
?
原因:只判斷用戶名,沒有判斷密碼
?
修改:
????public?String getUserRole(String username, String password){
?????? String userRole="guest";
If(null != password && !“”.equals(password)){
??? ?????????? If(null != username && !“”.equals(username)){
if(userName.equals("admin")||userName.equals("administrator"){
?????????? ??? ?????? ?userRole="admin";
?????? ????????????? }??
?????? ???????return?userRole;
}
else{
??? ??????????????????return?userRole;
}
}
else{
??? ??????????????return?userRole;
}
?
?
?
2、?用戶注冊(register.jsp)時要輸入年齡字段,用戶輸入的參數(shù)由UserOperation.java文件中的validateUserAge()方法,轉(zhuǎn)換為數(shù)值型,判斷年齡是否在18~26之間(包括18和26),如果年齡在此區(qū)間內(nèi),則返回true,跳轉(zhuǎn)到login.jsp頁,否則彈出提示框,提示“用戶年齡輸入不正確”。
?
要求:找出UserOperation.java文件中的validateUserAge()方法存在的問題,說明問題產(chǎn)生的原因,并修改它。
?
說明:不要求編寫Junit單元測試用例,可以自己設(shè)想測試數(shù)據(jù),通過靜態(tài)分析,配合動態(tài)運(yùn)行調(diào)試找出問題所在。
答:
問題:用戶沒有判斷類型,不知道是否有輸入值
解決:
public?boolean?validateUserAge(String userAge){
If(null != userAge?&& !“”.equals(userAge)){?if(Integer.parseInt(userAge)>=18&&Integer.parseInt(userAge)<=26){
?????????????????????return?true;
????????????????????}
else{
return?false;
}
????????} ????????????????
else{
return?false;
}
}
?二、利用黑盒測試中的等價類劃分完成以下題目
?
3、某程序規(guī)定:"輸入三個非0正整數(shù) a 、 b 、 c 分別作為三邊的邊長構(gòu)成三角形(暫不考慮特殊三角形的情況)。請根據(jù)給出的說明,用等價類劃分法進(jìn)行劃分,并給每個等價類規(guī)定唯一的編號。
?解答:
?
| 所需判斷 | 有效 | 無效 |
| 三位非0正整數(shù)abc | 不輸入0 | 輸入0 |
| 輸入 | 空白 | |
| 輸3位 | 缺幾位或者多幾位 | |
| 輸入正整數(shù) | 輸入其他字符串 | |
| 構(gòu)成三角形 | 輸入的數(shù)不構(gòu)成三角形 |
實例
| 所需判斷 | 有效 | 無效 |
| 三位非0正整數(shù)abc | ? 3??? 4?? 5 ? | ?0?? 4??? 0 |
| ? | ||
| 3??? 4 | ||
| A??? b?? 5 | ||
| 1??? 1??? 1 |
?
轉(zhuǎn)載于:https://www.cnblogs.com/xianggege/p/5517579.html
總結(jié)
- 上一篇: 关于Cocos2d-x的专属数据类型
- 下一篇: qemu-kvm磁盘读写的缓冲(cach