第三次实验
Posted A cup of hot coffee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三次实验相关的知识,希望对你有一定的参考价值。
《软件测试》实验
实验三 白盒测试
实验目的
(1) 学习白盒测试方法
(2) 掌握语句覆盖、条件覆盖、分支覆盖等逻辑覆盖方法
(3) 掌握Java代码分析工具的使用
实验内容
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
2、 逻辑覆盖的应用
l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
1.
package cn.zhi.mju;
import java.util.Scanner;
/**
*
* @author chenyazhi
*
*/
public class TestThree {
/**
*
* @param args
*/
public static void main(String[] args){
TestThree testThree = new TestThree();
testThree.view();
}
public void view(){
Scanner in = new Scanner(System.in);
int number1 = 1;
int number2 = 1;
System.out.print("请输入第一个数:");
try {
number1=in.nextInt();
if(number1==0){
number1=10/0;
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("您输入的不是数字或数字为0,请重新输入!");
TestThree testThree = new TestThree();
testThree.view();
}
System.out.print("请输入第二个数:");
try {
number2=in.nextInt();
if(number2==0){
number2=10/0;
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("您输入的不是数字或数字为0!,请重新输入!");
TestThree testThree = new TestThree();
testThree.view();
}
//输出最大公约数
System.out.println(number1+"和"+number2+"的最大公约数为:"+gcm(number1,number2));
}
/**
*
* @param number1第一个数
* @param number2第二个数
* @返回较小的数值
*/
public static int min(int number1,int number2){
if(number1>number2)
return number2;
else
return number1;
}
public static int gcm(int number1,int number2){
//求出最大公约数
int e = 1;
for(int i=1;i<=min(number1,number2);i++){
if(min(number1,number2)%i==0&&(number1+number2)%i==0){
e=i;
}
}
return e;
}
}
2.
覆盖路径:aeg、aef、abc、abd(1)
语句覆盖:
覆盖路径:aeg、aef、abc
测试用例:X=5,Y=0
X=4,Y=0
X=Y=2
分支覆盖:
测试用例:X=5,Y=0
X=4,Y=0
X=Y=2
X=3,Y=0
(2)
package cn.zhi.mju;
import java.util.Scanner;
/**
*
* @author chenyazhi
*
*/
public class White_Box {
public static void main(String[] args){
/**
*
* @param main函数
*/
Scanner in = new Scanner(System.in);
System.out.println("please input x value:");
int x = in.nextInt();
System.out.println("please input y value:");
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 value:"+x+",y value:"+y+".");
}
}
以上是关于第三次实验的主要内容,如果未能解决你的问题,请参考以下文章