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

    实验目的

    (1) 学习白盒测试方法

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

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

    实验内容

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

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

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

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

    import java.util.Scanner;

    public class Common{

    //求最大公约数

    public static int commonDivisor(int n,int m){

    //辗转相除是用大的除以小的。如果n<m,第一次相当nm值交换

    while(n%m!=0){

    int temp=n%m;

    n=m;

    m=temp;

    }

    return m;

    }

    public static void main(String[] args){

    Scanner sc=new Scanner(System.in);

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

    int n=sc.nextInt();

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

    int m=sc.nextInt();

    System.out.println("最大公约数为:"+commonDivisor(n,m));

    }

    }

     

    弄错后

     

    2、 逻辑覆盖的应用

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

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

     

    import java.util.Scanner;

    public class Test1 {

    /**

     * @param args

     */

    public  void test() {

    Scanner sc=new Scanner(System.in);

    System.out.println("请输入x的值:");

    int  x=sc.nextInt();

    System.out.println("请输入y的值:");

     int y=sc.nextInt();

    if(x<4 || y>0){

    if(y>1){

    y=y+x;

    }

    else{}

    }

    else{

    if(x>=5){

    x=x-y;

    }

    else{

    x=x+y;

    }

    }

    System.out.println("x="+x);

    System.out.println("y="+y);

    }

    }

     

     

    测试类

     

    import static org.junit.Assert.*;

     

    import org.junit.Test;

     

     

    public class Test1Test {

     

     Test1 test1 =new Test1();

    @Test

    public void test() {

     

      test1.test();

       

    }

     

     

    }

     

     

     

     

     

    语句覆盖:

    X=4,y=0  路径:aeg

    X=5,y=0  路径:aef

    X=4,y=2  路径:abc

    分支覆盖:

    X=4,y=0  路径:aeg

    X=5,y=0  路径:aef

    X=4,y=2  路径:abc

    X=3,y=1  路径:abd

     

  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/bushi2b/p/5398648.html
Copyright © 2011-2022 走看看