资源描述:
《太原理工大学软件测试方法和技术实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、太原理工大学学生实验报告学院名称计算机科学与技术专业班级软件工程实验成绩学生姓名学号实验日期课程名称软件测试方法和技术实验题目使用白盒测试方法测试程序段一、实验目的通过实验主要掌握用白盒法中的逻辑覆盖测试技术设计测试用例以及测试流程图的绘制。二、实验内容测试以下程序段VoidDoWork(intx,inty,intz){1intk=0,j=0;2if((x>0)&&(z<10))3{4k=x*y-1;5j=sqrt(k);6}7if((x==4)
2、
3、(y>5))8j=x*y+10;9j=j%3;
4、10}三、实验要求说明:程序段中每行开头的数字(1-10)是对每条语句的编号。a画出程序的控制流图(用题中给出的语句编号表示)。b分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。1)语句覆盖从流程图看出,程序具有4条路径:L1:(a-b-d)L2:(a-b-e)L3:(a-c-d)L4:(a-c-e)L1包含了所有可执行的语句,用例应该使程序中的每个可执行语句至少执行一次。可以使用L1来设计测试
5、用例。覆盖L1路径:输入{x=3,y=7,z=7},输出{k=20,j=1}。2)判定覆盖按照判定覆盖的用例使得程序中每个判断的取真和取假分支至少经历一次,即判断真假值均曾被满足。L1和L4可以作为测试用例。L1作为取真的路径:输入{x=4,y=7,z=8},输出{k=27,j=2}L4作为取假的路径:输入{x=3,y=2,z=14},输出{k=0,j=0}3)条件覆盖对于第一个判定条件2,可以分割如下:条件x>0:取真(TRUE)时为T1,取假(FALSE)时为F1;条件z<10:取真(TRU
6、E)时为T2,取假(FALSE)时为F2;条件x==4:取真(TRUE)时为T3,取假(FALSE)时为F3;条件y>5:取真(TRUE)时为T4,取假(FALSE)时为F4;根据条件覆盖的用例要使每个判断中每个条件的可能取值至上满足一次。和这8个条件取值,组合成测试用例。输入:x=4,y=4,z=12取值条件T1,F2,T3,F4通过路径P3输入:x=-2,y=7,z=8取值条件F1,T2,F3,T4通过路径P34)判定-条件覆盖按照判定-条件覆盖的用例使得判断条件中的所有条件可能至少执行一次
7、取值同时,所有的判断的可能结果至少执行执行一次。保证8个条件取值至少执行一次,同时判定条件2、3各取真假至少一次。输入:x=4,y=8,z=2取值条件T1,T2,T3,T4判定条件2,3通过路径P1输入:x=-2,y=3,z=14取值条件F1,F2,F3,F4判定条件/2,/3通过路径P45)条件组合覆盖条件x>0:取真(TRUE)时为T1,取假(FALSE)时为F1;条件z<10:取真(TRUE)时为T2,取假(FALSE)时为F2;条件x==4:取真(TRUE)时为T3,取假(FALSE)时
8、为F3;条件y>5:取真(TRUE)时为T4,取假(FALSE)时为F4;按照条件组合覆盖的基本思想:设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。设计组合条件表如下:组合编号覆盖条件取值判段条件取值判定-条件组合1T1,T22x>0,z<10,2为真2T1,F2/2x>0,z>=10,2为假3F1,T2/2x<=0,z<10,2为假4F1,F2/2x<=0,z>=10,2为假5T3,T47x==4,y>5,7为真6T3,F47x==4,
9、y<=5,7为真7F3,T47x!=4,y>5,7为真8F3,F4/7x!=4,y<=5,7为假设计覆盖这些组合的测试用例如下:输入:x=4,y=6,z=7覆盖条件T1,T2,T3,T4覆盖路径L1覆盖组合1,5输入:x=4,y=3,z=12覆盖条件T1,F2,T3,F4覆盖路径L3覆盖组合2,6输入:x=4,y=3,z=12覆盖条件F1,T2,F3,T4覆盖路径L3覆盖组合3,7输入:x=-4,y=2,z=14覆盖条件F1,F2,F3,F4覆盖路径L4覆盖组合4,86)路径覆盖按照路径覆盖的测
10、试用例覆盖程序中的所有可能执行路径。测试用例如下:输入:x=4,y=6,z=7覆盖条件T1,T2,T3,T4覆盖路径L1覆盖组合1,5输入:x=4,y=3,z=3覆盖条件T1,T2,F3,F4覆盖路径L2覆盖组合1,8输入:x=-3,y=8,z=8覆盖条件F1,T2,F3,T4覆盖路径L3覆盖组合3,7输入:x=-4,y=2,z=14覆盖条件F1,F2,F3,F4覆盖路径L4覆盖组合4,8四、实验心得:通过这次的实验我详细的了解了白盒测试方法中的逻辑覆盖技术,使用这种技术能够帮我们提高软件测试的