本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼专业班级:学生姓名:指导教师:谢红薇2015年10月14日太原理工大学学生实验报告实验名称实验一白盒测试方法实验地点实验楼211实验时间2015.10.9一、实验目的和要求(1)熟悉掌握白盒测试方法中的逻辑覆盖和路径覆盖的测试方法。(2)通过实验掌握逻辑覆盖测试用例设计,掌握流程图的绘制。(3)运用所学理论,完成实验研究的基本训练过程。二、实验内容和原理测试以下程序段Void DoWork(int x,int y,int z){(1)int k=0,j=0;(2)if((x>0)&&(z<10))(3){(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)}说明:程序中每行开头的数字(1-10)是对每句语句的编号。a画出程序的控制流图(用题中给出的语句编号表示)。b分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。三、实验仪器设备笔记本电脑四、操作方法与实验步骤1、绘制控制流图控制流图:1 5 2 a b e 4 7 8 9 E c d f h g i j 6 3 l k S 2、编写完整C程序附:程序代码#include<stdio.h>#include<math.h>int dowork(int x,int y,int z){int k=0,j=0;if((x>0)&&(z<10)){k=x*y-1;j=sqrt(k);}if((x==4)||(y>5))j=x*y+10;j=j%3;return j;}void main(){int x,y,z,j;printf("输入x,y,z的值");scanf("%d%d%d",&x,&y,&z);j=dowork(x,y,z);printf("j的值%d",j);}3、设计用例并运行记录分析设判定条件M=(x>0)&&(z<10)N=(x==4)||(y>5)设路径P1(abcdefhijl)=M and N P2(abcdefhkl)=M and/N P3(abgijl)=/M and N P4(abgkl)=/M and/N 1.语句覆盖输入{x=4,y=8,z=9}输出{j=0}覆盖路径P1(abcdefhijl)2.判定覆盖输入{x=4,y=8,z=9}输出{j=0}覆盖路径P1(abcdefhijl)输入{x=4,y=4,z=15}输出{j=0}覆盖路径P3(abgijl)3.条件覆盖对于第一个判定条件M,分割如下条件x>0取真时为T1,取假时为F1。条件z<10取真时为T2,取假时为F2。对于第二个判定条件N,分割如下条件x==4取真时为T3,取假时为F3。条件y>5取真时为T4,取假时为F4。测试用例取值条件具体取值通过路径输入{x=4,y=3,z=15}输出{j=1}T1,F2,T3,F4x>0,z>=10,x==4,y<=5P3(abgijl)输入{x=0,y=8,z=7}输出{j=1}F1T2,F3,T4x<=0,z<10,x!=4,y>5P3(abgijl)4.判定-条件覆盖测试用例取值条件具体取值判定条件通过路径输入{x=4,y=8,z=8}输出{j=2,k=27}T1,T2,T3,T4x>0,z<10,x==4,y>5M,NP1(abcdefhijl)输入{x=0,y=3,z=15}输出{j=0,k=0}F1F2,F3,F4x<=0,z>=10,x!=4,y<=5/M,/NP4(abgkl)5.条件组合覆盖组合编号覆盖条件取值判定条件取值判定条件组合1TI,T2Mx>0,z<10,M取真2TI,F2/Mx>0,z>=10,M取假3FI,T2/Mx<=0,z<10,M取假4FI,F2/Mx<=0,z>=10,M取假5T3,T4Nx==4,y>5,N取真6T3,F4Nx==4,y<=5,N取真7F3T4Nx!=4,y>5,N取真8F3,F4/Nx!=4,y<=5,N取假测试用例测试用例取值条件覆盖路径覆盖组合输入{x=4,y=8,z=8}输出{j=0}T1,T2,T3,T4P1(abcdefhijl)1,5输入{x=4,y=4,z=15}输出{j=2}T1F2,T3,F4P3(abgijl)2,6输入{x=0,y=8,z=8}输出{j=1}F1,T2,F3,T4P3(abgijl)3,7输入{x=0,y=3,z=15}输出{j=0}F1F2,F3,F4P4(abgkl)4,8 6.路径覆盖测试用例覆盖路径覆盖条件覆盖组合输入{x=4,y=8,z=8}输出{j=0}P1(abcdefhijl)T1,T2,T3,T41,5输入{x=3,y=3,z=8}输出{j=2}P2(abcdefhkl)T1F2,F3,F41,8输入{x=0,y=7,z=15}输出{j=1}P3(abgijl)F1,F2,F3,T44,7输入{x=0,y=4,z=15}输出{j=0}P4(abgkl)F1F2,F3,F44,8五、讨论心得在试验过程中,我们对于白盒测试还是没有熟练的掌握,还需要不断地练习,但是我们也已经收获了很多,特别是路径测试,我们掌握到了路径测试的一些方法,知道了划分路径的方法,,怎样设计测试用例。测试的过程就是找错的过程,我们要通过方法去找到软件中存在的问题,这才是软件测试的意义,我们便需要不断地学习怎么进行软件测试,特别是白盒测试。实验室名称实验楼211指导老师签名:实验名称实验二黑盒测试方法实验地点实验楼211实验时间2015.10.12一、实验目的和要求(1)熟悉掌握黑盒测试方法中的等价类测试方法和边界值测试方法。(2)通过实验掌握如何应用黑盒测试方法设计测试用例。(3)运用所学理论,完成实验研究的基本训练过程。二、实验内容和原理1、用你熟悉的语言编写一个判断三角形问题的程序。2、使用等价类方法和边界值方法设计测试用例。三、主要仪器设备笔记本电脑四、操作方法和步骤(1)编写C语言程序附:实验代码#include<stdio.h>#include<math.h>void main(int a,int b,int c){scanf("%d%d%d",&a,&b,&c);if((a+b<c)||(a+c<b)||(b+c<a))printf("不是三角形");else if(a==b)if(b==c)printf("等边三角形");else printf("等腰三角形");else if(a==c)if(b==c)printf("等边三角形");else printf("等腰三角形");else if(b==c)if(b==a)printf("等边三角形");else printf("等腰三角形");else printf("是三角形");}图2.1程序流程图图2.2流图(2)设计用例运行记录创建等价类输入条件有效等价类无效等价类三条边的关系1.两边之和小于等于第三边2.三条不等3.其中两边相等4.三条边都相等输入类型5.输入整数类型6.输入非整数类型输入值的范围7.>08.<=0对应测试用例:a.{a=5,b=6,c=12}覆盖等价类1,5,7 b.{a=3,b=4,c=5}覆盖等价类2,5,7 c.{a=3,b=6,c=6}覆盖等价类3,5,7 d.{a=4,b=4,c=4}覆盖等价类4,5,7 e.{a=2.2,b=4,c=4}覆盖等价类6 f.{a=3,b=1.2,c=3}覆盖等价类6 g.{a=3,b=3,c=1.2}覆盖等价类6 h.{a=4,b=5,c=0}覆盖等价类7五、讨论心得在试验中,我了解到了黑盒测试中的等价类划分依据边界值分析等测试的方法,通过不同的方法,所进行的测试过程也是不同的,但是都需要我们去熟练掌握,只有掌握并熟悉每一种测试方法,才能在测试中提高软件的质量,保证软件能够达到要求。我们需要学习的还有很多。实验室名称实验楼211指导老师签名:实验名称实验三QTP自动化测试实验地点实验楼211实验时间10.12一、实验目的和要求(1)实验要求自带笔记本,安装QTP软件(V9.2),独立完成实验内容,可以互相讨论。(2)实验内容了解QTP软件,熟悉QTP自动化测试原理;掌握QTP软件的脚本录制;掌握QTP检查点的插入,能够利用QTP软件进行功能测试(界面测试)和回归测试。
二、实验内容和原理(1)实验原理Quick Test Professional简称QTP,是Mercury Interactive公司开发一款自动化测试软件,该公司于2006年11月被HP公司收购。QTP自动化测试软件主要侧重于功能测试(界面测试)和回归测试。(2)实验内容本实验以QTP9.2版本为例,首选对QTP自带实例“Flight Resevating”(飞机订票系统)进行脚本录制。然后插入检查点进行测试,最后分析和讨论实验结果。
三、实验仪器设备(1)笔记本电脑(Windows操作系统)(2)QTP9.2四、操作方法与实验步骤1.安装QTP9.2,启动该软件。先解压文件,解压后先查看“安装重要说明”文件,根据文件说明进行安装,安装成功后需要重新启动电脑,根据安装提示操作即可。安装完成后启动“Quick Test Professional”,进入软件主界面。2.对Flight Resevationg(飞机订票)系统进行脚本录制。(1)启动QTP软件快捷方式,进入QTP工作界面。(2)点击工具栏上的“Record”图标进行脚本录制,如图3所示:图3(3)在弹出的“Resord and Run Settings”对话框中切换至“Windows Applications”标签,如图4所示:图4(4)在弹出的对话框中,选择“Application details”中右边的“+”标签,如图5所示:图5(5)在弹出的对话框中按照默认选项选择,然后点击“ok”按钮,如图6所示:图6(6)在弹出的“Login”界面中输入用户名和密码,如图7所示。注意:用户名至少是4个字符,密码是“mercury”。图7(7)在弹出的“Flight Reservation”窗口中选择订票日期、出发地和目的地,然后选择“Flight”图标选择航班,如图8所示。注意:日期格式“MM--DD--YY”,并且必须是当前日期之后。图8(8)在弹出的“Flight Table”表中选择一趟航班,点击“ok”按钮返回。(9)在“Name”中填写订票人姓名,选择订票数目“Ticktets”和仓位“Class”,然后点击“Insert Order”按钮,生成订单,如图9所示图9(10)选择工具栏“File”菜单中的“Exit”子菜单或者点击关闭按钮,关闭“Filght Reservation”窗口。点击QTP主界面工具栏中的“Stop”按钮,停止脚本录制。至此,订票系统录制完毕,如图10所示:图10 3.保存录制脚本并对脚本进行回放首先点击工具栏上的保存图标,保存刚才录制的脚本,然后点击“Run”按钮,根据默认选择,对录制的脚本进行回放并生成测试结果表,如图11和图12所示。图11图12在测试结果表中,Result结果为:Done,表明系统运行完成,测试结果是否满足预期?需要加入“检查点”进行验证。4.插入“检查点”验证订单是否生成(1)在“keyword view”视图中单击“Insert Order”这一行,同时QTP主界面右下角“Active Screen”中会显示这一操作的界面,如图13所示。图13(2)在“Active Screen”视图中“Order No”标签对应的文本框中点击右键,在弹出的快捷菜单中选择“Insert Standard Checkpoint”,如图14所示。图14(3)在弹出的对话框中单击“ok”按钮打开“Checkpoint properties”对话框,在该对话框中只选择“text”属性这一行,然后选择“insert statement:”中的“After current step”选项,单击“Configure value”标签中“Constant”类型最右边的图标,如图15所示:图15(4)在弹出的对话框中先选中“Regular expression”标签,然后再Value中输入值:“[0-9]+”,(“[0-9]+”是一个正则表达式,该表达时的含义是判断是否为数字),最后点击“ok”按钮,如图16所示:图16(5)返回“Checkpoint properties”对话框,单击“ok”按钮,至此,检查点插入成功。(6)保存脚本,重新运行脚本,生成如图17所示的测试结果表。测试结果表明测试通过,订单生成成功。5.在图15中的“constant”一栏中输入一个常数值,重新运行脚本。图17 6.重新录制脚本。重复上述过程“2.对Flight Resevation(飞机订票)系统进行脚本录制”中的(1)-(9),接着录制以下步骤(10)和(11)。(10)选择工具栏“File”菜单中的“Fax Order No.xx”窗口中填写传真号码以及代理人签名“Agent signature”,其中No.xx表示生成的传真订单号,具体号码以实际为准,然后点击“Send”,如图18表示:图18(11)发送成功后系统返回“Flight Resevation”,并显示传真发送状态,如图19所示,(12)关闭“Flight Resevation”窗口,停止录制。2.回放以上脚本,回放结果失败,分析原因。3.按以下步骤修改。(13)切换到“Keyword View”视图,鼠标右击“Fax Order No.xx”,在弹出快捷菜单中选择“Object Properties”,如图20所示。图19图20(14)在弹出的“Object Properties”窗口中点击text的Value值中的图标“<#>”,如图21所示。图21(15)在弹出的对话框中,选中“Regular expression”,把contast中的值改为如图22所示的内容。图22(16)关闭窗口,重新回放脚本,查看脚本是否回放成功。9.参照以上实验,再添加一个验证“Login”界面中“Agent Name”的检查点提示:利用正则表达式对Agent Name进行校验,即:对不少于4个字符的Agent Name再加以限定,分别设计一个能够通过校验的正则表达式和一个不能通过校验的正则表达式。
五、实验数据记录和处理(记录“四、操作方法与实验步骤”中的第九步的实验记录和处理)六、实验结果与分析通过验证的正则表达式:不能通过的正则表达式:七、讨论、心得自动化测试的出现给我们的测试提供了更多的帮助,节省了更多的时间,可以,也避免了许多因为人为测试可能会出现的错误,同时我们可以利用更多的时间去提高软件别的方面,保证了软件的质量变的更好。在自动化测试的时候,测试工具也起到了重要的作用,所以我们也需要注意对于测试工具的使用,首先一定要了解,通过更多的使用,便会有一定的熟悉。