软件测试实验一
软件测试 实验一 实验报告
成绩实验一一、实验内容录制样例程序的登录过程并插入检查点验证登录是否成功:密码为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-软件测试
软件工程实验1-软件测试软件工程实验 1 软件测试在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从智能手机上的各种应用程序,到企业内部复杂的业务系统,软件的质量和稳定性直接影响着用户的体验和业务的顺利进行。
而软件测试作为确保软件质量的关键环节,其重要性不言而喻。
在本次软件工程实验 1 中,我们深入探讨了软件测试的相关知识和实践。
软件测试,简单来说,就是对开发完成的软件进行检查和验证,以发现其中可能存在的缺陷和问题。
它并不仅仅是在软件完成后进行的一项工作,而是贯穿于整个软件开发的生命周期。
从需求分析阶段开始,测试人员就需要参与其中,对需求的可测试性进行评估,并制定相应的测试策略。
在软件测试中,有多种不同的测试类型。
其中,最常见的包括功能测试、性能测试、兼容性测试、安全测试等。
功能测试是软件测试的基础,它主要检查软件的各项功能是否能够按照预期正常工作。
测试人员会根据软件的需求规格说明书,设计一系列的测试用例,对软件的各种功能进行逐一验证。
比如,对于一个在线购物网站,功能测试会包括用户注册登录、商品浏览、下单购买、支付结算等功能的测试。
性能测试则关注软件在不同负载条件下的响应时间、吞吐量、资源利用率等性能指标。
通过性能测试,可以发现软件在处理大量数据或高并发请求时是否存在性能瓶颈,从而提前进行优化和改进。
例如,对于一个电商平台,在双十一等购物高峰期,能否承受巨大的访问量,保证系统的稳定运行,就是性能测试需要关注的重点。
兼容性测试主要考虑软件在不同的操作系统、浏览器、硬件设备等环境下的兼容性。
由于用户使用的设备和环境千差万别,如果软件不能在各种常见的环境下正常运行,就会给用户带来极大的不便。
比如,一款手机应用程序需要在不同品牌和型号的手机上,以及不同版本的操作系统上都能正常安装和使用。
安全测试则是为了发现软件中可能存在的安全漏洞,如数据泄露、权限控制不当、SQL 注入等。
随着网络安全威胁日益严峻,安全测试已经成为软件测试中不可或缺的一部分。
软件测试技术实验1
赣南师范大学 数计学院计算机软件测试技术 实验报告专业 班级学号 姓名 成绩软件工程2016 年 月 月实验一黑盒测试用例设计一.实验内容: 1. 三角形问题的边界值分析测试 2. NextDate()函数决策表法测试 二.实验要求:给出测试用例和测试结果 三.实验步骤及结果: (一) (三角形)实验代码(c)#include<stdio.h> #include<stdlib.h> int a=0,b=0,c=0; voidshuru(); voidpanduan(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; } } } voidshuru() { 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); } } voidpanduan(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"); }实验一:输入三个整数 有效等价类 范围:1~100 号码 1 无效等价类 a<1或a>100 b<1或b>100 c<1或c>100 a+b<c a+b=c b+c<a b+c=a a+c<b a+c=b 号码 7 8 9 10构成一般三角 形 a+b>c b+c>a2 311a+c>b412构成等腰三角 (a=b||b=c||a=c) 5 形 && 两 边 之 和 大于第三遍 构成等边三角 a=b=c 6 形覆盖有效等价类的测试用类 a b c 覆盖有效等价类号码3 4 44 4 45 5 41、2、3、4 1、2、3、4、5 1、2、3、4、6覆盖无效等价类的测试用类 a 0 3 3 3 7 2 b 4 0 4 4 2 5 c 5 5 0 7 3 3 覆盖无效等价类号码 7 8 9 10 11 12(二) 有函数 f(x,y,z), 其中 x∈[1900,2100], y∈[1,12], z∈[1,31]的。
软件测试实验JUnit单元测试
第三章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”和其它一些资料,可以帮助我们入门。
软件测试实验报告
学号:《软件测试技术》实验报告与习题册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角硬币,并按下【橙汁】或【可口可乐】按钮,则相应饮料送出来。
软件测试实验一_三角形问题
三角形问题接受三个整数a、b和c作为输入,用做三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形。
(说明:三边边长小于200)源程序:#include<iostream>using namespace std;float a,b,c; //全局变量(边长)int input (void); //边长输入函数int main (void) //主函数{float tmp;int i;char ch=c; //ch程序控制while(ch!='s'&&ch!='S'){input();if(!(a>0&&a<200)&&(b>0&&b<200)&&(c>0&&c<200)) //边界检查{cout<<"输入数据不符合范围要求,请检查后按任意键重新输入(输入s结束程序):";cin>>ch;continue;}for(i=0;i<3;i++) //三边排序(升序){if (a>b) { tmp=a;a=b; b=tmp; }if (b>c) { tmp=b;b=c; c=tmp; }}if((a+b>c)&&(c-a<b)&&(c-b<a)) //判断能否构成三角形{if(a==b&&b==c){cout<<"等边三角形"<<endl;}else if(a==b||a==c||b==c){cout<<"等腰三角形"<<endl;}else{cout<<"不等边三角形"<<endl;}}else{cout<<"输入三边不能构成三角形,按任意键重新输入(输入s结束程序):";cin>>ch;continue;}}return 0;}int input (void){cout<<endl<<"输入三边长(0~200):"<<endl<<"a:";cin>>a;cout<<"b:";cin>>b;cout<<"c:";cin>>c;cout<<endl;return 0;}。
软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序
软件测试实验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)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
软件质量保证与测试实验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边界值分析测试实验通过边界值分析方法生成测试集,不断地修改程序,直到所有测试用例集测试均通过。
软件测试实验
创建真实的负载 Virtual users 建立起后,您需要设定您的负载方案,业务流程组合 建立起后,您需要设定您的负载方案, 和虚拟用户数量。 和虚拟用户数量。用LoadRunner的Controller,您能很快组织起多用户 的 , 的测试方案。 功能提供一个互动的环境, 的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其 中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。 中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。 而且, 而且,您可以利用它的日程计划服务来定义用户在什么时候访问 系统以产生负载。这样,您就能将测试过程自动化。 系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用 Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一 来限定您的负载方案, 个动作---如登陆到一个库存应用程序 来模拟峰值负载的情况。另外, 如登陆到一个库存应用程序----来模拟峰值负载的情况 个动作 如登陆到一个库存应用程序 来模拟峰值负载的情况。另外, 您还能监测系统架构中各个组件的性能---- 包括服务器,数据库, 您还能监测系统架构中各个组件的性能 包括服务器,数据库,网络 设备等----来帮助客户决定系统的配置 来帮助客户决定系统的配置。 设备等 来帮助客户决定系统的配置。
Байду номын сангаас
缺陷管理工具Mantis的安装步骤: 的安装步骤: 缺陷管理工具 的安装步骤 1. 下载 EasyPHP; ; 2. 下载 Mantis; ; 3. 安装 EasyPHP; ; 4. 在 EasyPHP 的安装目录下找到 phpMyAdmin 目录,并 目录, copy 到 EasyPHP 目录下的 WWW 目录中; 目录中; 5. 解压缩 Mnatis 并 copy 到EasyPHP 目录下的 WWW 目录 中; 6. 重启 EasyPHP; ; 7. 打开浏览器,在地址栏输入 http://localhost/ 或 打开浏览器, http://127.0.0.1/ ,点击 Mantis 。
软件测试实验报告一
广东*融学院实验报告
课程名称:软件测试
实验编号
实验一黑盒测试方法实验系别
及实验名称
姓名学号班级
实验地点实验日期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测试⼀、实验⽬的掌握⽤例执⾏及缺陷报告的书写⽅法。
软件工程实验(四个实验)
武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程1504姓名:赵佳璐学号:1508100065实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。
2.实验内容:假设你在一所职业高中工作,负责该校信息系统的建设和维护。
财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。
3.实验要求:1.问题定义:请在这个阶段描述你需要解决的问题。
包括用户面临的问题和预期的项目规模。
最后生成一份问题定义报告书。
2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。
3.对此系统进行成本效益分析。
4.实验步骤:4.1问题定义报告书1.项目名称:工资支付2.问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。
3.项目目标:1)研究开发费用较低的新工资支付系统的可能性。
4项目规模:1)开发成本应该不超过7.2万元5.初步设想:1)用学校自己的计算机系统生成工资明细表和财务报表6.可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。
这个研究的成本不超过4000元。
4.2可行性研究:1.处理工资事务的大致过程:1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。
2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。
然后,把记有每名教职工工资总额的工资表报送银行。
3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。
2高层逻辑模型:3.数据流图:4.数据字典:1)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。
软件测试实验报告一
软件测试实验报告⼀《软件测试与质量管理》实验报告学号::机器号:程序名:实验容:(⼀)⽩盒测试⼀、⽬的和要求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.实验目的:理解黑盒测试的基本方法, 掌握等价类划分法和边界值方法设计测试用例。
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.对测试用例进行边界值分析:各变量分别取: 最小值、略大于最小值、正常值、略小于最大值、最大值。
软件测试报告黑盒测试
软件测试实验报告实验一:人民币数字大写转换1引言1.1系统概述本软件的用途是实现人民币数字大写转化。
如¥6007.14,应写成:人民币陆仟零柒元壹角肆分。
1.2文档概述本文档将给出测试设计、测试用例、测试结果及其对该软件的评价。
1.3测试环境与配置操作系统:windows 7 旗舰版CPU: Intel(R) Core(TM)2 Duo CPU T6500IDE:(Integrated Development Environment) Myeclipse内存:2G1.4测试方法手工利用黑盒测试中的等价类划分法进行测试,主要测试目标为检验函数是否符合题目所给要求。
即:输入是否符合规定条件,及程序的鲁棒性。
2测试用例的设计2.1等价类划分1)有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类与有效等价类的定义恰巧相反。
无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时要同时考虑这两种等价类。
因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
针对本次测试,等价类可划分如下:表2-1人民币数字大写转化等价类表有效等价类测试用例设计:(尽可能多的覆盖有效等价类)表2-2 有效等价类测试用例无效等价类测试用例设计:(仅覆盖一个无效等价类)表2-2 无效等价类测试用例2.2边界值分析法测试用例边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
边界值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。
实践证明,为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。
边界值分析法不仅重视输入条件边界,而且也适用于输出域测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古工业大学信息工程学院实验报告
课程名称:软件测试
实验名称:“爱米云网盘”黑盒测试设计用例
实验类型:验证性■综合性□设计性□
实验室名称:软件实验室
班级:软件12-2 学号:************
姓名:张贺组别:
同组人:成绩:
实验日期: 2015年6月14日
实验报告成绩:指导教师审核(签名):年月日
实验报告
一.实验目的
①理解黑盒测试的概念。
②理解测试用例的重要性。
③掌握黑盒测试技术设计测试用例的方法。
二.实验环境
Windows7操作系统爱米云服务器爱米云客户端
三.实验内容
应用黑盒测试技术,对“爱米云网盘客户端”登录功能进行测试用例设计。
四.实验要求
①根据《软件需求规格说明书》了解登录功能的测试需求。
②重点针对账号、密码和登录流程进行测试用例设计。
③应用黑盒测试技术进行测试用例设计,写出等价类表、边界值分析结果、用例场
景图等测试设计文档。
五.实验步骤
1、通读“爱米云网盘”的《软件需求规格说明书》,重点阅读登录功能的需求。
登陆时,用户名由3~20个字母、数字或“_”组成,密码由6~16个字符组成,不能是8位以下纯数字。
登陆时,可以设置为“保存密码”或“自动登陆”。
登陆成功的账号记录在账号输入框和下拉列表中,下拉列表最多记录5个账号。
下拉列表中可以删除历史账号。
登陆成功后可从主窗口菜单中,进行切换账号和修改密码。
2、针对登录功能,应用适当的黑盒测试技术的等价类划分法、边界值分析法、场景法等测试方法,进行测试用例设计,列出每个测试子项对应的等价类表、边界值、用例场景图等。
账号和密码等价类划分法
测试点用户名由3~20个字母、数字或“_”组成,密码由6~16个字符组成,不能是8位以下纯数字
输入变量有效等价类编号无效等价类编号
账号长度[3,20] 1 账号长度<3 3
账号长度>20 4
账号格式字母、数字或“_” 2 非字母、数字或“_” 5 输入变量有效等价类编号无效等价类编号
密码[6,16] & 字符 6
密码长度<6 8
密码长度>16 9
含中文等10 [8,16] & 纯数字7
密码长度<8 & 纯数
字
11
下拉列表等价类划分法
账号和密码边界值分析法
输入条件账号长度密码长度
边界值
2 5
3 6
4 7 13 11
19 15
20 16
21 17
场景图分析法
判定表分析法
用户名不符合 密码不符合
合并后的判定表
“爱米云网盘客户端”登录功能判定表
1 2 4 5 7 8 条件
用户名
A1 A1 A2 A2 A3 A3 密码 - -
-
-
-
-
动作 用户名不符合
密码不符合
登录成功 登录不成功
因果图分析法
因果图原因结果分析
C1:用户名由3<=长度<=20、字母、数字或"_"组成 A1:登录成功 C2:6<=长度<=16、字符组成,[8,16]纯数字 A2:密码有误 C3:输入有误用户名 A3:用户名错误 C4:输入有误密码 A4:登录不成功
规则
桩
根据因果图导出的判定表
3、根据步骤2的分析结果,写出测试用例原型。
等价类测试用例
用例编号覆盖等价类数据输入预期输出
TC1 1、2、6 账号:zhangsan 密码:
123456zh 登陆成功
TC2 1、2、7 账号:zhangsan123 密码:123456789 登陆成功
TC3 3、6 账号:zh 密码:123456zh 账号不符合
TC4 4、6 账号:
zhangsanlisiwangwu_1234 密
码:123456zh 账号不符合
TC5 1、5、6 账号:123***sdw$ 密码:
zhanghe 账号不符合
TC6 1、2、8 账号:zhanghe123 密码:123 密码不符合
边界值测试用例
场景法测试用例
六.实验体会
这次的实验给我的第一个直观的感受就是实验量比较大,做起来相对的比较费时费事。
需要掌握的东西和需要理解的知识都比较多。
不过通过这次的实验,对我所学的知识有了很好的巩固,加深了对知识的理解。
对这门课程也有了比较更好的认识,软件测试这门课程就是重复巩固知识的过程,对以后的学习也有了一定的帮助。