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

    《软件测试》实验

    实验三   白盒测试                                                       

    实验目的 

    (1) 学习白盒测试方法

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

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

    实验内容

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

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

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

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

    2、 逻辑覆盖的应用

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

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

     

    实验结果:

    1、

    import java.util.Scanner;

    public class Test {   

      public static void main(String[] args) {

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

         Scanner scan=new Scanner(System.in);

         String str1=scan.nextLine();

         int num1=Integer.parseInt(str1);

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

         String str2=scan.nextLine();

         int num2=Integer.parseInt(str2);

         int maxMultiple = calcMaxSubmultiple(num1, num2); 

         System.out.println(maxMultiple);;  

      } 

      private static int calcMaxSubmultiple(int num1, int num2) {    

        int min = Math.min(num1, num2); 

        int maxSubmultiple = 1; 

        for(int i = min; i >= 1; i--){

          if(num1 % i == 0 && num2 % i == 0){ 

              maxSubmultiple = i; 

              break; 

          }  

        } 

        return maxSubmultiple; 

      }

    }

    2、

    import java.util.Scanner;

     

    public class Demo {

        public static void mian(String[] args){

           Scanner scanner = new Scanner(System.in);

           int x = scanner.nextInt();

           int y = scanner.nextInt();

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

               if (y>1) {

                  y=y+1;

               }

           }else {

               if (x>=5) {

                  x=x-y;

               }else {

                  x=x+y;

               }

           }

        }

    }

    语句覆盖:

     测试用例(语句覆盖):

     测试用例:1)X=6,Y=2        所覆盖的路径:abc

                   2)X=6,Y=0                            aef

                   3)X=4,Y=0                            aeg      

    x

    y

    结果

    路径

    3

    2

    Y+1=3 x=3

    abd

    3

    1

    不变

    abc

    6

    -1

    x-y=7

    aeg

    4

    -1

    X+y=3

    aef

    测试用例(分支覆盖):

    测试用例: 1)(TF) X=3,Y=0      所覆盖的路径:abd

                       2)(FT) X=6,Y=0                        aef

    X<4 or y>0

    x>5

    Y>1

    用例

    结果

    路径

    T

    F

     

    X=3,y=1

    不变

    abc

    T

    T

     

    X=3,y=2

    Y+1=3 x=3

    adb

    F

     

    F

    X=6,y=-1

    x-y=7

    aeg

    F

     

    T

    X=4,y=-1

    X+y=3

    aef

          

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    开源数据库在平安的应用实践
    从Oracle到PostgreSQL:Storage Index 特性 vs BRIN 索引
    Cosmos 白皮书
    基于支付场景下的微服务改造与性能优化
    MySQL数据库备份之主从同步配置
    Maven Gradle 区别
    荐书:《PostgreSQL指南:内幕探索》| 留言送书
    SQL、NoSQL、NewSQL,论开源之路谁主沉浮
  • 原文地址:https://www.cnblogs.com/llgdsg/p/5396735.html
Copyright © 2011-2022 走看看