白盒

请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。利用FindBugs查找程序中是否存在bug。  

import java.util.Scanner;
public class GCD {
     public void compare(int x,int y){
          int i =x>y?x:y;
          for(;i>0;i--){
              if(x%i==0&&y%i==0){
                  System.out.println("a、b的最大公约数为"+i);
                  break;
              }
          }
          return;
     }
     public static void main(String[] arg){
         GCD demo = new GCD();
          System.out.println("请输入x:");
          Scanner num1 = new Scanner(System.in);
          int x=num1.nextInt();
          System.out.println("请输入y:");
          Scanner num2 = new Scanner(System.in);
          int y =num2.nextInt();
          demo.compare(x, y);
     }
 }

 

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

语句覆盖:

路径:a b c    测试用例: x = 1, y = 2

    a e g             x = 4, y = 0

      a e f               x = 5, y = 0

 

分支覆盖:

路径:a b c     测试用例:x = 1, y = 2

     a b d             x = 1, y = 1

     a e g            x = 4, y = 0

     a e f            x = 5, y = 0

 

import java.util.Scanner;


public class cover {
 public  cover(int x, int y){
  if(x < 4||y > 0){
   y = y + 1;
  }else{
   if(x>=5){
    x = x - y;
   }else{
    x = x + y;
   }
  }
  System.out.println("输出结果为 ;x ="+ x);
  System.out.println("输出结果为:y =" + y);
 }
 
 

 public static void main(String[] args){
  Scanner  inputnum = new Scanner(System.in);
  System.out.println("请输入第一个数x:");
        int num1 = inputnum.nextInt();
        System.out.println("请输入第二个数y:");
        int num2 = inputnum.nextInt();
       
        cover d = new cover(num1, num2);
        d.cover(num1,num2);
      
 
 }

 

 private void cover(int num1, int num2) {
  // TODO Auto-generated method stub
  
 }
 }

 

 

import org.junit.Test;
public class covertest {
 public void testmain(){
  int num1 = 2;
  int num2 = 5;
  cover d =new cover(num1, num2);
  d.cover(num1,num2);
 }
}

 

posted @ 2016-04-13 16:45  simon940816  阅读(128)  评论(0编辑  收藏  举报