码迷,mamicode.com
首页 > 其他好文 > 详细

3137102432_ 施少兵_ lab3

时间:2016-04-15 18:04:33      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

《软件测试》实验

实验三 白盒测试                                                      

 

实验目的

 

(1)       学习白盒测试方法

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

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

 

实验内容

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

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

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

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

import java.util.Scanner;

public class test1{

    public static void main(String[] args) {

        Scanner sc= new Scanner(System.in);

         int num1;

         int num2;

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

         num1= sc.nextInt();

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

         num2= sc.nextInt();

        

         System.out.println("最大公约数为:"+gongyue(num1, num2));

        

        }

         public static int gongyue(int num1, int num2) {

         while(num1%num2!=0){

             int num=num1%num2;

             num2=num1;

             num1=num;

          }

         return num1;

        }

}技术分享

import junit.framework.TestCase;

import java.util.Scanner;

public class test1Test extends TestCase {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner scanner = new Scanner(System.in);

System.out.println("请输入第一个整数X:");

int x = scanner.nextInt();

System.out.println("请输入第二个整数Y:");

int y = scanner.nextInt();

test1 cal = new test1();

System.out.println("整数X和整数Y的最大公约数为:"+test1.gongyue(x, y));

}

}

技术分享

2逻辑覆盖的应用

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

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

 

public class test2 {

    public void test2(int x,int y){

        int k=0,j=0;

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

            y=y+1;

        }

       else {

       if(x>=5){

            x=x-y;

       }

            else{

                x=x+y;

                }

             }

      if((x<4 || y>0)&&(y<1 || y==1)){

 

      }

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

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

    }

}

技术分享

语句覆盖:

X =5         y =0                路径aeg

X=3          y=2                路径abc

分支覆盖:

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

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

import junit.framework.TestCase;

public class test2Test extends TestCase {

        public void testDoWork(){

        System.out.println("对设计的x=1,y=2这组测试用例进行单元测试:");

        test2 work = new test2();

        work.test2(1, 2);

        System.out.println("对设计的x=3,y=-1这组测试用例进行单元测试:");

        work.test2(3, -1);

        }  

}

技术分享

3137102432_ 施少兵_ lab3

标签:

原文地址:http://www.cnblogs.com/shishaobing/p/5396109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!