• test3


    《软件测试》实验

    实验三 白盒测试                                                      

    实验目的

    (1)       学习白盒测试方法

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

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

    实验内容

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

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

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

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

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

     

    public class Work3 {

        public static void main(String[] args) {

           int a = 0;

            System.out.print("请输入m:");

            BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));

            try {

           a=Integer.parseInt(strin.readLine());

           } catch (NumberFormatException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

           } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

           }

           int b = 0;

            System.out.print("请输入一个n:");

            BufferedReader strin2=new BufferedReader(new InputStreamReader(System.in));

            try {

           b=Integer.parseInt(strin2.readLine());

           } catch (NumberFormatException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

           } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

           }

           int flag = 0;

           for (int i = 1; i <= a; i++) {

           if(a%i==0){

           if(b%i==0){

           flag=i;}

           }

           }

           System.out.println("最大公约数为"+flag);

          

          

          

          

        }

    l         }

    2、 逻辑覆盖的应用

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

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

    import java.util.Scanner;

     

     

    public class Work32 {

        public static void main(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;

               }

           }

           }

       

    }

    g

     

    f

     

    e

     

    d

     

    c

     

    b

     

    a

     

    语句覆盖:

    X =5         y =0                路径aeg

    X=3          y=1                路径abd

    分支覆盖:

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

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

     

  • 相关阅读:
    正确使用SqlConnection对象,兼谈数据库连接池
    简单设计实现基于Forms认证的注册登录等用户基础服务
    简单利用Memcached进行缓存层设计
    殊途同归,ado.net快速实现MySql的CRUD
    【数据库设计】“Max加一”生成主键的注意点
    利用FastReflectionLib快速实现对象克隆
    容易遗忘的一些小代码之 Cross apply and Outer apply
    OBJECT_ID 有哪些种类
    BIWORK 分区表阅读与实践笔记
    容易遗忘的一些小代码之 Merge Operation and Output Clause
  • 原文地址:https://www.cnblogs.com/mjuwzb/p/5319663.html
Copyright © 2020-2023  润新知