• 实验三 白盒测试


    实验目的

    (1) 学习白盒测试方法
    (2) 掌握语句覆盖、条件覆盖、分支覆盖等逻辑覆盖方法
    (3) 掌握Java代码分析工具的使用

    实验内容

    1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
     请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
     在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
     利用FindBugs查找程序中是否存在bug。 

    代码如下:

     1 package com.zhang.text;
     2 import java.util.Scanner;
     3 
     4 
     5 public class text3 {
     6     /*
     7      * 作者:张伟
     8      * 时间:2016-4-2
     9      * 内容:输入两个正整数求得最大公约数,并用FindBugs进行测试
    10      * 
    11      * */
    12 
    13     public static void main(String[] args) {
    14         System.out.print("请输入两个正整数分别为:");      
    15         Scanner scaner = new Scanner(System.in);    //用scaner方法输入两个正整数
    16         int num1 = scaner.nextInt();
    17         int num2 = scaner.nextInt();
    18         
    19         System.out.println("最大公约数为:" + Maxnum(num1, num2));
    20             }
    21 
    22             public static int Maxnum(int num1, int num2) {      //用取余法求得最大公约数
    23                 int i;
    24                 if (num1 > num2) {
    25                     i = num1 % num2;
    26                     while (i != 0) {
    27                         num1 = num2;
    28                         num2 = i;
    29                         i = num1 % num2;
    30                     }
    31                     return num2;
    32                 } else {
    33                     i = num2 % num1;
    34                     while (i != 0) {
    35                         num2 = num1;
    36                         num1 = i;
    37                         i = num2 % num1;
    38                     }
    39                     return num1;
    40                 }
    41 
    42             }
    43 
    44     }

    这个因为没有错误,所以用FindBugs工具查找不出bug,你可以自己出错,然后用FindBugs去试下。

    2、 逻辑覆盖的应用
     按照所给的程序流程图,写出Java代码(用类和方法实现)
     写出语句覆盖、分支覆盖(判定覆盖)的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试

     

    package com.zhang.text;
    
    import java.util.Scanner;
    
    public class demon {
            /*
             * 作者:张伟
             * 时间:2016-4-2
             * 内容:语句覆盖、分支覆盖的测试用例,并写出它所覆盖的路径
             * 
             * */
    
            public static void main(String[] args) {
                System.out.print("请输入两个正整数分别为X、Y:");      
                Scanner scaner = new Scanner(System.in);    //用scaner方法输入两个正整数
                int X = scaner.nextInt();
                int Y = scaner.nextInt();            
                System.out.println("结果为:" + Num(X, Y));
            }
            
                public static int Num(int X,int Y){
                    if((X<4)||(Y>0)){
                        if(Y>1){
                            Y=Y+1;
                            return Y;
                            }
                        
                        if(X>=5){
                            X=X-Y;
                        }
                        else {
                            X=X+Y;
                        }
                        return X;
                        }
                    return 0;
                                
                    }
                
            }
    
            /*
                               测试用例        路 径
             语句覆盖:X=4,Y=1    abd
                   
                     X=4,Y=0    aeg
                     X=5,Y=0    aef
                     
            判定覆盖:X=4,Y=1    abd
                     X=4,Y=2    abc
                     X=4,Y=0    aeg
                     X=5,Y=0    aef         
      
             */

    我已经把语句和判定覆盖发用例和路径一起在代码里啦

  • 相关阅读:
    做了个专门针对少儿编程教程的网站,有兴趣的可以来逛逛
    解决 supervisor : 无法加载文件 C:UserscharlesAppDataRoaming pmsupervisor.ps1
    node.js03 第一个node.js程序和读取文件
    .net图表之ECharts随笔06-这才是最简单的
    .net图表之ECharts随笔05-不同01的语法步骤
    .net图表之ECharts随笔04-散点图
    .net图表之ECharts随笔03-热力地图
    .net图表之ECharts随笔02-字符云
    .net图表之ECharts随笔01-最简单的使用步骤
    Python学习之全局变量与global
  • 原文地址:https://www.cnblogs.com/zhangwei123/p/5396704.html
Copyright © 2020-2023  润新知