软件测试第三次博客作业

1、  某网站管理系统,用户注册时,电话号码为可选输入项,输入格式为:区号-电话号码—分机号,中间用“-”隔开。以下为jsp页面上的设计,且并未对输入做任何控制。

 

假设系统现在需要取出中间的电话号码部分,代码如下:

/**
 
     * 
 
     *  
     * @param PhoneNum  电话号码,如:“0760-8888888—011”
 
     * @return  返回号码部分,如:“8888888”
 
     */
 
    public String getPhoneNumber(String strPhoneNum){
 
        if((strPhoneNum==null) || "".equals(strPhoneNum)){
 
            return "";
 
        }
 
        String[] arrPhone=strPhoneNum.split("-");
 
        return arrPhone[1];
 
    }

  

请用你学过的测试技术和方法,找出该方法中存在的问题,并且分析出现该问题的原因,同时给出你的解决方案。(提示:存在的问题不止一个)

要求:

(1) 写出问题所在

A、可以无限制输入号码

B、没有定义输入的是否是数字

C、没有验证是否为空

(2) 写出问题产生的原因

A、没有限制输入的长度

B、缺少判断

C、缺少验证

(3) 给出修改后的代码

 public String getPhoneNumber(String strPhoneNum){
 
        if((strPhoneNum==null) || "".equals(strPhoneNum)){
 
            if(strPhoneNum.lenth==17){
 
                    return "true";
 
 
 
         }else{
 
 
 
         return "false";
 
         System.out.println("输入的号码格式不正确!!!");
 
         }
 
        }
 
        String[] arrPhone=strPhoneNum.split("-");
 
        return arrPhone[1];
 
    }
 
  

2、  请写一段用于整型数组排序的代码,说明你的设计思路,并利用错误推测法给出可能出错的情况(至少5种),设计出测试用例,并利用JUnit编写单元测试进行测试。(假设传入的参数已经确定为整型数组)

要求:

(1) 写出代码,并符合代码规范(命名要规范,不可直接写在main方法中,需要有类注释、方法注释、以及适当的行注释)

 public class SuPeng {
 
 
 
/**
 
 * 简单排序
 
 * 2016/04/28
 
 * @author
 
 */
 
public static int[] jiandan(int[] a){
 
     //比较和交换
 
      int temp;
 
       for( int i=0;i<a.length-1;i++){  
 
 
 
            for( int j=i+1;j<a.length;j++){
 
            
 
                if (a[i]>a[j]){  
 
 
 
                    temp=a[i];  
 
 
 
                    a[i]=a[j];  
 
 
 
                    a[j]=temp;  
 
 
 
                    }  
 
 
 
         } 
 
 
 
       
 
 
 
       }
 
 
 
for(int i:a){ 
 
System.out.println(i + "");
 
}
 
 
 
       return a;
 
 
 
   
 
 
 
    }
 
 
 
   
 
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
int[] i={1,3,0};
 
System.out.println("排序后的结果为:");
 
jiandan(i);  //调用排序jiandna方法
 
System.out.println();
 
}
 
}
 
 
 
 

  

(2) 说明你的设计思路

  设一个整型数组int a[4],包含四个元素:

a[0]= 4a[1] =3a[2] =1a[3] =2

简单比较排序最基本的操作是比较和交换。该算法的思路(从小到大排)是:a[0]元素与其后的各个元素比较,如果a[i]小于a[0]a[i]a[0]交换,否则,不交换。

经过第一轮比较、交换,最小值元素存入a[0]。再用a[1]元素与其后的各个元素比较,如果a[i] 小于a[1], a[i]a[1]交换,否则,不交换。经过第二轮比较、交换,次小值元素存入a[1]。继续重复上述操作,直到各元素都按值从小到大排列,排序结束。

(3) 写出可能出错的情况(至少五种)

   A、数组只含有一个元素

   B、数组中含有负数

   C、数组中所有的元素都相同

   D、数组中的元素已将排好

   E、数组为空

(4) 编写JUnit单元测试,将前面给出的可能出错的测试数据放入单元测试进行测试

  A、

B

C

D

posted on 2016-04-28 23:22  阿明0  阅读(104)  评论(0编辑  收藏  举报