3137102413_张其仁_Lab3

《软件测试》实验

实验三 白盒测试                                                      

 

实验目的

 

(1)       学习白盒测试方法

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

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

 

实验内容

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

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

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

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

 

 

package cn.zhang;

/**

 * 3137102413_张其仁

 */

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

 

public class Gongyueshu {

 

    public static void suan() {

       int a = 0;

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

 

       BufferedReader strin = new BufferedReader(new InputStreamReader(

              System.in));

       try {

           a = Integer.parseInt(strin.readLine());

       } catch (NumberFormatException e) {

           e.printStackTrace();

       } catch (IOException e) {

           e.printStackTrace();

       }

       int b = 0;

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

       BufferedReader strin2 = new BufferedReader(new InputStreamReader(

              System.in));

       try {

           b = Integer.parseInt(strin2.readLine());

       } catch (NumberFormatException e) {

           e.printStackTrace();

       } catch (IOException e) {

           e.printStackTrace();

       }

       int flag = 0;

       for (int i = 1; i <= a; i++) {

           if (a % i == 0) {

              if (b % i == 0) {

                  flag = i;

              }

           }

       }

       System.out.println("最大公约数为:" + flag);

    }

 

   

   

   

    public static void main(String[] args) {

       suan();

    }

}

 

2、 逻辑覆盖的应用

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

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

package cn.zhang;

 

import java.util.Scanner;

 

public class Test02 {

    public static void main(String[] args) {

       Scanner in = new Scanner(System.in);

       System.out.println("请输入x的值:");

       int x = in.nextInt();

       System.out.println("请输入y的值:");

       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的值为:" + x + ",y的值为:" + y + "。");

    }

    public void two(int i, int j) {

    }

    public void second(int i, int j) {

    }

}

 

 

 

package cn.zhang;

public class Mytest {

      public void setUp() throws Exception {

      }

      public void test() {

        Test02 second =new Test02();

        second.second(5, 7);

        second.second(2,0);

        second.second(7,-1);

      }

}

 

posted @ 2016-04-15 17:06  隐藏的讯息  阅读(224)  评论(0编辑  收藏  举报