软件测试实验一
- 格式:docx
- 大小:22.19 KB
- 文档页数:5
软件测试实验报告
一、实验内容
本次实验的目的是通过白盒测试技术来对一个接口进行测试,目的是
为了评估接口的可用性和功能性,以及其在各种参数下的表现。
二、实验方法
1.确定测试的边界值:首先,根据接口文档,确定出各个参数的最小值、最大值和正常值,并根据边界值理论,选择出8个典型的测试值,即
最小值、最小值减一、最小值加一、正常值、正常值减一、正常值加一、
最大值、最大值加一,用于确定测试的边界。
2.编写测试用例:用确定的边界值,编写测试用例,以检测接口的可
用性和功能性。
3.执行测试:将编写的测试用例应用到实际情况中,对接口进行测试,并获得测试结果。
三、实验结果
1.测试结果:经过本次白盒测试,发现接口在各个参数下能够正常工作。
2.整体结论:在确定的边界值范围内,接口表现正常,可以满足对该
接口的功能和可用性的要求。
四、实验的建议
本次实验证明,白盒测试在评估接口的可用性和功能性方面是有效的。
但是,为了进一步提高接口的性能,还需要进行更加全面的测试,比如性
能测试、安全测试等,以便获得更好的测试效果。
实验一软件开发环境和简单程序设计一、实验目的1. 熟悉WAVE软件使用2. 学习简单程序的调试方法二、实验说明本实验1要求指定某块内部存储器的起始地址和长度,要求能将其内容置1。
实验2为数据排序程序设计。
通过该实验学生可以了解单片机内部存储器的结构和分配及读写存储器的方法,同时也可以了解单片机编程、调试方法。
三、实验内容及步骤1.启动PC机,打开WAVE软件,软件设置为模拟调试状态。
在所建的项目文件中输入源程序,进行编译,编译无误后,执行程序,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,点击复位按钮,可再次运行程序。
2.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及参考程序1、实验11)参考程序 2.流程图ORG 0000HSTART EQU 30H Array MOV R0, #STARTMOV R2, #10mov a,#01hLoop:MOV @R0,AINC R0DJNZ R2,LoopNOPLJMP $END2、实验21)参考程序 2.流程图参考教材P85例4-10五、思考题1、软件开发环境提供了哪些调试手段?各有何特点?1、如何将存储器块的内容移动到另一位置?2、分析实验2程序中各寄存器的作用,注释程序中的指令,说明指令的功能和作用。
实验一实验报告要求一、实验目的二、实验主要仪器及环境:三、实验内容五、实验步骤六、实验流程框图、实验程序七、实验及程序的分析和讨论八、程序测试报告:调试输入数据、结果数据或状态。
列表给出一、两个不同的输入和结果。
九、小结:所完成的工作、碰到的问题、如何解决、有何体会。
实验报告的格式1、打印在A4纸上。
上、下边距3厘米,左、右边距3厘米。
2、各实验报告抬头见下图。
3、标题依次为宋体加粗三号、四号、小四号。
4、正文宋体五号,单倍行距。
单片机实验报告姓名时间地点实验题目一.实验目的与要求┋┋。
实验一黑盒测试
一、实验目的及要求
实验目的:
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-软件测试软件工程实验 1 软件测试在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从智能手机上的各种应用程序,到企业内部复杂的业务系统,软件的质量和稳定性直接影响着用户的体验和业务的顺利进行。
而软件测试作为确保软件质量的关键环节,其重要性不言而喻。
在本次软件工程实验 1 中,我们深入探讨了软件测试的相关知识和实践。
软件测试,简单来说,就是对开发完成的软件进行检查和验证,以发现其中可能存在的缺陷和问题。
它并不仅仅是在软件完成后进行的一项工作,而是贯穿于整个软件开发的生命周期。
从需求分析阶段开始,测试人员就需要参与其中,对需求的可测试性进行评估,并制定相应的测试策略。
在软件测试中,有多种不同的测试类型。
其中,最常见的包括功能测试、性能测试、兼容性测试、安全测试等。
功能测试是软件测试的基础,它主要检查软件的各项功能是否能够按照预期正常工作。
测试人员会根据软件的需求规格说明书,设计一系列的测试用例,对软件的各种功能进行逐一验证。
比如,对于一个在线购物网站,功能测试会包括用户注册登录、商品浏览、下单购买、支付结算等功能的测试。
性能测试则关注软件在不同负载条件下的响应时间、吞吐量、资源利用率等性能指标。
通过性能测试,可以发现软件在处理大量数据或高并发请求时是否存在性能瓶颈,从而提前进行优化和改进。
例如,对于一个电商平台,在双十一等购物高峰期,能否承受巨大的访问量,保证系统的稳定运行,就是性能测试需要关注的重点。
兼容性测试主要考虑软件在不同的操作系统、浏览器、硬件设备等环境下的兼容性。
由于用户使用的设备和环境千差万别,如果软件不能在各种常见的环境下正常运行,就会给用户带来极大的不便。
比如,一款手机应用程序需要在不同品牌和型号的手机上,以及不同版本的操作系统上都能正常安装和使用。
安全测试则是为了发现软件中可能存在的安全漏洞,如数据泄露、权限控制不当、SQL 注入等。
随着网络安全威胁日益严峻,安全测试已经成为软件测试中不可或缺的一部分。
第三章JUnit单元测试实验1 开始使用JUnit【实验目的】1、学习使用JUnit4.X进行单元测试;2、掌握JUnit4.X编写测试代码的方法;3、应用JUnit进行单元测试,掌握最佳实践编写测试代码。
【实验环境】1、Windows环境,MyEclipse或Eclipse,JUnit4.x。
2、每个学生操作1台电脑。
【实验原理】JUnit是一个开源的Java编程语言的单元测试框架,最初由Erich Gamma 和Kent Beck 编写。
Junit测试是一种白盒测试工具。
JUnit是一套框架,继承TestCase类,就可以用Junit 进行自动测试了。
具有JUnit经验对于应用“测试驱动开发(TDD)”的程序开发模型是非常重要的。
JUnit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用JUnit进行自动测试了。
由于JUnit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的test first design的实现有了现成的手段:用JUnit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。
以后对代码的修改和优化,运行测试成功,则修改成功。
Java 下的team 开发,采用cvs(版本控制) + ant(项目管理) + JUnit (集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。
【实验内容】根据下面的实验步骤完成实验。
1、JUnit包下载。
(1) 从下载Junit,打开该链接,会有一个下载链接,下载Junit4.X.zip,保存在用户机的文件系统中。
(2) 解包Junit-4.X,得到如图3-1的解包文件。
图1 Junit解包文件文件/目录描述JUnit框架结构、扩展和测试运行器的二进制发布src.jar JUnit的源代码,包括一个Ant 的buildfile文件junit 是个目录,内有JUnit自带的用JUnit编写的测试示例程序javadoc JUnit完整的API文档doc 一些文档和文章,包括“Test Inf ected: Programmers Love Writing Tests”和其它一些资料,可以帮助我们入门。
目录目录 (1)实验一测试准备 (1)一、实验目的 (1)二、实验题目 (1)三、实验环境 (1)四、实验内容 (1)五、实验报告书写要求 (2)实验二测试 (3)一、实验目的 (3)二、实验题目 (3)三、实验环境 (3)四、实验内容 (3)五、实验报告书写要求 (4)实验三测试工具使用 (5)一、实验目的 (5)二、实验题目 (5)三、实验环境 (5)四、实验内容 (5)五、实验报告书写要求 (5)实验四团队测试 (6)一、实验目的 (6)二、实验题目 (6)三、实验环境 (6)四、实验内容 (6)五、实验要求 (7)六、关于实验成绩评定的说明 (7)七、文档提交要求 (8)附录1 QTP使用示例 (9)一、基本知识 (9)二、示例说明 (9)三、示例操作步骤 (10)1、录制前的准备工作 (10)2、录制测试过程 (10)3、分析录制的测试脚本 (12)4、运行、分析测试 (15)附录2 LoadRunner使用示例 (19)一、基本知识 (19)二、示例操作步骤 (20)1、制定测试计划 (20)2、建立测试脚本 (21)3、创建测试场景 (27)4、运行测试场景 (29)5、监视测试场景 (29)6、分析测试结果 (29)附录3 Selenium使用示例 (32)一、Selenium介绍 (32)二、Selenium安装 (33)三、被测软件说明 (34)1、被测软件选用说明 (34)2、被测软件安装部署说明 (34)四、Selenium录制及编辑 (34)1、规划录制操作内容 (34)2、录制操作 (35)3、编辑脚本内容 (39)五、使用JUnit运行测试 (40)1、导出JUnit程序 (40)2、建立JUnit项目 (41)3、运行测试用例 (41)其它参考资料 (41)附录4 JMeter使用示例 (42)一、JMeter介绍 (42)二、JMeter安装 (43)三、被测软件说明 (43)1、被测软件选用说明 (43)2、被测软件安装部署说明 (43)四、JMeter操作步骤 (43)1、JMeter主界面 (43)2、规划测试用例 (44)3、命名测试计划并创建线程组 (44)4、录制线程组的操作 (45)5、添加监听器 (46)6、添加必要的管理器 (47)7、解决页面关联问题 (47)8、实际运行测试 (47)其它参考资料......................................................................................... 错误!未定义书签。
软件测试实验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)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
实验课程名称:软件质量保证与测试B图1 传统三角问题的解决方法描述2.2 问题描述的改进基于前述的三角形问题,继续增加如下限制,量化问题描述进行改进。
C1: 1 ≤a ≤200C2: 1 ≤b ≤200C3: 1 ≤ c ≤200C4: a < b + cC5: b<a+cC6: c<a+b如果输入整数值范围超出C1, C2, C3指定,则输出提示信息“V alue of b is not in the range of permitted values.”(以C2 不满足为例,其它类似)。
当输入a,b,c满足C4, C5, C6指定后,再判断三角形类型(Equilateral/Isosceles/Scalene / Not A Triangle)。
判断过程三角形的流程图如图2 所示。
图2 改进的三角问题解决方法描述三、实验原理边界值分析测试边界值分析测试分为四类:普通边界值(normal boundary value)测试,最坏情形边界值(worst-case boundary value)测试,健壮性边界值(robust boundary value)测试,健壮性最坏情形边界值(robust worst-case boundary value)测试。
在二维测试用例空间中,四种类型的测试用例分布如下图3 至图6 所示。
图3 普通边界值测试图4 最坏情形边界值测试图5 健壮性边界值测试图6 健壮性最坏情形边界值测试对于这四种测试,它们的关系可以用下表4 来描述。
表4 四种边界分析测试的关系健壮性是指在异常情况下,软件还能正常运行的能力。
单缺陷假设指“失效极少是由两个或两个以上的缺陷同时发生引起的”。
在边界值分析中,单缺陷假设即选取测试用例时仅仅使得一个变量取极值,其他变量均取正常值。
多缺陷假设,则是指“失效是由两个或两个以上缺陷同时作用引起的”,要求在选取测试用例时同else if(a == b || a == c || b == c) return "Isosceles";else return "Scalene";}public static boolean isTriangle(int a, int b, int c){if (a + b <= c) return false;if (a + c <= b) return false;if (b + c <= a) return false;return true;}3.2边界值分析测试实验通过边界值分析方法生成测试集,不断地修改程序,直到所有测试用例集测试均通过。
软件测试基础—案例
一、软件测试案例1
应用程序:饭店订餐系统
功能:客户可以登录系统,查看饭店的菜肴信息、价格、口味,并下单,通过网上支付购买餐点。
功能测试用例:
1)验证登录功能:
输入正确的用户名和密码,验证是否能正确登录系统。
2)查看菜肴信息:
进入菜单界面,检查菜肴信息是否准确无误。
3)下单功能:
正确选择菜肴,检查是否可以正确下单。
4)支付功能:
选择支付方式,检查是否可以正确支付订单。
二、软件测试案例2
应用程序:汽车售后服务系统
功能:客户可以登录系统,查看汽车售后服务的服务信息和价格,并下订单,手机短信通知服务人员上门服务。
功能测试用例:
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));}}六、⼼得与体会通过本次实验,我对⽩盒测试的测试⽤例有了进⼀步的了解。
软件测试课程实验——稳定性、破坏性压力测试文档一、实验介绍与目的本次实验要求通过LoadRunner对已经完成的自有系统进行性能测试和稳定性、破坏性压力测试。
本次实验的目的在于下列几点,请注意,这也将会作为期末考核演示的评分点:1、通过实践课程所学,了解性能测试与压力测试的意义。
2、掌握LoadRunner的基本功能部件的使用方法,包括VuGen,Controller和Analysis。
3、尝试进行有针对性的性能测试与稳定性、破坏性压力测试,其中包括进行测试计划与策略的制定,测试用例(场景与操作脚本)的设计等。
4、依赖测试结果,尝试对被测系统的性能状况(容量与瓶颈)进行分析以及鼓励提出调优的方案。
5、锻炼测试工作组织分配能力与文档编写表达能力。
二、实验原理本次进行的实验是关于对已经完成的自有系统的性能与稳定性、破坏性压力测试(稳定性压力测试、破坏性压力测试)。
首先必须明白性能测试与稳定性、破坏性压力测试的定义、意义和方法,需要注意的是,性能测试的关注点在于,对系统在不同的负载情况下,获取各个方面的性能参数,如响应时间,CPU占用率,内存占用率;另一方面,压力测试的关注点在于,以长时间恒定负载或以特定时间内的反常负载加载到系统上,以观察其稳定性。
其次,我们需要了解LoadRunner的性能与稳定性、破坏性压力测试工具的基本使用方法。
LoadRunner主要依赖于三个功能部件,实现对各种具有不同交互协议的系统的性能与压力测试。
第一步,通过VuGen录制或编写Virtual User的操作脚本。
LoadRunner将测试的层次定义在了虚拟用户交互之上,并为此提供了相关的机制,即任意多个Virtual User的对象,根据预先定义好的脚本,模拟对系统进行交互。
我们可以通过录制用例,并且将当中不同的子操作定制为Action。
完成录制后,我们可以将其回放以验证,此时可以选择当中的Action并且定义他们的顺序。
广东*融学院实验报告
课程名称:软件测试
实验编号
实验一黑盒测试方法实验系别
及实验名称
姓名学号班级
实验地点实验日期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)根据决策表,设计测试用例的输入数据和预期输出。
内蒙古工业大学信息工程学院实验报告
课程名称:软件测试
实验名称:“爱米云网盘”黑盒测试设计用例
实验类型:验证性■综合性□设计性□
实验室名称:软件实验室
班级:软件12-2 学号:
姓名:张贺组别:
同组人:成绩:
实验日期: 2015年6月14日
实验报告成绩:指导教师审核(签名):年月日
实验报告
一.实验目的
①理解黑盒测试的概念。
②理解测试用例的重要性。
③掌握黑盒测试技术设计测试用例的方法。
二.实验环境
Windows7操作系统爱米云服务器爱米云客户端
三.实验内容
应用黑盒测试技术,对“爱米云网盘客户端”登录功能进行测试用例设计。
四.实验要求
①根据《软件需求规格说明书》了解登录功能的测试需求。
②重点针对账号、密码和登录流程进行测试用例设计。
③应用黑盒测试技术进行测试用例设计,写出等价类表、边界值分析结果、用
例场景图等测试设计文档。
五.实验步骤
1、通读“爱米云网盘”的《软件需求规格说明书》,重点阅读登录功能的需求。
登陆时,用户名由3~20个字母、数字或“_”组成,密码由6~16个字符组成,不能是8位以下纯数字。
登陆时,可以设置为“保存密码”或“自动登陆”。
登陆成功的账号记录在账号输入框和下拉列表中,下拉列表最多记录5个账号。
下拉列表中可以删除历史账号。
登陆成功后可从主窗口菜单中,进行切换账号和修改密码。
2、针对登录功能,应用适当的黑盒测试技术的等价类划分法、边界值分析法、场景法等
测试方法,进行测试用例设计,列出每个测试子项对应的等价类表、边界值、用例场景图等。
账号和密码等价类划分法
测试点 用户名由3~20个字母、数字或“_”组成,密码由6~16个字符
下拉列表等价类划分法 账号和密码边界值分析法
合并后的判定表
因果图分析法
根据因果图导出的判定表
3、根据步骤2的分析结果,写出测试用例原型。
等价类测试用例
边界值测试用例
场景法测试用例
六.实验体会
这次的实验给我的第一个直观的感受就是实验量比较大,做起来相对的比较费时费事。
需要掌握的东西和需要理解的知识都比较多。
不过通过这次的实验,对我所学的知识有了很好的巩固,加深了对知识的理解。
对这门课程也有了比较更好的认识,软件测试这门课程就是重复巩固知识的过程,对以后的学习也有了一定的帮助。