• 实验三 白盒测试


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

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

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

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

    package cn.deng;
    /*
     * 求两个数的最大公约数,利用的是欧几里德算法
     * dengchunzeng
     * 2016-4-2
     */
    public class GetMaxDivide {
        public static int Way(int a,int b){
            if(a<b){
                    int temp;
                    temp=a;
                    a=b;
                    b=temp;
            }
            if(0==b){
                    return a;
            }
            return Way(b,a%b);
    }
    }
     1 package cn.deng;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Bemo {
     6 
     7     /**
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         // TODO Auto-generated method stub
    12         System.out.println("请输入x,y两个正整数:");
    13         Scanner in=new Scanner(System.in);
    14         int x=in.nextInt();
    15         int y=in.nextInt();
    16         GetMaxDivide  getmax=new GetMaxDivide();
    17         int val=getmax.Way(x, y);
    18         System.out.println("两个数的最大公约数是:"+val);
    19     }
    20 
    21 }

    }

    2、 逻辑覆盖的应用

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

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

    语句覆盖

    abc 3,2

    aef 5,0

    aeg 4,0

    abd 3,0

     

    分支覆盖3,1、3,0、5,0、4,0

     1 package cn.deng;
     2 /*
     3  * 根据流程图判断所输入的两个数
     4  * dengchunzeng
     5  * 2016-4-5
     6  */
     7 public class Judge {
     8     public void  Way(int x,int y){
     9         if(x<4||y>0){
    10             if(y>1){
    11                 y=y+1;
    12                 System.out.println("x="+x);
    13                 System.out.println("y="+y);
    14             }
    15             else{
    16                   System.out.println("x="+x);
    17                   System.out.println("y="+y);
    18             }
    19         }else if(x>=5){
    20              x=x-y;
    21              System.out.println("x="+x);
    22              System.out.println("y="+y);
    23         }else{
    24              x=x+y;
    25              System.out.println("x="+x);
    26              System.out.println("y="+y);
    27         }
    28         return;
    29     }    
    30 }
     1 package cn.deng;
     2 
     3 import static org.junit.Assert.*;
     4 
     5 import java.util.Scanner;
     6 
     7 import org.junit.Test;
     8 
     9 public class JiSuanTest {
    10 
    11     @Test
    12     public void test() {
    13         System.out.println("语句覆盖:");
    14         Judge judge=new Judge();
    15         judge.Way(3, 2);
    16         judge.Way(5, 0);
    17         judge.Way(4, 0);
    18         judge.Way(3, 0);
    19         System.out.println("分支覆盖:");
    20         judge.Way(3, 1);
    21         judge.Way(3, 0);
    22         judge.Way(5, 0);
    23         judge.Way(4, 0);
    24     }
    25 
    26 }

  • 相关阅读:
    分享一组很赞的 jQuery 特效【附源码下载】
    HTML5 Canvas 实现的9个 Loading 效果
    Charted – 自动化的可视化数据生成工具
    jQuery Countdown Timer 倒计时效果
    Droidicon – 1600+ 漂亮的 Android 图标
    tiltShift.js
    推荐12个最好的 JavaScript 图形绘制库
    Elastic Image Slider 带缩略图功能的幻灯片
    12款高质量的响应式 HTML5/CSS3 网站模板
    7种鼠标悬停效果,多样的图片说明展示
  • 原文地址:https://www.cnblogs.com/mydcz/p/5380132.html
Copyright © 2020-2023  润新知