软件测试-实验 实验三白盒测试

实验目的

 

(1)       学习白盒测试方法

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

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

 

实验内容

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

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

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

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

代码:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class CE {

public static void main(String[] args) {

    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);

              }

}

2、 逻辑覆盖的应用

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

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

语句覆盖:

aeg       x=4,y=0

aef       x=5,y=0

abd       x=3,y=0

abc       x=3,y=2

分支覆盖:

X=4,y=0

X=5,y=0

X=3,y=3

X=3,y=2

代码:

import java.util.Scanner;

 

public class ShiThree {

 

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       // TODO Auto-generated method stub

       ShiThree a = new ShiThree();

       Scanner in=new Scanner(System.in);

       System.out.println("please enter a: ");

           double x=in.nextDouble();//这是输入x

       System.out.println("Please enter b: ");

            double y=in.nextDouble();//这是输入y

       a.shu(x, y);

    }

    public void shu(double n,double m){

       if(m<4||n>0){

           if (n>1){

              n=n+1;

              System.out.println("y="+n);

              System.out.println("x="+m);

           }else{

              System.out.println("y="+n);

              System.out.println("x="+m);

           }

       }else if(m>=5){

           m=m-n;

           System.out.println("y="+n);

           System.out.println("x="+m);

       }else{

           m=m+n;

           System.out.println("y="+n);

           System.out.println("x="+m);

       }

       return;

          

   

    }

 

}

 

转载于:https://www.cnblogs.com/854416088HSF/p/5354694.html

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值