软件测试 第三次作业
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)。
请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。利用FindBugs查找程序中是否存在bug。
Demo类
package cn.wu.test;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated measure stub
measure s =new measure();
s.index();
}
}
Method类
package cn.wu.test;
public class measure {
public void index(){
int a=48,b=90;
int min =Math.min(a, b);
for(int k=min;k>0;k--){
if(a%k==0 && b%k==0){
System.out.println(a+"和"+b+"的最大公约数为:"+k);
return;
}
}
}
}
2、 逻辑覆盖的应用
按照所给的程序流程图,写出Java代码(用类和方法实现)写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试.
l 测试用例(语句覆盖):
x |
y |
结果 |
路径 |
3 |
2 |
Y+1=3 x=3 |
abd |
3 |
1 |
不变 |
abc |
6 |
-1 |
x-y=7 |
aeg |
4 |
-1 |
X+y=3 |
aef |
l 测试用例(分支覆盖):
X<4 or y>0 |
x>5 |
Y>1 |
用例 |
结果 |
路径 |
T |
F |
|
X=3,y=1 |
不变 |
abc |
T |
T |
|
X=3,y=2 |
Y+1=3 x=3 |
adb |
F |
|
F |
X=6,y=-1 |
x-y=7 |
aeg |
F |
|
T |
X=4,y=-1 |
X+y=3 |
aef |
package cn.wu.test;
public class measure {
public void tests(){
int x = 5,y = 6;
if(x<4 || y>0){
if(y>1){
y=y+1;
System.out.println("x结果是:"+x);
System.out.println("y+1结果是:"+y);
}
else{
System.out.println("x结果是:"+x);
System.out.println("y结果是:"+y);
}
}
else{
if(x>=5){
x=x-y;
System.out.println("x-y结果是:"+x);
}
else{
x=x+y;
System.out.println("x+y结果是:"+x);
}
}
}
}
package cn.wu.test;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated measure stub
measure s =new measure();
s.tests();
}
}