• 三_白盒测试


    《软件测试》实验

    实验三 白盒测试                                                      

    实验目的

    (1)       学习白盒测试方法

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

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

    实验内容

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

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

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

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

    2、 逻辑覆盖的应用

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

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

    实验结果

    1.

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

     

    public class GreatestCommonDivisor {

        public void Gcd(){

           int a = 0;

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

           BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));

           try {

               a=Integer.parseInt(strin.readLine());

           } catch (NumberFormatException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           } catch (IOException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

           int b = 0;

           System.out.print("请输入一个n:");

           BufferedReader strin2=new BufferedReader(new InputStreamReader(System.in));

           try {

               b=Integer.parseInt(strin2.readLine());

           } catch (NumberFormatException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           } catch (IOException e) {

               // TODO Auto-generated catch block

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

        }

        public static void main(String[] args) {

        // TODO Auto-generated method stub

           GreatestCommonDivisor Gcd1 = new GreatestCommonDivisor();

           Gcd1.Gcd();

     

        }

    }

    2.

    语句覆盖:

    覆盖路径: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

    package com.lin.action;

     

    import java.util.Scanner;

     

    public class SC {

        public void test2(int X,int Y){

           if(X<4||Y>0){

               if(Y>1){

                  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 a=new Scanner(System.in);

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

           int num1=a.nextInt();

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

           int num2=a.nextInt();

           SC test1 = new SC();

           test1.test2(num1,num2);

     

        }

     

    }

    测试类

    package com.lin.test;

     

    import static org.junit.Assert.*;

     

    import org.junit.Test;

     

    import com.lin.action.SC;

     

    public class SCTest {

     

        @Test

        public void test() {

           SC test1 = new SC();

           test1.test2(2,2);

           test1.test2(2,1);

           test1.test2(4,-1);

           test1.test2(5,-1);

     

        }

     

    }

  • 相关阅读:
    Git合并
    Git对象
    Git储藏和引用日志
    小小c#算法题 4 子数组最大和
    小小c#算法题 2 求素数
    小小c#算法题 5 插入排序
    小小c#算法题 1 找出数组中满足条件的两个数
    [转] WPF – Editing Mode with Save and Cancel Capability
    小小c#算法题 0 单循环冒泡排序
    小小c#算法题 3 字符串语句反转
  • 原文地址:https://www.cnblogs.com/Lww-fyBlog/p/5395902.html
Copyright © 2020-2023  润新知