软件测试实验报告一(共6页).doc
精选优质文档-倾情为你奉上广西科技大学实验报告专 业: 软件工程 班 级:软 件132 学生姓名: 李广贵 学 号: 7 指导老师: 李威龙 专心-专注-专业一 ,实验目的 (1)掌握白盒测试技术,并能应用白盒测试技术设计测试用例 (2)能用Junit实施测试 二,实验内容 (1)用白盒测试的基路径测试法测试一段代码 (2)编写一个java类,并用Junit测试编写的java类三,实验过程 (一)白盒测试 1,用基路径测试法测试下面代码: public class Mysort int result;public void sort(int iRecordNum,int iType)int x=0;int y=0;while(iRecordNum>0)if(iType=0)x=y+2;elseif(iType=1)x=y+5;elsex=y+10;iRecordNum-;result=x;public int getResult()return result; 2,控制流图 程序的控制流图如图1所示:图1 3,计算圈复杂度 流图中区域的数量对应于圈复杂度,从图中可以直观的看出,其区域数为。因此 其圈复杂度为4 4,寻找独立路径 1 path1:1-2-3-4-5-10-3-11 2 path2:1-2-3-4-6-7-9-10-3-11 3 path3:1-2-3-4-6-8-9-10-3-11 4 path4:1-2-3-11 5,导出测试用例 为了确保基本路径集中的每一条路径的执行,根据判断节点给出的条件,选择适当的数据以保证某一条路径可以倍测到。 (二)Junit测试 (1)编写一个java类,用Junit测试结果正误 public class Caculator private int result; /静态变量,用于存储运行结果 public void add(int n) result=result+n; public void substract(int n) result=result-1; /Bug:正确的应该是result=result-n; public void multiply(int n) /此方法尚未写好 public void divide(int n) result=result/n; public void square(int n) result=n*n; public void squareRoot(int n) for(;); /Bug:死循环 public void clear() result=0; /将结果清零 public int getResult() return result; (2)生成JUnit测试框架完整代码如下: import static org.junit.Assert.*;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.Ignore;public class CaculatorTest Caculator calculator=new Caculator();Beforepublic void setUp() throws Exception Afterpublic void tearDown() throws Exception Testpublic void testAdd() calculator.add(1); calculator.add(3); assertEquals(4, calculator.getResult();Testpublic void testSubstract() calculator.add(5); calculator.add(3); assertEquals(2, calculator.getResult();Ignore("Multiply() Not yet implemented")public void testMultiply() fail("尚未实现");Testpublic void testDivide() fail("尚未实现"); 四,实验结果及分析: 1,白盒测试: (1)测试用例如下:用例编号路径输入数据预期输出1 Path1:1-2-3-4-5-10-3-11iRecording=1,iType=0X=22 path2:1-2-3-4-6-7-9-10-3-11iRecording=1,iType=1X=53 path3:1-2-3-4-6-8-9-10-3-11iRecordNum=1,iType=3X=104 path4:1-2-3-11iRecordNum=1X=0 (2)结果分析: 设计四个测试用例分别覆盖四条路径,并给出预期结果。可以通过 实际的输出结果与预期的输出结果的比较来测试程序的正确性。2,Junit测试 (1)测试结果: (2)结果分析: 从测试结果可以看出,测试的类是Caculator,其所在的包是andy。以及本次测试一共测试了java类的三个方法,分别是testAdd()方法,testSubstract()方法和tesrDivide()方法。而且还可以看出testAdd()方法测试结果表明是正确的,而另外两个方法有测试结果可以看出其方法的代码是错误的。从测试结果还可以看出测试每个方法所用的时间。 五,实验收获与体会: 通过实验对白盒测试更加了解,亲自动手更了解过程