• 第三次实验


    《软件测试》实验

    实验三 白盒测试                                                      

    实验目的

    (1)       学习白盒测试方法

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

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

    实验内容

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

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

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

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

    2、 逻辑覆盖的应用

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

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

    1.

    package cn.zhi.mju;

    import java.util.Scanner;
    /**
    *
    * @author chenyazhi
    *
    */
    public class TestThree {
    /**
    *
    * @param args
    */
    public static void main(String[] args){
    TestThree testThree = new TestThree();
    testThree.view();
    }

    public void view(){
    Scanner in = new Scanner(System.in);
    int number1 = 1;
    int number2 = 1;

    System.out.print("请输入第一个数:");
    number1 = exc();
    System.out.print("请输入第二个数:");
    number2 = exc();
    //输出最大公约数
    System.out.println(number1+"和"+number2+"的最大公约数为:"+gcm(number1,number2));
    }
    /**
    *
    * @param number1第一个数
    * @param number2第二个数
    * @返回较小的数值
    */
    public static int min(int number1,int number2){
    if(number1>number2)
    return number2;
    else
    return number1;
    }

    public static int gcm(int number1,int number2){
    //求出最大公约数
    int e = 1;
    for(int i=min(number1,number2);i>0;i--){
    if(min(number1,number2)%i==0&&(number1+number2)%i==0){
    e=i;
    break;
    }
    }
    return e;
    }
    public static int exc(){
    int num= 0;
    Scanner in = new Scanner(System.in);
    try {
    num=in.nextInt();
    if(num<=0){
    num=10/0;
    }
    } catch (Exception e) {
    // TODO: handle exception
    System.out.println("您输入的不是数字或数字小于等于0,请重新输入!");
    TestThree testThree = new TestThree();
    testThree.view();
    }
    return num;
    }
    }

    2.

    覆盖路径:aeg、aef、abc、abd(1)

    语句覆盖:

    覆盖路径:aeg、aef、abc

    测试用例:X=5,Y=0

                    X=4,Y=0

                   X=Y=2

    分支覆盖:

    测试用例:X=5,Y=0

                    X=4,Y=0

                   X=Y=2

                    X=3,Y=0

    (2)

    package cn.zhi.mju;

     

    import java.util.Scanner;

    /**

     *

     * @author chenyazhi

     *

     */

    public class White_Box {

      public static void main(String[] args){

    /**

       *

       * @param main函数

       */

         Scanner in = new Scanner(System.in);

         System.out.println("please input x value:");

         int x = in.nextInt();

         System.out.println("please input y value:");

         int y = in.nextInt();

         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 value:"+x+",y value:"+y+".");

      }

    }

    package cn.zhi.mju;

    import static org.junit.Assert.*;

    import java.util.Scanner;

    import org.junit.Test;

    public class White_BoxTest {

    @Test
    public void test() {
    Scanner in = new Scanner(System.in);
    System.out.println("please input x value:");
    int x = in.nextInt();
    System.out.println("please input y value:");
    int y = in.nextInt();
    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 value:"+x+",y value:"+y+".");
    }

    }

  • 相关阅读:
    Emote木马分析
    CentOS7安装部署MongoDB
    CentOS7搭建FastDFS文件管理服务器
    CentOS7搭建FTP服务器
    20179301《网络攻防实践》第九周作业
    20179301《网络攻防实践》第七周作业
    20179301 段晓庆 《网络攻防》第六周总结
    20179301 《网络攻防技术》第四周总结
    20179301 段晓庆 《网络攻防》第三周总结
    2017-2018-2 20179301《网络攻防技术》第一周作业
  • 原文地址:https://www.cnblogs.com/wowanyasuo/p/5354750.html
Copyright © 2020-2023  润新知