实验三 白盒测试

实验内容

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

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

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

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

package cn.deng;

/*

 * 求两个数的最大公约数,利用的是欧几里德算法

 * dengchunzeng

 * 2016-4-2

 */

public class GetMaxDivide {

public static int Way(int a,int b){

        if(a<b){

                int temp;

                temp=a;

                a=b;

                b=temp;

        }

        if(0==b){

                return a;

        }

        return Way(b,a%b);

}

}

package cn.deng;

 

import java.util.Scanner;

 

public class Bemo {

 

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("请输入x,y两个正整数:");

Scanner in=new Scanner(System.in);

int x=in.nextInt();

int y=in.nextInt();

GetMaxDivide  getmax=new GetMaxDivide();

int val=getmax.Way(x, y);

System.out.println("两个数的最大公约数是:"+val);

}

 

}

 

2、 逻辑覆盖的应用

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

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

                  

语句覆盖:abc  测试用例:X=1Y=2

分支覆盖:aeg  测试用例:X=4Y=0

 

import java.util.Scanner;

 

 

public class Da {

 

 

 

/**

 

 * @param args

 

 */

 

public static void main(String[] args) {

 

// TODO Auto-generated method stub

 

Scanner in = new Scanner(System.in);

 

System.out.print("请输入x: ");   

 

int x = in.nextInt();

 

Scanner in1 = new Scanner(System.in);

 

System.out.print("请输入y: ");   

 

int y = in1.nextInt();

 

Xiao xiao=new Xiao();

 

xiao.Way(x, y);

 

}

 

 

 

}

 

public class Xiao {

 

public void  Way(int x,int y){

 

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

 

y=y+1;

 

}

 

else {

 

if(x>=5){

 

x=x-y;

 

}

 

else{

 

x=x+y;

 

}

 

}

 

if((x<4 || y>0)&&(y<1 || y==1)){

 

}

 

System.out.println("x的值为:"+x);

 

System.out.println("y的值为:"+y);

 

}

 

           }

 

public class XiaoTest {

 

@Test

public void test() {

System.out.println("语句覆盖:");

Xiao xiao=new xiao();

xiao.Way(1, 2);

 

System.out.println("分支覆盖:");

xiao.Way(4, 0);

}

 

}

               

 

转载于:https://www.cnblogs.com/zhanglin-/p/5396972.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值