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

    实验目的

    (1) 学习白盒测试方法

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

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

    实验内容

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

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

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

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

    2、 逻辑覆盖的应用

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

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

     第一题:

    1.

    代码:

    package cn.lsw.demo;

    import java.util.*;

    public class VV {

    /*求最大公约数

     *林少渭

     *3137102232

     * 软金2

     * 2016.4.1

     * */

    public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);// 接收控制台输入的信息

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

    int num1 = scan.nextInt(); // 取出控制台输入的信息

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

    int num2 = scan.nextInt(); // 取出控制台输入的信息

    System.out.println(maxCommonDivisor(num1, num2));// 调用maxCommonDivisor()方法

    }

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

    if (m < n) {// 保证m>n,m<n,则进行数据交换

    int temp = m;

    m = n;

    n = temp;

    }

    while (m % n != 0) {// 在余数不能为0,进行循环

    int temp = m % n;

    m = n;

    n = temp;

    }

    return n;// 返回最大公约数

    }

     }

    (工科楼做的忘记截图,此图为课外补充)

    第二题:

    代码:

    package cn.lsw.demo;

    import java.util.*;

    public class VV2 {

    /* *林少渭

     *3137102232

     * 软金2

     * 2016.4.1

     * */

    public static void main(String[] args) {

           Scanner scanner = new Scanner(System.in);//接收控制台输入的信息

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

    int x= scanner.nextInt(); // 取出控制台输入的信息

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

    int y = scanner.nextInt(); // 取出控制台输入的信息

    System.out.print("Y");

    System.out.println(xy(x, y));// /*输入XY*/

    System.out.print("X");

    System.out.println(xy1(x, y));

    }

        protected static int xy(int n, int m) {

    // TODO Auto-generated method stub

      if(n<4 ||m>0){/*判断XY*/

               if(m>1){

                  m=m+1;

               }

               }

           else{

               if(n>=5){

                  n=n-m;

               }

               else{

                 n=n+m;

            }

           }

    return m;

    }  

        protected static int xy1(int n, int m) {

    // TODO Auto-generated method stub

      if(n<4 ||m>0){/*判断XY*/

               if(m>1){

                  m=m+1;

               }

               }

           else{

               if(n>=5){

                  n=n-m;

               }

               else{

                 n=n+m;

            }

           }

    return n;

    }

    }

     

     

    语句覆盖:

    X =5         y =0      路径aef

    X=3          y=1       路径abd

    X=1          y=2       路径abc

    分支覆盖:

    X=5/4        y=1       路径aef/aeg

    X=3          y=1/3     路径abd/abc

    全部覆盖路径:abd abc aef aeg

     

    总结

    开始到现在第三次作业已经可以再课上几乎完全完成,但是依然有许多代码技术上的不足。个人认为自己应当多多学习JAVA,以前没有学会的在机械来的时间里好好学习学懂。     2016.4.11

  • 相关阅读:
    Win Oracle 监听文件配置参考
    Win Tomcat8 占用内存过高
    Centos6.X创建Oracle用户
    js脚本中执行java后台代码
    dom4j递归解析XML字符串所有子节点
    加载Properties配置文件
    Servlet里面request处理外部POST请求的输入流的工具类
    JAVA接口测试类
    Android、iOS与Servlet接口上传文件和JSON串的交互
    FileUpload之FileItem类的常用方法
  • 原文地址:https://www.cnblogs.com/GodEaterV/p/5377939.html
Copyright © 2011-2022 走看看