《软件测试》实验三白盒测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件测试》实验三⽩盒测试
1、计算整数X和整数Y的最⼤公约数
请⽤类和⽅法实现(定义⼀个类,在类中定义⼀个求最⼤公约数的⽅法),命名时请按照规范命名。
在main⽅法中获取⽤户输⼊的两个整数,调⽤之前写的⽅法,输出它们的最⼤公约数。
利⽤FindBugs查找程序中是否存在bug。
import java.util.Scanner;
public class Demo {
public void compare(int a,int b){
int i = a>b?a:b;
for(;i>0;i--){
if(a%i==0&&b%i==0){
System.out.println("a、b的最⼤公约数为"+i);
break;
}
}
return;
}
public static void main(String[] arg){
Demo demo = new Demo();
System.out.println("请输⼊a:");
Scanner num1 = new Scanner(System.in);
int a=num1.nextInt();
System.out.println("请输⼊b:");
Scanner num2 = new Scanner(System.in);
int b=num2.nextInt();
pare(a, b);
}
}
2、逻辑覆盖的应⽤
按照所给的程序流程图,分别写出语句覆盖、分⽀覆盖的测试⽤例,以及它所覆盖的路径。
语句覆盖:
X Y路径
32abc
50aef
40aeg
分⽀覆盖:
X Y路径
32abc
31abd
50aef
40aeg
附加题:根据程序流程图,写出代码(定义⼀个类和⽅法来实现),⽤JUnit⽣成单元测试,并利⽤前⾯设计的测试⽤例进⾏测试。
public class Demo {
public void demo(int x,int y){
if(x<4||y>0){
if(y>1){
y=y+1;
System.out.println("X="+x+",Y="+y);
}
else{
System.out.println("X="+x+",Y="+y);
}
}
else{
if(x>=5){
x=x-y;
System.out.println("X="+x+",Y="+y);
}
x=x+y;
System.out.println("X="+x+",Y="+y);
}
}
}
测试⽤例:
import static org.junit.Assert.*;
import org.junit.Test;
public class DemoTest {
public static void main(String[] args){
Demo demo =new Demo();
demo.demo(3,2);
demo.demo(3,1);
demo.demo(5,0);
demo.demo(4,0);
}
}。