zoukankan      html  css  js  c++  java
  • 实验三 白盒测试

    实验目的

     

    (1) 学习白盒测试方法

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

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

     

    实验内容

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

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

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

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

     

    package cn.lq.com;
    
    import java.io.*;
    import java.util.*;
    
    class Demo {
        public static void main(String args[]) throws Exception {
            Scanner cin = new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            int a = cin.nextInt();
            System.out.println("
    请输入第二个数字:");
            int b = cin.nextInt();
            int c = gcd(a, b);
            System.out.println("
    最大公约数:" + c);
        }
        public static int gcd(int a, int b) {
            while (true) {
                if ((a = a % b) == 0)
                    return b;
                if ((b = b % a) == 0)
                    return a;
            }
        }
        
    }

    没有语法错误

    2、 逻辑覆盖的应用

    按照所给的程序流程图,写出Java代码(用类和方法实现)

    写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试

    package cn.lq.com;
    
    import java.util.Scanner;
    
    public class Demo {
    
    /**
     * @param args
     */
    
    
    public static  void t(float x,float y){
    System.out.print("走过的路径为a");
    if(x<4||y>0){
    System.out.print("b");
    if(y>1){
    System.out.println("c");
    y=y+1;
    System.out.println("x="+x);
    System.out.println("y="+y);
    }
    else{
    System.out.println("d");
    System.out.println("结束判断");
    System.out.println("x="+x);
    System.out.println("y="+y);
    }
    }
    else{
    System.out.print("e");
    if(x>=5){
    System.out.println("f");
    x=x-y;
    System.out.println("x="+x);
    System.out.println("y="+y);
    }
    else{
    System.out.println("g");
    x=x+y;
    System.out.println("x="+x);
    System.out.println("y="+y);
    }
    }
    }
    
    }

    测试类

    package cn.lq.com;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class DemoTest {
    
        @Test
    public void test() {
    float x = 2;
    float y = 1;
    System.out.println("测试的两个数为x="+x+" y="+y+"");
    Demo.t(x, y);
    }
    
    
    }

    语句覆盖

    测试用例

    覆盖用例

    结果

    X=4 Y=0

    aeg

    X=4 y=0

    X=5 y=0

    aef

    X=5 y=0

    X=2 y=2

    adc

    X=2 Y=3

    分支覆盖

    测试用例

    覆盖用例

    结果

    X=4 Y=0

    aeg

    X=4 y=0

    X=5 y=0

    aef

    X=5 y=0

    X=2 y=2

    adc

    X=2 Y=3

    X=2 Y=1

    abd

    X=2 Y=1

    我们测试语句覆盖的截图

     

     

     

  • 相关阅读:
    JS判断是否是ioS或者Android
    React+dva多图片上传
    Nginx的虚拟主机
    Nginx的动静分离
    Nginx的负载均衡
    Nginx的静态代理
    Java内存模型
    系统学习笔记漏掉的部分
    异常的统一处理
    webpack学习指南
  • 原文地址:https://www.cnblogs.com/mumudake/p/5393607.html
Copyright © 2011-2022 走看看