zoukankan      html  css  js  c++  java
  • 实验三

                                                        

     实验目的

    (1) 学习白盒测试方法

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

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

    实验内容

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

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

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

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

    2、 逻辑覆盖的应用

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

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

       

       1import java.util.Scanner;

    public class Demo{

    public int getGCDBySub(int x,int y){

    while(x!=y){

    if(x>y){

    x=x-y;

        }else{

         y=y-x;

        }

    }

    return x;

    }

     public int getGCDByDiv(int x,int y){

     for(int i=x%y;i!=0;)  

        {  

            x=y;  

            y=i;  

            i=x%y;  

        }  

        return y;

    }

    public static void main(String[] args) {

    boolean isInputNum=true;

    int num1=1;

    int num2=1;

    while(isInputNum){

    Scanner scanner = new Scanner(System.in);

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

       try{

       num1 = scanner.nextInt();

       }catch(java.util.InputMismatchException e){

       System.out.println("输入的不是整数!");

       continue;

       }

          if(num1<=0){

       System.out.println("0和负数不参与求最大公约数");

       continue;

       }

       isInputNum=false;

    }

    isInputNum=true;

    while(isInputNum){

    Scanner scanner = new Scanner(System.in);

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

       try{

       num2 = scanner.nextInt();

       }catch(java.util.InputMismatchException e){

       System.out.println("输入的不是整数,请再次输入:");

       continue;

       }

       

       if(num2<=0){

       System.out.println("0和负数不参与求最大公约数");

       continue;

       }

       isInputNum=false;

    }

    NumberOperation numOperation=new NumberOperation();

    System.out.println("它们的最大公约数是:"+numOperation.getGCDBySub(num1, num2));

    System.out.println("它们的最大公约数是:"+numOperation.getGCDByDiv(num1, num2));

    }

    }

     

     

    解:

    语句覆盖:

    覆盖路径:abc    测试用例:x=2,y=2    预期结果:x=2,y=3

    覆盖路径:aeg    测试用例:x=4,y=-1  预期结果:x=3,y=-1

    覆盖路径:aef    测试用例:x=5,y=-1   预期结果:x=6,y=-1

    分支覆盖:

    覆盖路径:abc    测试用例:x=2,y=2    预期结果:x=2,y=3

    覆盖路径:abd    测试用例:x=2,y=1    预期结果:x=2,y=1

    覆盖路径:aeg    测试用例:x=4,y=-1  预期结果:x=3,y=-1

    覆盖路径:aef    测试用例:x=5,y=-1   预期结果:x=6,y=-1

     

     

  • 相关阅读:
    shell-bash学习01基础、打印、环境变量
    css/js(工作中遇到的问题)-2
    git学习 git-flow
    js正则表达式练习
    12 链
    11数据访问
    10访问者,解释器
    08中介者,装饰者
    09 状态,适配器
    调试 scrapy 文件报错:line 48, in _load_handler、line 44, in load_object、 line 37, in import_module
  • 原文地址:https://www.cnblogs.com/bj941020/p/5488910.html
Copyright © 2011-2022 走看看