l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
解:语句覆盖:abc 测试用例:X=1,Y=2
aef 测试用例:X=5,Y=1
aeg 测试用例:X=2,Y=0
分支覆盖:abc 测试用例:X=1,Y=2
abd 测试用例:X=1,Y=1
aef 测试用例:X=5,Y=1
aeg 测试用例:X=2,Y=0
package cn.shen.two;
/*
* @作者:沈碧玲
* @日期:2016-04-14
* @作用:描述流程图
*/
public class Diagram {
public void ling(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);
}
else{
x=x-y;
System.out.println("x="+x+";y="+y);
}
}
}
}
package cn.shen.two;
import java.util.Scanner;
import org.junit.Test;
public class DiagramTest {
@Test
public void test(){
Scanner in=new Scanner(System.in);
System.out.println("请输入x:");
int x=in.nextInt();
System.out.println("请输入y:");
int y=in.nextInt();
Diagram d=new Diagram();
d.ling(x, y);
}
}
abc 测试用例:X=1,Y=2
aef 测试用例:X=5,Y=1
aeg 测试用例:X=2,Y=0
分支覆盖:abc 测试用例:X=1,Y=2
abd 测试用例:X=1,Y=1
aef 测试用例:X=5,Y=1
aeg 测试用例:X=2,Y=0