标签:
实验内容
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。3.
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
package cn.rocky.gcd;
import java.util.Scanner;
public class Divisor {
/**
* 功能:求两个整数的最大公约数
* @author 余*强
* 2016-04-01
*/
// 定义构造方法对两个数实现最大公约数
void divisor(int num1, int num2){
int k = 2; //从2开始测试 是不是最大公约数
int gcd = 1; //初始化公约数
//只有当k小于等于 num1 和 num2 才继续检测是否有最大公约数,否则就为初始值1
for ( k = 2; k <= num1 && k <= num2; k++ ){
if ( num1 % k == 0 && num2 % k == 0){
gcd = k ;
}
}
System.out.println("最大公约数:" + gcd);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("第一个数字:");
int num1= input.nextInt();
System.out.println("第二个数字:");
int num2 = input.nextInt();
//实例化对象 调用方法 实现功能
Divisor d = new Divisor();
d.divisor(num1,num2);
}
}
未发现bug:
总结:findbugs静态检查只能初步简单的检查部分bug,是非常有限制的。这就要求测试人员做更进一步的检查。
2逻辑覆盖的应用
l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
1. 语句覆盖:
路径:a b c 测试用例: x = 1, y = 2
a e g x = 4, y = 0
a e f x = 5, y = 0
分支覆盖:
路径:a b c 测试用例:x = 1, y = 2
a b d x = 1, y = 1
a e g x = 4, y = 0
a e f x = 5, y = 0
附加题:
package cn.rocky.pfd;
import java.util.Scanner;
public class Pfd {
/**
* 功能:将流程图用代码实现
* @author 余*强
* 2016-04-01
*/
void pfd(int x, int y){
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);
System.out.println("输出结果:y=" + y);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("第一个数字x:");
int num1= input.nextInt();
System.out.println("第二个数字y:");
int num2 = input.nextInt();
Pfd p = new Pfd();
p.pfd(num1, num2);
}
}
测试用例:
package cn.rocky.pfd;
import org.junit.Test;
public class PfdTest {
@Test
public void testMain() {
int num1 = 1;
int num2 = 2;
Pfd p = new Pfd();
p.pfd(num1,num2);
}
}
总结:语句覆盖->保证每个语句至少被执行一次,但对多分支语句则不能达到全面覆盖;
分支覆盖->对多分支语句,能够使每个分支至少被执行一次,即分支的真、假都能执行到,比语句覆盖来得更强。
标签:
原文地址:http://www.cnblogs.com/igottogo/p/5361705.html