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


    实验目的

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

              

       

        }

     

    }

  • 相关阅读:
    C++11中右值引用和移动语义
    面试题3:自己实现单链表
    C++中指针和引用、数组之间的区别
    C++中对象模型
    C++中虚函数的动态绑定和多态性
    C++11中多线程库
    C++中友元
    C++中迭代器原理、失效和简单实现
    C++11中智能指针的原理、使用、实现
    C++中模板与泛型编程
  • 原文地址:https://www.cnblogs.com/854416088HSF/p/5354694.html
Copyright © 2020-2023  润新知