实验3:白盒测试

实验目的

(1)       学习白盒测试方法

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

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

实验内容

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

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

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

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

demon.java

package com.chen.text;

import java.util.Scanner;

public class demon {

public static void main(String[] args) {
System.out.print("请输入两个正整数X、Y:"); 
Scanner scaner = new Scanner(System.in); 
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;

}

}

text3.java

package com.chen.text;
import java.util.Scanner;


public class text3 {

public static void main(String[] args) {
System.out.print("请输入两个正整数为:"); 
Scanner scaner = new Scanner(System.in); 
int num1 = scaner.nextInt();
int num2 = scaner.nextInt();

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

public static int Maxnum(int num1, int num2) { 
int i;
if (num1 > num2) {
i = num1 % num2;
while (i != 0) {
num1 = num2;
num2 = i;
i = num1 % num2;
}
return num2;
} else {
i = num2 % num1;
while (i != 0) {
num2 = num1;
num1 = i;
i = num2 % num1;
}
return num1;
}

}

}

2、 逻辑覆盖的应用

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

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


测试用例 路 径
语句覆盖:
X=4,Y=2 abc
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 

原文地址:https://www.cnblogs.com/qiutest/p/5511990.html