《软件测试与质量管理》实验报告
学号:
姓名:
机器号: 程序名:
实验内容: (一) 白盒测试 一、目的和要求
1、掌握白盒测试技术,并能应用白盒测试技术设计测试用例 2、能用Junit实施测试 二、实验内容
void DoWork(int x,int y,int z){ 1 int k=0,j=0; 2 if(( x>3 ) && ( z
4 k=x*y-1; 5 j=sqrt(k); 6 }
7 if(( x= =4 ) || ( y>5 )) 8 j=x*y+10; 9 j=j%3; 10 return j; 11 }
说明:程序段中每行开头的数字(1~11)是对每条语句的编号。
(1)分别以语句覆盖、判定覆盖、条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
(2)编写Java类,调用该方法,并用Junit测试工具编写测试代码进行测试。
三、实验流程图
流程图A
流程图B
四、测试用例编写
语句覆盖:
P1:(1-2-3-4-5-6-7-8-9-10-11)令x=5,y=8,z=6;M=T, N=T T1,T2,T3,T4 P2:(1-2-3-4-5-6-9-10-11) 令x=5,y=3,z=6;M=T,N=F T1,T2,F3,F4 P3:(1-7-8-9-10-11) 令x=2,y=8,z=6;M=F,N=T F1,T2,F3,T4 P4:(1-9-10) 令x=2,y=4,z=12; M=F, N=F F1,F2,F3,F4
判定覆盖:
条件覆盖:
路径覆盖:
(2)Junit测试 ①源程序:
public class DoWork {
public DoWork(int x,int y,int z){
int k=0,j=0;
if((x>3) && (z
k=x*y-1;
j=(int) Math.sqrt(k);
}
}
}
if((x==4)||(y>5))
j=x*y+10; j=j%3;
public boolean doWork(int x,int y,int z){ }
return true;
②测试用例(路径覆盖测试用例) a.import junit.framework.*;
import org.junit.Test;
public class TestDoWork extends TestCase { }
private static int x,y,z;
private static DoWork dowork=new DoWork(x,y,z); public void setUp() throws Exception { } @Test
public void testDoWork() { }
assertEquals(true, dowork.doWork(4, 3, 1));
b.import junit.framework.*;
import org.junit.Test;
public class TestDoWork1 extends TestCase { }
private static int x,y,z;
private static DoWork dowork=new DoWork(x,y,z); public void setUp() throws Exception { } @Test
public void testDoWork() { }
assertEquals(true, dowork.doWork(5, 5, 9));
c.import junit.framework.*;
import org.junit.Test;
public class TestDoWork2 extends TestCase { }
private static int x,y,z;
private static DoWork dowork=new DoWork(x,y,z); public void setUp() throws Exception { } @Test
public void testDoWork() { }
assertEquals(true, dowork.doWork(2, 6, 11));
d.import junit.framework.*;
import org.junit.Test;
public class TestDoWork3 extends TestCase { }
private static int x,y,z;
private static DoWork dowork=new DoWork(x,y,z); public void setUp() throws Exception { } @Test
public void testDoWork() { }
assertEquals(true, dowork.doWork(2, 5, 9));
四、测试结果的分析 ①
doWork(5, 8, 6)
②doWork(5, 5, 9)
③doWork(2, 6, 11)
④doWork(2, 5, 9)
五、心得与体会
通过本次实验,学习和掌握了对各种测试方法测试用例的编写和计算,主要是要求熟练运用白盒测试的方法。由于时间原因在实验课上来不及编写Junit测试方法,最终是通过课后的学习结合老师所讲的只是,建立一个被Junit测试的类,以及对应的Junit Test 类,测试结果就轻松得出了。