《软件测试》实验三

实验三 白盒测试                                                      

实验目的

(1)       学习白盒测试方法

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

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

实验内容

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

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

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

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

package lin;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

//林佳琪3137102103

//第一题

public class First {

public static void main(String[] args) {

    int a = 0;

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

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

       try {

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

       } catch (NumberFormatException e) {

           e.printStackTrace();

       } catch (IOException e) {

           e.printStackTrace();

       }

           int b = 0;

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

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

           try {

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

           } catch (NumberFormatException e) {

              e.printStackTrace();

           } catch (IOException e) {

              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);

              }

}

2、 逻辑覆盖的应用

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

 

package jia;

import java.util.Scanner;

public class Second {

            //林佳琪3137102103

    //第二题

            public static void main(String[] args) {

              // TODO Auto-generated method stub

              Scanner in = new Scanner(System.in);

                 System.out.println("请输入x的值:");

                 int x = in.nextInt();

                 System.out.println("请输入y的值:");

                 int y = in.nextInt();

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

                   if(y>1){

                     y=y+1;

                   }

                 }else{

                   if(x>=5){

                     x=x-y;

                   }

                   else{

                     x=x+y;

                   }

                 }

                 System.out.println("x的值为:"+x+",y的值为:"+y+"。");

              }

            public void two(int i, int j) {

              // TODO Auto-generated method stub

             

            }

            public void second(int i, int j) {

              // TODO Auto-generated method stub

             

            }

            }

package jia;

import static org.junit.Assert.*;

import jia.Second;

import org.junit.Before;

import org.junit.Test;

public class SecondTest {

            @Before

            public void setUp() throws Exception {

            }

            @Test

            public void test() {

              Second second =new Second();

              second.second(5,7);

              second.second(2,0);

              second.second(7,-1);

            }

}

原文地址:https://www.cnblogs.com/LJQ4228/p/5369639.html