3137102413_张其仁_Lab3
《软件测试》实验
实验三 白盒测试
实验目的
(1) 学习白盒测试方法
(2) 掌握语句覆盖、条件覆盖、分支覆盖等逻辑覆盖方法
(3) 掌握Java代码分析工具的使用
实验内容
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
package cn.zhang;
/**
* 3137102413_张其仁
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Gongyueshu {
public static void suan() {
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);
}
public static void main(String[] args) {
suan();
}
}
2、 逻辑覆盖的应用
l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
package cn.zhang;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
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) {
}
public void second(int i, int j) {
}
}
package cn.zhang;
public class Mytest {
public void setUp() throws Exception {
}
public void test() {
Test02 second =new Test02();
second.second(5, 7);
second.second(2,0);
second.second(7,-1);
}
}