第三次博客作业

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

 

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

要求:

(1)    写出问题所在

当用户只输入中间部分的电话号码,则程序报错或者输入区号电话号和分机号但没有输入-,则程序也会报错,如果输入的不是-而是—,则会连后面的区号和”—“一起输出。

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

代码中固定了用户必须3种号码都必须输入,然后固定取存储在数组中的第二个数组,如果缺少了号码,则程序就会报错

(3) 给出修改后的代码

public String getPhoneNumber(String strPhoneNum){

        String result = "";

     

       if((strPhoneNum == null)|| "".equals(strPhoneNum)){

           return  result="";

       }

       if(strPhoneNum.length() == 17){

           for(int i=0;i<=17;i++){

              result = strPhoneNum.substring(5, 12);

           }  

        }else{

           return result = "输入格式错误!";

       }

       return result;

    }  

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

要求:

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

(2) 说明你的设计思路

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

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

(1)

/**

 * 整数数组排序(冒泡排序)

 * @author 洪曙鹏

 *

 */

 

public class ArraySort {

    //创建一个方法,初始化参数为int型数组,返回值也是int型数组

    public int[] arraySort(int[] num){

      

       //进行for循环排序,使用两次for循环

       for(int i=0;i<num.length-1;i++){  

            for(int j=0;j<num.length-1-i;j++){

            //第一次循环:如果第一个数字大于第二个数字,则两个数字互换位置,直到把最大的数字存到最后一位,再进行第二次循环,

            //第二次循环继续从第一个数字与第二个数字比较,直到把第二大的数字放在倒二,依次类推。

                if (num[j]>num[j+1]){  

                    int temp=num[j];  

                    num[j]=num[j+1];  

                    num[j+1]=temp;  

                    }  

         } 

       

       }

       return num;

   

    }

   

    public static void main(String args[]){

       int[] num = {3,55,1,2};

       ArraySort a = new ArraySort();

       int[] b=a.arraySort(num);

       for(int i = 0;i<b.length;i++){

           System.out.println(b[i]);

       }

    }

}

 

(2)

    设计思路:

       使用两次for循环,先第一个for循环,定义一个变量i,i要小于要测试的数组的长度,执行第二个for循环,定义一个变量j,j要小于被测试的数组的长度 并减去i,因为冒泡排序是每次排序完后将最大的数放在最后,然后执行if语句,如果数组内的第一个数字大于第二个数字,则调换位置,如果小于第二个数字,则将第二个数字与第三个数字比较,依次类推,直到把最大的数放在最后一位,再执行第二个。依次类推。

(3)

    可能出现错误情况:

  1. 数组内没有数字
  2. {3,1,2,3}
  3. {0,0,0,0}
  4. {1,2,3,1}
  5. {-1,0,999,-1}

(4)

posted @ 2016-04-26 16:16  tiktok  阅读(158)  评论(0编辑  收藏  举报