软件测试第三次博客作业

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) 写出问题所在

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){ //将a的值赋值给i后输出

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、数组中的元素已将排好

 

  E、数组为空

 

posted @ 2016-04-28 21:17  凌小海  阅读(131)  评论(0编辑  收藏  举报