標籤:
1、 某網站管理系統,使用者註冊時,電話號碼為可選輸入項,輸入格式為:區號-電話號碼—分機號,中間用“-”隔開。以下為jsp頁面上的設計,且並未對輸入做任何控制。
假設系統現在需要取出中間的電話號碼部分,代碼如下:
/**
*
* 該方法根據使用者輸入取出中間的電話號碼部分
* @param strPhoneNum 電話號碼,如:“0591-83279988—002”
* @return 返回號碼部分,如:“83279988”
*/
public String getPhoneNumber(String strPhoneNum){
if((strPhoneNum==null) || "".equals(strPhoneNum)){
return "";
}
String[] arrPhone=strPhoneNum.split("-");
return arrPhone[1];
}
請用你學過的測試技術和方法,找出該方法中存在的問題,並且分析出現該問題的原因,同時給出你的解決方案。(提示:存在的問題不止一個)
要求:
(1) 寫出問題所在
沒有考慮使用者輸入資料的完整性,以及資料類型。返回的結果數組錯誤。
(2) 寫出問題產生的原因
If語句判斷條件太少。
(3) 給出修改後的代碼
public String getPhoneNumber(String strPhoneNum){
if((strPhoneNum==null) || "".equals(strPhoneNum)){
return "";
}
String[] arrPhone=strPhoneNum.split("-");
if(arrPhone.length>1){
return arrPhone[1];
}
return ””;
}
2、 請寫一段用於整型數組排序的代碼,說明你的設計思路,並利用錯誤推測法給出可能出錯的情況(至少5種),設計出測試案例,並利用JUnit編寫單元測試進行測試。(假設傳入的參數已經確定為整型數組)
要求:
(1) 寫出代碼,並符合代碼規範(命名要規範,不可直接寫在main方法中,需要有類注釋、方法注釋、以及適當的行注釋)
import java.util.Scanner;
public class Demo {
public static void sort(int[] values){
int temp;
for(int i=0;i<values.length;i++){//趟數
for(int j=0;j<values.length-i-1;j++){//比較次數
if(values[j]>values[j+1]){
temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
}
}
}
}
}
(2) 說明你的設計思路
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後一個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
(3) 寫出可能出錯的情況(至少五種)
- 數組沒有元素
- 元素全部相同
- 有負數參與
- 有浮點數參與
- 既是負數又是浮點數
(4) 編寫JUnit單元測試,將前面給出的可能出錯的測試資料放入單元測試進行測試
1.
2.
3.
4.
5.
《軟體測試》 第三次部落格作業