《软件测试》实验
实验三 白盒测试
实验目的
(1) 学习白盒测试方法
(2) 掌握语句覆盖、条件覆盖、分支覆盖等逻辑覆盖方法
(3) 掌握Java代码分析工具的使用
实验内容
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
import java.util.*; /*求最大公约数*/ public class ZuiDaGongYueShu { public static void main(String[] args) { gys(); } public static void gys(){ Scanner scan = new Scanner(System.in);// 接收控制台输入的信息 System.out.print("请输入第一个整数:"); int num1 = scan.nextInt(); // 取出控制台输入的信息 if(num1<=0){ System.out.println("您输入的数字有误,请重新输入!"); gys(); System.exit(0); } System.out.print("请输入第二个整数:"); int num2 = scan.nextInt(); // 取出控制台输入的信息 if(num2<=0){ System.out.println("您输入的数字有误,请重新输入!"); gys(); System.exit(0); } System.out.print("最大公约数为:"); System.out.println(maxgongyueshu(num1, num2));// 调用maxCommonDivisor()方法 } // 递归法求最大公约数 public static int maxgongyueshu(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } if (m % n == 0) {// 若余数为0,返回最大公约数 return n; } else { // 否则,进行递归,把n赋给m,把余数赋给n return maxgongyueshu(n, m % n); } } // 循环法求最大公约数 public static int maxCommonDivisor1(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } while (m % n != 0) {// 在余数不能为0时,进行循环 int temp = m % n; m = n; n = temp; } return n;// 返回最大公约数 } }
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。