第三次实验

Posted A cup of hot coffee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三次实验相关的知识,希望对你有一定的参考价值。

《软件测试》实验

实验三 白盒测试                                                      

 

实验目的

 

(1)       学习白盒测试方法

(2)       掌握语句覆盖、条件覆盖、分支覆盖等逻辑覆盖方法

(3)       掌握Java代码分析工具的使用

 

实验内容

1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)

l         请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。

l         在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。

l         利用FindBugs查找程序中是否存在bug。

2、 逻辑覆盖的应用

l         按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径

l         附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。

1.

package cn.zhi.mju;

 

import java.util.Scanner;

/**

 *

 * @author chenyazhi

 *

 */

public class TestThree {

  /**

   *

   * @param args

   */

  public static void main(String[] args){

     TestThree testThree = new TestThree();

     testThree.view();

  }

 

  public void view(){

     Scanner in = new Scanner(System.in);

     int number1 = 1;

     int number2 = 1;

    

     System.out.print("请输入第一个数:");

     try {

       number1=in.nextInt();

       if(number1==0){

         number1=10/0;

       }

     } catch (Exception e) {

       // TODO: handle exception

       System.out.println("您输入的不是数字或数字为0,请重新输入!");

       TestThree testThree = new TestThree();

       testThree.view();

      

     }

    

     System.out.print("请输入第二个数:");

     try {

       number2=in.nextInt();

       if(number2==0){

         number2=10/0;

       }

     } catch (Exception e) {

       // TODO: handle exception

       System.out.println("您输入的不是数字或数字为0!,请重新输入!");

       TestThree testThree = new TestThree();

       testThree.view();

     }

     //输出最大公约数

     System.out.println(number1+"和"+number2+"的最大公约数为:"+gcm(number1,number2));

  }

  /**

   *

   * @param number1第一个数

   * @param number2第二个数

   * @返回较小的数值

   */

  public static int min(int number1,int number2){

     if(number1>number2)

     return number2;

     else

     return number1;

  }

 

  public static int gcm(int number1,int number2){

     //求出最大公约数

     int e = 1;

     for(int i=1;i<=min(number1,number2);i++){

       if(min(number1,number2)%i==0&&(number1+number2)%i==0){

         e=i;

       }

     }

     return e;

  }

}

2.

覆盖路径:aeg、aef、abc、abd(1)

语句覆盖:

覆盖路径:aeg、aef、abc

测试用例:X=5,Y=0

                X=4,Y=0

               X=Y=2

分支覆盖:

测试用例:X=5,Y=0

                X=4,Y=0

               X=Y=2

                X=3,Y=0

(2)

package cn.zhi.mju;

 

import java.util.Scanner;

/**

 *

 * @author chenyazhi

 *

 */

public class White_Box {

  public static void main(String[] args){

/**

   *

   * @param main函数

   */

     Scanner in = new Scanner(System.in);

     System.out.println("please input x value:");

     int x = in.nextInt();

     System.out.println("please input y value:");

     int y = in.nextInt();

     if(x<4 || y>0){

       if(y>1){

         y=y+1;

       }

     }else{

       if(x>=5){

         x=x-y;

       }

       else{

         x=x+y;

       }

     }

     System.out.println("x value:"+x+",y value:"+y+".");

  }

}

以上是关于第三次实验的主要内容,如果未能解决你的问题,请参考以下文章

20165104-JAVA第三次实验

第三次实验报告

第三次实验报告

第三次实验报告

第三次实验报告

第三次实验报告:使用Packet Tracer分析TCP连接建立过程