软件测试实验报告一
- 格式:doc
- 大小:169.00 KB
- 文档页数:8
软件测试实验报告
一、实验内容
本次实验的目的是通过白盒测试技术来对一个接口进行测试,目的是
为了评估接口的可用性和功能性,以及其在各种参数下的表现。
二、实验方法
1.确定测试的边界值:首先,根据接口文档,确定出各个参数的最小值、最大值和正常值,并根据边界值理论,选择出8个典型的测试值,即
最小值、最小值减一、最小值加一、正常值、正常值减一、正常值加一、
最大值、最大值加一,用于确定测试的边界。
2.编写测试用例:用确定的边界值,编写测试用例,以检测接口的可
用性和功能性。
3.执行测试:将编写的测试用例应用到实际情况中,对接口进行测试,并获得测试结果。
三、实验结果
1.测试结果:经过本次白盒测试,发现接口在各个参数下能够正常工作。
2.整体结论:在确定的边界值范围内,接口表现正常,可以满足对该
接口的功能和可用性的要求。
四、实验的建议
本次实验证明,白盒测试在评估接口的可用性和功能性方面是有效的。
但是,为了进一步提高接口的性能,还需要进行更加全面的测试,比如性
能测试、安全测试等,以便获得更好的测试效果。
成绩实验一一、实验内容录制样例程序的登录过程并插入检查点验证登录是否成功:密码为mercury,用户名可为任意四个以上字母。
"C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"二、实验目的1、熟悉QTP的开发环境2、熟悉QTP的开发步骤3、掌握检查点的插入方法三、实验脚本systemutil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet)S=Dialog("Login").WinEdit("Agent Name:").GetROProperty("text")Dialog("Login").WinEdit("Password:").SetSecure"4f6ff8b593d09ce3972f6a0d11d268bce155fcd1"Dialog("Login").WinButton("OK").ClickIf len(S)<4 ThenDialog("Login").Dialog("Flight Reservations").Static("Agent name must be at least 4 characters long.").Check CheckPoint("Agent name must be at least 4 characters long.") Dialog("Login").Dialog("Flight Reservations").WinButton("确定").ClickDialog("Login").WinButton("Cancel").ClickelseWindow("Flight Reservation").ActivateWindow("Flight Reservation").Static("Date of Flight:").Check CheckPoint("Date of Flight:")Window("Flight Reservation").CloseEnd If四、实验结果。
实验一黑盒测试
一、实验目的及要求
实验目的:
1、能熟练应用功能性测试技术进行测试用例设计;
2、对测试用例进行优化设计;
实验原理:
测试“日期推算”程序
该程序的功能是输入一个日期,输出该日期后两天的日期,例如输入2014年1月1日,则输出2014年1月3日。
现在假设“日期推算”程序已经被开发出来了,请对该程序进行功能测试,要求用尽可能少的测试用例检测出尽可能多的软件缺陷。
二、实验环境
一台装有windows操作系统的计算机,vc++6.0
三、实验内容
为了方便,我们不考虑闰年的问题,默认为2月都是28天,假设限定输入数据均为整数,日期中年份的有效值范围为1000~9999。
四、实验步骤
1.选定测试方法
2.等价类划分
划分等价类的方法有:
按区间划分、按数值划分、按数值集合划分、按限制条件划分、按限制规则划分等。
确定了等价类后,可建立等价类表。
3.执行测试用例
请根据“日期推算”程序功能要求,自行开发该程序。
4.测试执行结果,并统计,填入表中。
本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼211专业班级:软件工程学号:学生姓名:戴超指导教师:兰方鹏2015年10月7日太原理工大学学生实验报告(用户名:Aaron密码:mercury)(2)添加QTP自带示例程序(3)在弹出的“FlightReservation”窗口中选择订票日期、出发地和目的地,然后选择“Flight”图标选择航班。
(4)在弹出的“flighttable”表中选择一趟航班,点击“ok”按钮返回,在Name中填写订票人姓名,选择订票数目“tickets”和仓位“class”然后点击“installorder”按钮,生成订单。
(5)点击QTP主界面工具栏中的“Stop”按钮,停止脚本录制。
保存脚本并对脚本进行回放。
(6)插入检查点验证订单是否生成。
在actionscreen视图中的orderno 标签对应的文本框中点鼠标右键,在弹出的快捷菜单中选择“insertstandardcheckpoint”,在弹出的对话框中,单击ok,选中text(11)参照以上实验,再添加一个验证login界面中“agentname”的检查点。
(12)设计能够通过校验的正则表达式^\w{4,16}$,并回放成功。
(13)设计不能通过校验的正则表达式^\w{1,4}$并回放失败如下五、实验结果与分析1.第一个检查点的添加中最后传真订单回放失败原因分析:提交订单并发送传真的时候,该系统会自动生成一个订单号,而进行回放的时候又会生成另一个订单号,然后后续回放失败,因为和之前录制时的订单号不匹配,找不到从而中端回放。
修改:停止回放之后右键列表中的FaxOrderNo.xx的ObjectProperties,在弹出的窗口中点击text的value值中的图标“<#>”,弹出的对话框中把constant中的值改成如下,即FaxOrderNo\.[0-9]+,然后保存关闭。
实验报告内容要求:1.实验目的:理解黑盒测试的基本方法, 掌握等价类划分法和边界值方法设计测试用例。
2.实验内容:1)输入三个整数a、b、c, 分别作为三角形的三条边, 通过程序判断这三条边是否能构成三角形?如果能构成三角形, 则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c, 必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。
要求:a.大家用自己熟悉的编程语言, 实现上面问题的描述。
b.请用等价类设计测试用例。
2) 程序有三个输入变量month、day、year(month、day和year均为整数值, 并且满足: 1≤month≤12.1≤day≤31.1900≤ year ≤2050。
), 分别作为输入日期的月份、日、年份, 通过程序可以输出该输入日期在日历上下一天的日期。
例如, 输入为2005年11月29日, 则该程序的输出为2005年11月30日。
请用黑盒测试方法的边界值设计测试用例。
3.实验步骤:步骤一: 编写源程序并运行该程序。
步骤二: 测试用例设计。
1)三角形判定问题1.对测试用例进行等价类划分:2 6 6 5 等腰三角形 63 6 5 6 等腰三角形74 5 6 6 等腰三角形85 6 6 6 等边三角形96 -5 6 6 输入非法107 6 0 6 输入非法118 6 6 3.6 输入非法129 0 -5 6 输入非法1310 5.6 6 -2 输入非法1411 6 0 3.5 输入非法1512 3.5 5.6 4.5 输入非法1613 6 - - 请输入数据1714 - 5 - 请输入数据1815 - - 5 请输入数据1916 6 6 - 请输入数据2017 6 - 4 请输入数据2118 - 5 6 请输入数据2219 - - - 请输入数据2320 5 6 15 不能构成三角形2421 6 7 13 不能构成三角形2522 4 10 5 不能构成三角形2623 6 10 4 不能构成三角形2724 5 6 15 不能构成三角形2825 7 8 15 不能构成三角形29 3.测试截图2)NextDay问题1.对测试用例进行边界值分析:各变量分别取: 最小值、略大于最小值、正常值、略小于最大值、最大值。
实
验
报
告
实验科目:软件测试
学号: 10225607204 姓名:夏熊
1.实验目的
本次实验被测的样品为预先植入缺陷的可执行软件,附有格式满足GB/T8567要求的需求规格说明书作为用户文档,按照需求规格说明书测试出样品软件中的缺陷,了解测试的流程。
2.实验内容
按照本次实验的目标,各参加测试员仅根据GB/T 17544-1998 《信息技术软件包质量要求和测试》中3.3.1 功能性条款对物品进行测试,对物品的其他特性不做检测。
要求测试员检测出软件样品中尽可能多的功能缺陷,并给出测试结果报告。
3.实验环境
对于本次软件测试能力验证的测试环境,有如下基本要求:
PC机配置:
本软件所需硬盘空间10M以上
显示器分辨率:800*600以上
软件环境:
操作系统为MS Windows XP Professional中文版
数据库为MS Access 2000 中文版
4.实验过程及收获
5.实验结果。
学号:《软件测试技术》实验报告与习题册2014 / 2015 学年第2学期系别计算机学院专业班级一班姓名指导教师实验时间:实验地点:实验学时:实验时间:实验地点:实验学时:目录项目成绩批改时间实验一基于白盒测试的用例设计与验证(一)实验二基于白盒测试的用例设计与验证(二)实验三基于黑盒测试的用例设计与验证(一)实验四基于黑盒测试的用例设计与验证(二)实验五JUnit的安装与使用实验六LoadRunner的使用实验七WinRunner的使用实验时间:实验地点:实验学时:实验一:基于白盒测试的用例设计与验证(一)一.实验目的(1)熟悉Eclipse开发环境(2)掌握Java语言的基本语法,能够利用Java实现简单的程序开发(3)熟悉白盒测试基本原理(4)掌握白盒测试的逻辑覆盖法,能够依据语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理进行相应测试用例的设计工作。
二.实验内容(1)选择一门语言,完成指定的单元程序开发。
#include<stdio.h>void main(){int m,n,p,q;printf("please input m,n,p,q:\n");scanf("%d,%d,%d,%d",&m,&n,&p,&q);if(m>0&&n<6){m=n+3;n=n*2;}if(p>5||q<0){p=2*q+5;q++;}printf("输出的四个数是:%d,%d,%d,%d\n",m,n,p,q);实验时间: 实验地点: 实验学时:return ; }(2)分别依据白盒测试逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理设计相应的测试用例。
(3)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。
《软件测试技术》实验报告实验一单元测试专业:班级:学号:姓名:完成时间:2020年月日实验一单元测试(4学时)实验类别:基本实验实验目的:1、掌握黑盒测试技术,并能应用黑盒测试技术设计测试用例。
2、掌握白盒测试技术,并能应用白盒测试技术设计测试用例。
3、掌握对测试用例进行优化设计方法。
4、掌握单元测试技术,并按单元测试的要求设计测试用例。
5、掌握一种单元测试工具的使用。
实验内容:一、黑盒测试题目:选择1个完成。
1.题目一:电话号码问题某城市电话号码由三部分组成。
它们的名称和内容分别是:(1)地区码:空白或三位数字;(2)前缀:非'0'或'1'的三位数字;(3)后缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
2.题目二:三角形问题根据下面给出的规格说明,利用边界值测试的方法,给出足够的测试用例。
“一个程序读入三个整数。
把此三个数值看成是一个三角形的三个边。
这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。
”3.题目三:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、day 和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。
(1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3) 根据(1) 和(2) ,画出简化后的决策表。
4.题目四:自动售货机问题向自动售货机中投入1元或5角硬币,并按下【橙汁】或【可口可乐】按钮,则相应饮料送出来。
软件测试实验1:为三⾓形问题编写⼀个Java程序,并⽤Junit测试程序实验报告实验内容:1.Install Junit(4.12), Hamcrest(1.3) with Eclipse2.Install Eclemma with Eclipse3.Write a java program for the triangle problem and test the program with Junit.实验步骤:1.在eclipse中安装Junit、Hamcrest和eclemma。
下载Junit-4.12.jar、hamcrest-core-1.3.jar、和hamcrest-library-1.3.jar。
打开eclipse,新建⼀个project,在eclipse的菜单栏中,选择Project->Properties,在弹出的框的左侧选择“Java Bulid Path”,然后点击“Add External JARs”,把下载的⼏个包添加进来。
如图:安装eclemma:选择eclipse菜单中的“Help”,选择"Eclipse marketplace...",搜索eclemma,点击install开始安装。
安装完成后重启eclipse。
看到快捷按钮中的,说明eclemma安装成功。
2.程序代码和测试代码:可查看https:///realpby/SWTesting/blob/master/First%20Lab项⽬的⽬录如图:triCalculate.java⽂件中是实现三⾓形问题的代码。
testCalculate.java中是测试程序的代码。
triCalculate.java:package triangle;public class triCalculate {private static int tri =0;public void triangle(int a,int b, int c){if(a<=0||b<=0||c<=0){tri=0;}else{if(((a+b)>c) && ((a+c)>b && (b+c)>a)){if((a == b) &&(a == c)){tri = 3;//equilateral}if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)) {tri = 2;//isosceles}if(a!=b && a!=c && b!=c){tri = 1;//scalene}}else{tri=0;//三边长度⽆法构成三⾓形}}}public int getReuslt(){return tri;}public void clear(){tri = 0;}}testCalculate.java:package triangle;import static org.junit.Assert.*;import org.junit.Test;public class testCalculate {private static triCalculate cal = new triCalculate();@Testpublic void testTriangle(){cal.triangle(-5, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(5, 5, 5);assertEquals(3, cal.getReuslt());cal.triangle(5, 5, 6);assertEquals(2, cal.getReuslt());cal.triangle(3, 4, 5);assertEquals(1, cal.getReuslt());cal.triangle(12, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(10, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(11, 5, 5);assertEquals(3, cal.getReuslt());}}3.三⾓问题测试的测试结果和覆盖报告截图如下:测试程序中(11,5,5)这组数据不为3,所以出现⼀个failure。
软件测试实验报告(测试用例代码截图)计算机软件测试技术实验报告系别电子信息系专业计算机科学与技术班级学号姓名指导教师万聪2010年12月19月实验一黑盒测试用例设计一(实验内容:1( 三角形问题的等价类测试和边界值分析测试2( NextDate()函数决策表法测试二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1(三角形)实验代码(c)#include<stdio.h> #include<stdlib.h>int a=0,b=0,c=0;void shuru();void panduan(int a1,int b1,int c1);void main(){char se;shuru();panduan(a,b,c);while(1){printf("是否要继续y or n :");scanf("%c",&se);if(se=='\n') scanf("%c",&se);switch(se){case 'y':shuru();panduan(a,b,c);break;case 'n':return;}}}void shuru(){printf("Please enter 三角形三边 (a,b,c)\n"); scanf("%d,%d,%d",&a,&b,&c);while((a<1||a>100)||(b<1||b>100)||(c<1||c>100)){if(a==0||b==0||c==0) printf("边长不能为0\n");else if(a<0||b<0||c<0) printf("边长不能为负\n");else printf("Please enter 1-100之间的整数\n");scanf("%d,%d,%d",&a,&b,&c);}}void panduan(int a1,int b1,int c1) {int m1=a1+b1;int m2=a1+c1;int m3=b1+c1;if(a1>=m3||b1>=m2||c1>=m1) printf("非三角形\n");else if(a1!=b1&&a1!=c1&&b1!=c1) printf("一般三角形\n");else if((a1==b1&&b1!=c1)||(a1==c1&&a1!=b1)||(c1==b1&&a1!=c1)) printf("等腰三角形\n");else if(a1==b1&&b1==c1) printf("等边三角形\n"); }3.2测试用例和结果(反映在图中)测试用例输入a,b,c 输出1 4,5,6 一般三角形2 2,3,6 非三角形3 4,4,7 等腰三角形4 6,6,6 等边三角形5 4,0,6 边长不能为06 4,-5,6 边长不能为负7 101,101,101 请输入1-100之间的整数图形结果:3.3(NextDate())实验代码(c)#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int year;int month,day;int leap;//标志是闰年还是平年,为1时是闰年,为2时是平年time_t t;//本来以下是用来判断格式输入是否正确的,但是结果不理想struct tm stm;//Awhile(1){//循环测试printf("请输入年(yyyy)/月(mm)/日(dd)\n");scanf("%d/%d/%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday);//B year=stm.tm_year;month=stm.tm_mon;day=stm.tm_mday;//Ct=mktime(&stm);//Dprintf("*****输出结果*****\n");if(t!=-1)//E有问题,不管输入格式是什么,t永远是-1{printf("输入的日期时间格式出错!\n");continue;}if(year%4==0)//年份判断{if(year%100==0){if(year%400==0){leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day);}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }}else{leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day); }}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }if(month==2){if(leap==1){printf("该月有29天\n");if(day>29){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==29){month=month+1;day=1;}else day=day+1;}if(leap==2){printf("该月有28天\n");if(day>28){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==28){month=month+1;day=1;}else day=day+1;}}else if(month==4||month==6||month==9||month==11){printf("该月有30天\n");if(day>30){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==30){month=month+1;day=1;}else day=day+1;}else{printf("该月有31天\n");if(day>31){printf("对不起~超出该月范围\n");continue;}else if(day==31){if(month==12&&day==31){year=year+1;month=1;day=1;}else{month=month+1;day=1;}}else day=day+1;}printf("NEXT日期:%ld年%d月%d日\n",year,month,day); }}3.4测试用例和结果(反映在图中)决策表测试用例 month day year 预期输出Test1~3 6 16 2001 2001/6/17Test4 6 30 2001 2001/7/1Test5 6 31 2001 对不起~超出该月范围Test6~9 1 17 2010 2010/1/18Test10 1 31 2013 2013/2/1Test 11~14 12 31 2010 2010/1/1Test15 2 28 2004 2004/2/29Test16 2 29 2004 2004/3/1Test17 2 28 2001 2001/3/1Test18 2 30 2001 对不起~超出该月范围界面效果:实验二白盒测试用例设计一(实验内容:求解一元二次方程程序控制流测试二(实验要求:给出控制流测试用例和测试结果三(实验步骤及结果:3.1实验代码(c)#include<stdio.h>#include<stdlib.h>#include<math.h>void main(){float a,b,c,x,y;float mid,x1,x2;y=a*x*x+b*x+c;printf("*************************************\n"); printf("二元一次方程的求解问题\n");printf("**************************************\n"); while(1){printf("请输入y方程中参数a,b,c: \n");scanf("%f,%f,%f",&a,&b,&c);if(a!=0){mid=b*b-4*a*c;if(mid>0){x1=(-b+sqrt(mid))/(2*a);x1=(-b-sqrt(mid))/(2*a);printf("该方程有两个解:x1=%f,x2=%f\n",x1,x2);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x2,x2,b,x1,c);}if(mid==0){x1=-b/(2*a);x2=x1;printf("该方程两个解相同:x1=x2=%f\n",x2);printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);}if(mid<0){printf("该方程没有解\n");}}else printf("该方程不是二元方程,可能是一元一次方程\n");}}3.2测试用例和结果(反映在图中)测试用例 x,y,z a!=0 mid>0 mid==0 输出结果1 2,5,3 真真假该方程有两个解2 1,2,1 真假真该方程有两个相同解3 4,2,1 真假假该方程没有解4 0,2,1 假该方程不是二元方程,可能是一元一次方程图形结果:实验三基于缺陷模式的软件测试一(实验内容:C++语言、Java语言缺陷模式测试 (2学时) 二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1实验代码(java)package hl.fengye.tt;public class base{//没必要的方法调用,System.exit()是没有必要的,应该抛出异常public String square(String x){try{int y=Integer.parseInt(x.toLowerCase());return y*y+"";}catch(NumberFormatException e){e.printStackTrace();System.exit(1);return "";}}//显示垃圾回收(缺陷)public String multiply(String x,int n){if(n<=0) return "";StringBuffer buf=new StringBuffer();while(n-->0){buf.append(x);}return buf.toString();}public String multiplyGc(String x,int n){ System.gc();//显示运行结果return multiply(x,n);}//字符串的低效操作(连接)public void connection(){String filed="东北大学秦皇岛分校 4080420 黄磊"; //this is badString s="";//System.out.print(s);//Startfor(int i=0;i<filed.length();++i){s=s+filed.charAt(i);//追加}System.out.print(s+'\n');//Stop1}public void connection2(){String filed="东北大学秦皇岛分校 4080420 黄磊";//this is betterString s="";StringBuffer buf=new StringBuffer();for(int i=0;i<filed.length();++i){buf.append(filed.charAt(i));}String ss=buf.toString();System.out.print(ss+'\n');//Stop2}public static void main(String[] args) {String h;base pp=new base();h=pp.square("100");System.out.print(h+"\n");String s="hello word!";h=pp.multiply(s, 2);//System.out.print(h+"\n");h=pp.multiplyGc(s,2);System.out.print(h+"\n");//以纳秒为单位计算的:long startTime = System.nanoTime();//获取当前时间pp.connection();long endTime = System.nanoTime();System.out.println("程序运行时间:"+(endTime-startTime)+"ms");long startTime2 = System.nanoTime();//获取当前时间pp.connection2();long endTime2 = System.nanoTime();System.out.println("程序运行时间:"+(endTime2-startTime2)+"ms"); }}3.2测试用例和结果(反映在图中)显示垃圾回收部分:测试用例输入String s ,int n 输出结果1 hello word !,2 hello word! hello word!2 ni hao ,1 ni hao3 love you ,0 (null)图形显示:低效字符串操作部分:测试用例输入String s 输出时间bad(ms) good(ms)1 hl 441694 271302 hello word 477785 378673 东北大学秦皇岛分校 4080420 黄磊 456245 392444 (空格) 313135 51604部分图形展示:实验四系统测试一(实验内容:数据库应用系统性能测试二(实验要求:给出响应时间、吞吐量测试用例和结果三(实验步骤及结果:3.1实验代码(java)import java.sql.Connection;import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class huanglei {/*** @param args* @throws Exception*/public void execute() throws Exception{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");con.setAutoCommit(false);Statement st = con.createStatement();//st.execute("create table city (name varchar(20) not null)");for(int i = 100;i>0;i--){String str = "insert into city values('city"+i+"','huangeli','hebei')";System.out.println(str);st.addBatch(str);}//rs='select * from city';st.executeBatch();mit();}public static void main(String[] args) {// TODO Auto-generated method stubtry {new Luncher().execute();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}3.2测试用例和结果(反映在图中)测试用例线程数循环次数响应时间(seconds)吞吐结果1 100 10 1 592.002/minute2 50 5 1 293.232/minute1 100 102 586.61/minute图形展示:实验总结:通过这些课时的实验,了解了一些软件测试的基本含义,学会了一些基本测试步骤的设计和用例的构造。
软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。
二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。
白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。
白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。
测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。
三、程序代码要求:实现对不少于10个随机输入的数的冒泡排序算法。
#include<iostream>using namespace std;int main(){double a[100];int N;int i = 0, j = 0;cin >> N;//排序元素的个数for (i = 0; i <= N; i++){cin >> a[i];}for (i = 0; i < N-1 ; i++) {for (j = 0; j < N - 1 - i; j++){if (a[j] > a[j + 1]) {int tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}for (i = 0; i < N; i++){cout << a[i] <<" ";}cout << endl;return 0;}四、程序流程图五、测试内容(1)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
广东*融学院实验报告
课程名称:软件测试
实验编号
实验一黑盒测试方法实验系别
及实验名称
姓名学号班级
实验地点实验日期2018.3.26 实验时数 4
指导老师同组其他成员无成绩
一、实验目的及要求
1、理解测试用例的重要性。
2、熟练掌握等价类划分、边界值方法、决策表和因果图法设计测试用例。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1.使用软件:装有QTP功能测试软件
2.实验设备:装有Windows的联网的个人计算机
三、实验内容及步骤(包含简要的实验步骤流程)
1、实验题目:登陆框测试
在各种输入条件下,测试程序的登录对话框功能。
用户名和密码的规格说明书如下:(密码规则同用户名规则。
)
•用户名长度为6至10位(含6位和10位);
•用户名由字符(a-z、A-Z)和数字(0-9)组成;
•不能为空、空格和特殊字符。
要求:按照规格说明书,分别用等价类划分和边界值方法设计测试用例。
步骤:(1)分析规格说明书,确定输入条件、输出条件的有效等价类、无效等价类以及各个边界条件;(2)第二步:填表格并编号;(3)第三步:设计测试用例;(4)第四步:执行测试用例。
2、员工薪制问题。
(1)年薪制员工:严重过失,扣年终风险金的4%,过失,扣年终风险金的2%。
(2)非年薪制员工:严重过失,扣月薪资的8%,过失,扣月薪资的4%。
步骤:(1)分析程序的规格说明,列出原因和结果;(2)找出原因与结果的因果关系、原因与原因之间的约束关系,画出因果图;(3)将因果图转化成决策表;(4)根据决策表,设计测试用例的输入数据和预期输出。
软件测试实验报告《软件测试》实验报告书安徽⼯业⼤学计算机学院姓名马超专业软件⼯程班级132学号139074191指导教师刘卫红2016年 5⽉实验⼀⽤例设计与⿊盒测试⼀、实验⽬的(1)能够熟练应⽤⿊盒测试技术进⾏测试⽤例设计。
(2)对测试⽤例进⾏优化测试。
⼆、实验设备主流PC机⼀套,安装有主流的编程⼯具如MyEclipse、C、Visual C++三、实验内容为QQ的注册账号功能设计测试⽤例。
注册账号功能部分截图如下:等价类划分有效等价类编号⽆效等价类编号昵称不为空空密码长度为6-16个字符⾮长度为6-16个字符或9位以下纯数字不是9位以下纯数字不包含空格包含空格确认密码与密码栏输⼊⼀致与密码栏输⼊不⼀致性别男/⼥不选择(⽆法做到)⽣⽇选择合法有效⽇期不选择所在地选择合法有效地址不选择(⽆法做到)验证码验证正确验证不正确不验证⼿机号码输⼊合法有效⼿机号码输⼊⼿机号码不合法或⽆效不输⼊短信验证码输⼊正确验证码输⼊错误验证码不输⼊(有效与否由⼿机号码栏是否输⼊决定)不输⼊(有效与否由⼿机号码栏是否输⼊决定) 同意开通QQ空间勾选/不勾选我已阅读并同意相关服务条款和隐私政策勾选不勾选其中,密码栏和确认密码栏,⼿机号码栏和短信验证码栏之间有约束关系,采⽤因果图法原因:密码: 1 输⼊合法密码确认密码: 3 与密码栏⼀致2 输⼊合法密码 4 与密码栏不致结果: 5后续操作 6 报错O约束(唯⼀);1或2和3或4必须有且仅有1个为1。
原因:⼿机号码: 1 输⼊短信验证码: 3输⼊2 不输⼊ 4 不输⼊结果: 7后续判断8 报错R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
测试⽤例序号输⼊条件测试⽤例期望结果1 昵称412544热可以注册密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选2(已存在) 昵称412544热不可以注册密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选3 昵称昵称不可以为空密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 4昵称 412544热 6-12字符 9位⼀下纯数字密码 12345 确认密码 12345 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 5昵称 412544热9位⼀下纯数字密码 123456/1234567/12345678 确认密码 123456/1234567/12345678 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 6昵称 412544热可以注册密码 123456789/1234567890/12345678901/123456789012 确认密码123456789/1234567890/12345678901/123456789012 性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码 gbe(随机验证通过) ⼿机号码 157********短信验证码 345234(随机验证通过) 同意开通QQ 空间勾选我已阅读并同意相关服务条款和隐私政策勾选 7昵称 412544热 6-12字符密码 1234567890123 确认密码1234567890123性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服勾选务条款和隐私政策8 昵称412544热密码不⼀致密码123456789确认密码123456780性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选9 昵称412544热⽣⽇不可为确认密码2323rewew3性别男⽣⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选10 昵称4544热验证错误密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbMe(随机验证不通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选11 昵称412544热⼿机号不合法或⽆效密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码1575550370/⽆效⼿机号码短信验证码同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选12 昵称412544热短信验证码错误密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码34523(随机验证错误)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策勾选13 昵称4544热注册按钮不可⽤密码2323rewew3确认密码2323rewew3性别男⽣⽇农历1994年1⽉2⽇所在地中国安徽马鞍⼭验证码gbe(随机验证通过)⼿机号码157********短信验证码345234(随机验证通过)同意开通QQ空间勾选我已阅读并同意相关服务条款和隐私政策不勾选以下为补充补充测试⽤例编号主要操作及⽬的期望结果1 长时间离开页⾯长时间离开,重新操作2 输⼊全部正确并单击注册按钮查看是否跳转成功跳转页⾯3 检查所有下拉框是否正确且可⽤全部有效且可⽤4 在所有下拉框中分别输⼊错误信息⾃动转为默认值5 输⼊⼤⼩写字母可以区分6 能否点击查看《QQ号码规则》或《QQ空间跳转到相应页⾯服务协议》或《隐私政策》页⾯实验⼆Web测试⼀、实验⽬的掌握⽤例执⾏及缺陷报告的书写⽅法。
软件测试实验报告⼀《软件测试与质量管理》实验报告学号::机器号:程序名:实验容:(⼀)⽩盒测试⼀、⽬的和要求1、掌握⽩盒测试技术,并能应⽤⽩盒测试技术设计测试⽤例2、能⽤Junit实施测试⼆、实验容void DoWork(int x,int y,int z){1 int k=0,j=0;2 if(( x>3 ) && ( 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 return j;11 }说明:程序段中每⾏开头的数字(1~11)是对每条语句的编号。
(1)分别以语句覆盖、判定覆盖、条件覆盖和路径覆盖⽅法设计测试⽤例,并写出每个测试⽤例的执⾏路径(⽤题中给出的语句编号表⽰)。
(2)编写Java类,调⽤该⽅法,并⽤Junit测试⼯具编写测试代码进⾏测试。
三、实验流程图流程图四、测试⽤例的编写语句覆盖:P1:(1-2-3-4-5-6-7-8-9-10-11)令x=4,y=6,z=6;M=T, N=T T1,T2,T3,T4P2:(1-2-3-4-5-6-9-10-11)令x=6,y=4,z=6;M=T,N=F T1,T2,F3,F4P3:(1-7-8-9-10-11)令x=2,y=6,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判定覆盖:条件覆盖:路径覆盖:五、Junit测试源程序:public class DoWork {public DoWork(int x,int y,int z){ int k=0,j=0; if((x>3) && (z<10)){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 ;}}测试⽤例(路径覆盖)1. 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 {}Testpublic void testDoWork() {assertEquals(true, dowork.doWork(4, 6, 6));}}2. 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 {}Testpublic void testDoWork() {assertEquals(true, dowork.doWork(6, 4, 6));}}3. 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 {}Testpublic void testDoWork() {assertEquals(true, dowork.doWork(2, 6, 6));}}4. import junit.framework.*;import org.junit.Test;public class TestDoWork4 extends TestCase { private static int x,y,z; private static DoWork dowork=new DoWork(x,y,z);public void setUp() throws Exception {}Testpublic void testDoWork() {assertEquals(true, dowork.doWork(2, 4, 12));}}六、⼼得与体会通过本次实验,我对⽩盒测试的测试⽤例有了进⼀步的了解。
软件测试实习报告
在这次软件测试的实习中,我深刻地认识到了软件测试在软件开发过程中的重
要性。
通过实习,我不仅学到了理论知识,还有了实际操作的经验,对软件测试有了更深入的理解。
首先,我在实习中学习了软件测试的基本知识,包括测试的分类、测试的方法
和测试的流程等。
我了解到软件测试是在软件开发的各个阶段中进行的,其目的是为了发现和解决软件中存在的缺陷。
在实习中,我通过与导师的交流和自主学习,对软件测试的理论知识有了更加清晰的认识。
其次,我在实习中积累了丰富的实践经验。
我参与了多个软件测试项目,包括
功能测试、性能测试和安全测试等。
在这些项目中,我学会了如何制定测试计划、设计测试用例、执行测试和编写测试报告。
通过实践,我不断提升了自己的测试能力,掌握了更多的测试技巧和方法。
另外,实习让我了解到了团队合作的重要性。
在软件测试项目中,团队成员之
间需要密切合作,相互协助,共同完成测试任务。
通过与团队成员的合作,我学会了如何与他人有效地沟通、协调和合作,这对我未来的工作也是非常有帮助的。
总的来说,这次软件测试的实习让我收获颇丰。
我不仅学到了丰富的理论知识,还积累了宝贵的实践经验。
我相信这些知识和经验将对我未来的软件测试工作产生重要的影响。
我会继续努力学习,不断提升自己的软件测试能力,为软件质量的保障做出更大的贡献。
软件测试的实习报告到此结束。
第1篇一、实验目的本次实验旨在通过人工测试方法对软件进行全面的测试,验证软件的功能、性能、兼容性以及用户体验等方面,确保软件质量达到预期标准。
通过本次实验,提高学生对软件测试流程和方法的掌握,培养实际操作能力。
二、实验环境1. 操作系统:Windows 102. 测试工具:Microsoft Visual Studio 20193. 软件版本:待测试软件版本号4. 硬件配置:CPU:Intel Core i5-8265U,内存:8GB,硬盘:256GB SSD三、实验内容1. 测试计划制定根据待测试软件的功能和需求,制定详细的测试计划,包括测试范围、测试方法、测试用例设计、测试环境搭建、测试资源分配等。
2. 测试用例设计根据测试计划,设计测试用例,包括功能测试用例、性能测试用例、兼容性测试用例、用户体验测试用例等。
3. 测试环境搭建根据测试计划,搭建测试环境,包括硬件、软件、网络等方面的配置。
4. 测试执行按照测试用例,对软件进行功能测试、性能测试、兼容性测试和用户体验测试。
5. 缺陷报告在测试过程中,记录发现的缺陷,并编写缺陷报告,包括缺陷描述、复现步骤、优先级、严重性等。
6. 缺陷跟踪对已提交的缺陷进行跟踪,关注缺陷修复进度,确保缺陷得到有效解决。
7. 测试总结完成所有测试任务后,对测试过程和结果进行总结,分析测试过程中的问题和不足,提出改进措施。
四、实验步骤1. 测试计划制定- 分析待测试软件的功能和需求,确定测试范围;- 确定测试方法,包括黑盒测试、白盒测试、灰盒测试等;- 设计测试用例,包括功能测试用例、性能测试用例、兼容性测试用例、用户体验测试用例等;- 搭建测试环境,包括硬件、软件、网络等方面的配置。
2. 测试用例设计- 根据测试计划,设计测试用例,包括功能测试用例、性能测试用例、兼容性测试用例、用户体验测试用例等;- 测试用例应覆盖所有功能点,确保测试全面性。
3. 测试环境搭建- 根据测试计划,搭建测试环境,包括硬件、软件、网络等方面的配置;- 确保测试环境与实际运行环境一致,以便更准确地反映软件的实际性能。
本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼专业班级:学生姓名:指导教师:谢红薇2015年10月14 日太原理工大学学生实验报告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 NP2(abcdefhkl)=M and /NP3(abgijl)=/M and NP4(abgkl)=/M and/N1.语句覆盖输入{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,F4 x>0,z>=10,x==4,y<=5 P3(abgijl)输入{x=0,y=8,z=7}输出{j=1}F1T2,F3,T4 x<=0,z<10,x!=4,y>5 P3(abgijl)4.判定-条件覆盖测试用例取值条件具体取值判定条件通过路径输入{x=4,y=8,z=8} 输出{j=2,k=27} T1,T2,T3,T4 x>0,z<10,x==4,y>5 M,N P1(abcdefhijl)输入{x=0,y=3,z=15} 输出{j=0,k=0} F1F2,F3,F4 x<=0,z>=10,x!=4,y<=5/M,/N P4(abgkl)5.条件组合覆盖组合编号覆盖条件取值判定条件取值判定条件组合1 TI,T2 M x>0,z<10,M取真2 TI,F2 /M x>0,z>=10,M取假3 FI,T2 /M x<=0,z<10,M取假4 FI,F2 /M x<=0,z>=10,M取假5 T3,T4 N x==4,y>5,N取真6 T3,F4 N x==4,y<=5,N取真7 F3T4 N x!=4,y>5,N取真8 F3,F4 /N x!=4,y<=5,N取假测试用例测试用例取值条件覆盖路径覆盖组合T1,T2,T3,T4 P1(abcdefhijl) 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=4,y=4,z=15}T1F2,T3,F4 P3(abgijl) 2,6 输出{j=2}F1,T2,F3,T4 P3(abgijl) 3,7 输入{x=0,y=8,z=8}输出{j=1}F1F2,F3,F4 P4(abgkl) 4,8 输入{x=0,y=3,z=15}输出{j=0}6.路径覆盖测试用例覆盖路径覆盖条件覆盖组合P1(abcdefhijl) T1,T2,T3,T4 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=3,y=3,z=8}P2(abcdefhkl) T1F2,F3,F4 1,8 输出{j=2}P3(abgijl) F1,F2,F3,T4 4,7 输入{x=0,y=7,z=15}输出{j=1}P4(abgkl) F1F2,F3,F4 4,8 输入{x=0,y=4,z=15}输出{j=0}五、讨论心得在试验过程中,我们对于白盒测试还是没有熟练的掌握,还需要不断地练习,但是我们也已经收获了很多,特别是路径测试,我们掌握到了路径测试的一些方法,知道了划分路径的方法,,怎样设计测试用例。
软件性能测试实验报告软件性能测试实验报告摘要:本实验旨在通过对软件性能进行测试,评估软件在不同负载条件下的表现。
通过一系列测试,我们分析了软件的响应时间、吞吐量和资源利用率等性能指标,并提出了一些优化建议。
实验结果表明,在合理的负载范围内,软件能够稳定运行,并具备较好的性能表现。
1. 引言随着软件应用的广泛普及,软件性能成为了用户关注的重要指标之一。
软件性能测试旨在评估软件在不同压力下的表现,为开发者提供参考和改进方向。
本次实验选择了一款在线购物平台的软件进行性能测试,通过模拟用户的访问行为,测试软件在不同负载下的性能表现。
2. 实验环境本次实验使用了一台配置较高的服务器作为测试环境,服务器配置为Intel Xeon 处理器、16GB内存和500GB硬盘。
软件运行在CentOS 7操作系统上,使用了Apache Tomcat作为应用服务器,MySQL作为数据库。
3. 实验设计为了模拟真实的用户访问行为,我们使用了性能测试工具JMeter。
首先,我们定义了一系列的测试场景,包括用户登录、商品浏览、购物车操作等。
然后,我们设置了不同的负载条件,分别测试了10、50、100和200个并发用户的情况。
4. 测试结果与分析4.1 响应时间在不同负载条件下,我们记录了软件的平均响应时间。
实验结果显示,在低负载情况下,软件的响应时间较短,用户体验良好。
但随着负载的增加,响应时间逐渐增加,用户可能会感到延迟。
特别是在200个并发用户的情况下,响应时间明显增加,需要进一步优化。
4.2 吞吐量吞吐量是衡量软件性能的重要指标之一,表示单位时间内能够处理的请求量。
我们记录了每秒钟处理的请求数量,并根据不同负载条件进行了比较。
实验结果显示,随着负载的增加,吞吐量逐渐增加,但在200个并发用户的情况下,吞吐量增长趋缓。
这可能是由于软件的并发处理能力达到了瓶颈,需要进一步优化。
4.3 资源利用率为了评估软件对系统资源的利用情况,我们监测了服务器的CPU和内存使用率。