软件测试——实验1

合集下载

软件测试实验一

软件测试实验一

内蒙古工业大学信息工程学院实验报告课程名称:软件测试实验名称:“爱米云网盘”黑盒测试设计用例实验类型:验证性■综合性□设计性□实验室名称:软件实验室班级:软件 12-2 学号:201220205051姓名:张贺组别:同组人:成绩:实验日期:2015 年6月14日精选文库实验报告成绩:指导教师审核(签名):年月日实验报告一.实验目的① 理解黑盒测试的概念。

② 理解测试用例的重要性。

③ 掌握黑盒测试技术设计测试用例的方法。

二.实验环境Windows7操作系统爱米云服务器爱米云客户端三.实验内容应用黑盒测试技术,对“爱米云网盘客户端”登录功能进行测试用例设计。

四.实验要求① 根据《软件需求规格说明书》了解登录功能的测试需求。

② 重点针对账号、密码和登录流程进行测试用例设计。

③ 应用黑盒测试技术进行测试用例设计,写出等价类表、边界值分析结果、用例场景图等测试设计文档。

五.实验步骤1、通读“爱米云网盘”的《软件需求规格说明书》,重点阅读登录功能的需求。

登陆时,用户名由 3~20个字母、数字或“ _”组成,密码由 6~16个字符组成,不能是 8位以下纯数字。

登陆时,可以设置为“保存密码”或“自动登陆”。

登陆成功的账号记录在账号输入框和下拉列表中,下拉列表最多记录 5个账号。

下拉列表中可以删除历史账号。

登陆成功后可从主窗口菜单中,进行切换账号和修改密码。

2、针对登录功能,应用适当的黑盒测试技术的等价类划分法、边界值分析法、场景法等测试方法,进行测试用例设计,列出每个测试子项对应的等价类表、边界值、用例场景图等。

精选文库账号和密码等价类划分法测试点用户名由 3~20 个字母、数字或“ _”组成,密码由 6~16 个字符组成,不能是 8 位以下纯数字输入变量账号长度账号格式输入变量密码有效等价类编号[3,20] 1字母、数字或“_” 2有效等价类编号[6,16] & 字符 6[8,16] & 纯数字7无效等价类编号账号长度 <3 3账号长度 >20 4非字母、数字或“ _” 5无效等价类编号密码长度 <6 8密码长度 >16 9含中文等10密码长度 <8 & 纯数字11下拉列表等价类划分法账号和密码边界值分析法输入条件账号长度密码长度2 53 64 7边界值13 1119 1520 1621 17精选文库场景图分析法登陆页面备选流 1输入账号账号长度 <3 || 账号长度 >20 输入密码备选流 2 备选流 3 备选流 4|| 账号含有非字母、数字或“ _”密码长度 <6 || 密密码长度 <=8 && 6<=密码长度码长度 >16 数字<=16 && 中文等系统验证账号、密码基本流用户名错误,登陆失败密码错误,登陆失败登陆成功用例场景表场景 1:基本流场景 2:基本流、备选流 1场景 3:基本流、备选流 2场景 4:基本流、备选流 3场景 5:基本流、备选流 4判定表分析法用户名: 3<=长度 <=20 记为 A1, 长度 <3|| 长度 >20记为 A2,特殊字符记为 A3条件桩密码:6<=长度 <=16B1,[8,16] 纯数字 B2,6>长度 ||长度 >16B3,含中文 B4,不为字符 B5,特定区间不为纯数字 B6登录成功动作桩登录不成功合并后的判定表规则桩用户名条件密码用户名不符合动作密码不符合登录成功登录不成功精选文库密码不符合“爱米云网盘客户端”登录功能判定表1 2 4 5 7 8A1 A1 A2 A2 A3 A3 - - - - - -因果图分析法因果图原因结果分析C1:用户名由 3<=长度 <=20、字母、数字或 "_" 组成A1:登录成功C2:6<=长度 <=16、字符组成, [8,16] 纯数字A2:密码有误C3:输入有误用户名A3:用户名错误C4:输入有误密码A4:登录不成功精选文库根据因果图导出的判定表3、根据步骤 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

软件测试实验1

实验1 黑盒测试一、实验目的与要求1、掌握等价类测试方法的原理、步骤及应用2、掌握边界值分析法的原理、步骤及应用。

3、掌握决策表测试方法的原理、步骤及应用。

二、实验设备1、电脑PC2、office办公软件三、实验原理(一)等价类测试法1、定义:等价类划分法是根据程序规格说明书对输入范围进行划分,将所有可能的输入数据按相关的规定划分成若干不相交的子集。

所有的子集的并集是整个输入域,其中,子集的互不相交保证子集中无冗余性,子集的并集是整个输入域,确定了所有子集的完备性。

在划分等价类时分有效等价类和无效等价类。

2、划分等价类的步骤(1)确定输入域:分析需求并确定所有的输入、输出量,以及变量类型和变量使用条件。

(2)等价类划分:将每个变量的取值集合划分为互不相交的子集,每个子集对应一个等价类,所有的等价类就构成了对输入域的一个划分。

(3)组合等价类:使用多元化方法,可以将等价类组合起来。

(4)确定不可测的等价类:有些输入数据组合在实际测试过程中是无法生成的,包括这种数据的等价类就是不可测试等价类。

不可测试数据是指无法输入到被测软件中的那些数据组合。

3、等价类的测试步骤(1)划分等价类,形成等价类表。

(2)为每个等价类规定一个唯一的编号。

(3)设计一个新的测试用例,使其尽量多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。

(4)设计一个新的测试用例,使其覆盖一个而且只覆盖一个无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。

(二)边界值分析法1、定义:边界值分析法主要从数据的定义域的边界数据进行分析,对于合法的与不合法的边界数据进行选取和测试。

用来检查用户输入的信息、返回的结果以及中间计算结果是否正确。

2、边界值的获取对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max),对每一个变量都重复进行。

软件测试实验一

软件测试实验一
Object []objects= {object};
doubleLinkedList.toArray(objects);
DoubleLinkedListdoubleLinkedList3=newDoubleLinkedList();
Object []objects1= {object,object,object,object,object,object,object};
collection.add("1");
collection.add("2");
collection.add("3");
DoubleLinkedListdoubleLinkedList=newDoubleLinkedList(collection);
//
//assertEquals(true, actual);
}
}
@Test
publicvoidequals()
{
Year year1=newYear(11);
Month month2=newMonth(10,year1);
Month month3=newMonth(11,year1);
Day day=newDay(3,month2);
Day day1=newDay(4,month2);
month2.setCurrentPos(13);
Day day=newDay(2,month2);
}catch(Exception o)
{
assertEquals(oinstanceofIllegalArgumentException,true);
}
}
@Test
publicvoidisValid3()

软件测试实验一

软件测试实验一

软件测试实验报告--实验一
班级:软件1603 学号:201616040305 姓名:赵亮
指导老师:王雪涛
一、实验题目
软件测试实验环境搭建
二、实验内容
●搭建开发环境
●导入目标源码
●成功编译并运行
三、实验步骤
1.下载安装jdk和netbean
2.安装mysql数据库和客户端navicat(机器已安装)登陆并参考createtables.sql添加数据库机房mysql的密码:111111 确保root@localhost在schadmin上有所有权限
3.导入工程文件
1解压myapp到一个非中文路径,如解压到D:\myapp\.
2运行netbean.
3导入程序myapp, "新建工程"->javaWeb,基于已有源代码,然后下一步选择服务器,选择Glassfish v3+,点击“下一步”,然后点击安装位置后的“浏览”按钮,选择“c:\Program Files\glassfish-3.1.2.2”,点击下一步,点击完成。

4修改数据库连接配置.
连接请修改;web/WEB-INF/classes/config.properties
tc.util.config_en.properties
4. 编译运行并通过浏览器访问,用户名:admin 密码:pass111登陆,实验各项功能使得均能正常使用
四、实验结果
五、实验的心得体会
以前就挺喜欢接触这类知识,感觉挺好玩,前期确实有很多地方就卡死了,经过讨论询问顺利解决。

软件工程实验1-软件测试

软件工程实验1-软件测试

软件工程实验1-软件测试软件工程实验 1 软件测试在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。

从智能手机上的各种应用程序,到企业内部复杂的业务系统,软件的质量和稳定性直接影响着用户的体验和业务的顺利进行。

而软件测试作为确保软件质量的关键环节,其重要性不言而喻。

在本次软件工程实验 1 中,我们深入探讨了软件测试的相关知识和实践。

软件测试,简单来说,就是对开发完成的软件进行检查和验证,以发现其中可能存在的缺陷和问题。

它并不仅仅是在软件完成后进行的一项工作,而是贯穿于整个软件开发的生命周期。

从需求分析阶段开始,测试人员就需要参与其中,对需求的可测试性进行评估,并制定相应的测试策略。

在软件测试中,有多种不同的测试类型。

其中,最常见的包括功能测试、性能测试、兼容性测试、安全测试等。

功能测试是软件测试的基础,它主要检查软件的各项功能是否能够按照预期正常工作。

测试人员会根据软件的需求规格说明书,设计一系列的测试用例,对软件的各种功能进行逐一验证。

比如,对于一个在线购物网站,功能测试会包括用户注册登录、商品浏览、下单购买、支付结算等功能的测试。

性能测试则关注软件在不同负载条件下的响应时间、吞吐量、资源利用率等性能指标。

通过性能测试,可以发现软件在处理大量数据或高并发请求时是否存在性能瓶颈,从而提前进行优化和改进。

例如,对于一个电商平台,在双十一等购物高峰期,能否承受巨大的访问量,保证系统的稳定运行,就是性能测试需要关注的重点。

兼容性测试主要考虑软件在不同的操作系统、浏览器、硬件设备等环境下的兼容性。

由于用户使用的设备和环境千差万别,如果软件不能在各种常见的环境下正常运行,就会给用户带来极大的不便。

比如,一款手机应用程序需要在不同品牌和型号的手机上,以及不同版本的操作系统上都能正常安装和使用。

安全测试则是为了发现软件中可能存在的安全漏洞,如数据泄露、权限控制不当、SQL 注入等。

随着网络安全威胁日益严峻,安全测试已经成为软件测试中不可或缺的一部分。

软件测试技术实验1

软件测试技术实验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]的。

软件测试实验(设计测试用例)

软件测试实验(设计测试用例)
}
步骤二:编译驱动程序,运行通过;
步骤三:根据实验给出路径,设计测试用例;
步骤四:运行程序,检验测试用例;
步骤五:比较实际输出结果和预期输出结果,得出测试结论;
步骤六:根据上述实验及结果,给出测试用例文档说明。
实验结果
1)对于(1)分支覆盖,共设计两个测试用例如下:
分支覆盖测试用例1-1:
实际输出结果,如图1-1:
int cout[11]={0,0,0,0,0,0,0,0,0,0,0};
cout[n++]=1;
int k=0,j=0;//2
cout[n++]=2;
cout[n++]=3;
if((X>3)&&(Z<10))//3
{//4
//cout[n++]=4;
k=X*Y-1;//5
cout[n++]=5;
j=sqrt(k);//6
图1-1
说明:Test1在分支1→2→3→8→10→11运行正确。
分支覆盖测试用例1-2:
实际输出结果,如图1-2:
图1-2
说明:Test1在分支1→2→3→5→6→8→9→10→11运行正确。
2)对于(2)路径覆盖,共设计四个测试用例如下:
路径覆盖测试用例2-1:
实际输出结果,如图2-1:
图2-1
int m=0;
while(cout[m]!=0)
{
printf("%d→",cout[m++]);
}
printf("11\n");
}//11
void main()

《软件测试技术》 实验一 实验报告

《软件测试技术》 实验一 实验报告

《软件测试技术》实验报告实验一单元测试专业:班级:学号:姓名:完成时间: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角硬币,并按下【橙汁】或【可口可乐】按钮,则相应饮料送出来。

软件测试实验

软件测试实验

实验一单元测试及JUnit的应用实验目的1、掌握单元测试的基本理论和作用。

2 、掌握典型单元测试工具JUnit 的使用。

一、实验内容完成两个测试任务(即“实验任务1”和“实验任务2 ”),并在有时间的情况下,阅读后面关于单元测试和JUnit 高级特性的内容,进一步了解单元测试的理论和JUnit 测试的应用。

测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit 是一个非常强大的单元测试包,可以对一个或多个类的单个或多个方法测试,还可将不同的TestCase 组合成TestSuit,使测试任务自动化。

Eclipse 集成了JUnit ,可以非常方便地编写TestCase 。

我们先来进行一个基本的测试实验。

实验任务1:请按以下说明完成一个基本的JUnit4 测试实例。

首先打开Eclipse helios 版本或其它版本,创建一个Java 项目,并在其中创建一个由File 类构成的程序File.java ,给该类添加一个abs 方法,作用是返回一个给定整数参数的绝对值。

其参考代码如下:public class File {public static void main(String[] args) {// TODO Auto-generated method stub}public int abs(int n){if (n>=0)return n;elsereturn (-n);}}实验任务2 :根据下面的说明,建立一个基于JUnit4 的测试项目,对一个类当中的多个方法进行单元测试,进一步体验一下单元测试的作用和JUnit 测试的应用。

首先新建一个项目叫JUnitTest ,我们编写一个Calculator 类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。

这个类并不是很完美,我们故意保留了一些Bug 用于演示,这些Bug 在注释中都有说明。

软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序

软件测试实验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。

软件测试实验报告一

软件测试实验报告一

广西科技大学实验报告专业:软件工程班级:软件132 学生姓名:李广贵学号:201300406067 指导老师:李威龙一,实验目的(1)掌握白盒测试技术,并能应用白盒测试技术设计测试用例(2)能用Junit实施测试二,实验内容(1)用白盒测试的基路径测试法测试一段代码(2)编写一个java类,并用Junit测试编写的java类三,实验过程(一)白盒测试1,用基路径测试法测试下面代码:public class Mysort {int result;public void sort(int iRecordNum,int iType){int x=0;int y=0;while(iRecordNum>0){if(iType==0){x=y+2;}else{if(iType==1){x=y+5;}else{x=y+10;}}iRecordNum--;result=x;}}public int getResult(){return result;}}2,控制流图程序的控制流图如图1所示:图13,计算圈复杂度流图中区域的数量对应于圈复杂度,,从图中可以直观的看出,其区域数为。

因此其圈复杂度为44,寻找独立路径1 path1:1-2-3-4-5-10-3-112 path2:1-2-3-4-6-7-9-10-3-113 path3:1-2-3-4-6-8-9-10-3-114 path4:1-2-3-115,导出测试用例为了确保基本路径集中的每一条路径的执行,根据判断节点给出的条件,选择适当的数据以保证某一条路径可以倍测到。

(二)Junit测试(1)编写一个java类,用Junit测试结果正误public class Caculator {private int result; //静态变量,用于存储运行结果public void add(int n){result=result+n;}public void substract(int n){result=result-1;//Bug:正确的应该是result=result-n;}public void multiply(int n){//此方法尚未写好}public void divide(int n){result=result/n;}public void square(int n) {result=n*n;}public void squareRoot(int n) {for(;;); //Bug:死循环}public void clear(){result=0; //将结果清零}public int getResult(){return result;}}(2)生成JUnit测试框架完整代码如下:import static org.junit.Assert.*;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.Ignore;public class CaculatorTest {Caculator calculator=new Caculator();@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void testAdd() {calculator.add(1);calculator.add(3);assertEquals(4, calculator.getResult()); }@Testpublic void testSubstract() {calculator.add(5);calculator.add(3);assertEquals(2, calculator.getResult()); }@Ignore("Multiply() Not yet implemented") public void testMultiply() {fail("尚未实现");}@Testpublic void testDivide() {fail("尚未实现");}}四,实验结果及分析:1,白盒测试:(1)测试用例如下:用例编号路径输入数据预期输出1 Path1:1-2-3-4-5-10-3-11 iRecording=1,iType=0 X=22 path2:1-2-3-4-6-7-9-10-3-11 iRecording=1,iType=1 X=5X=103 path3:1-2-3-4-6-8-9-10-3-11 iRecordNum=1,iType=34 path4:1-2-3-11 iRecordNum=1 X=0(2)结果分析:设计四个测试用例分别覆盖四条路径,并给出预期结果。

软件测试实验一

软件测试实验一
页面格式为做更改、
页面格式为做更改、
文件/打印
1006
1.打开记事本程序,不作任何输入,单击“文件”|“打印”命令,点击“打印”命令
打印机打出一页空白文档
打印机打出一页空白文档
2.打开.txt文件,选择“页面范围”|“全部”,点击“打印”命令。
文档全部页面均被打印
文档全部页面均被打印
3.打开记事本程序,不作任输入,单击“文件”|“打印”命令,点击“取消”命令
记事本做修改未保存或者另存,单击“文件”|“退出”命令,会提示“未定标题文件的文字已经改变,想保存文件吗?”单击“是”,Windows将打开“保存”/“另存为”对话框,单击“否”,文件将不被保存并退出记事本程序,单击“取消”将返回记事本窗口
3.打开记事本程序,输入一些字符,保存文件,单击“文件”|“退出”命令
软件测试与质量课程实验报告
实验1:软件质量保证和软件确认过程
姓名
院系
软件学院
学号
任课教师
实验指导教师
实验地0
实验目的
了解软件测试的概念
了解软件确认的过程
实验内容
本次实验完成如下内容:
(1)Windows记事本程序测试
测试项——文件菜单栏的测试
测试对象——记事本程序文件菜单栏
1010
不能输入
不能输入
非法符号
1011
1

不能输入
不能输入
超出计算范围
1012
2
+
99…9(32位)
不能输入
不能输入
3
+
-99…9(32位)
不能输入
不能输入
非法输入
1013
1

软件测试实验

软件测试实验

创建真实的负载 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 。

软件测试实验报告

软件测试实验报告

桂林航天工业学院课程设计报告课程名称:软件测试专业:软件技术学号:*********xxx 姓名:指导教师:实验一黑盒测试一.实验目的(1)能熟练应用黑盒测试技术进行测试用例设计;(2)对测试用例进行优化设计;二.实验内容1.三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。

在此,我们将三角形每边边长的取范围值设值为[1, 100] 。

在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。

利用这些信息能够确定下列输出(值域)等价类。

R1 = { <a,b,c>: 边为a,b,c的等边三角形}R2 = { <a,b,c>: 边为a,b,c的等腰三角形}R3 = { <a,b,c>: 边为a,b,c的一般三角形}R4 = { <a,b,c>: 边为a,b,c不能组成三角形}2. 找零钱最佳组合假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。

假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。

请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。

三、程序代码1.三角形问题程序。

#include<stdio.h>int main(void){int a,b,c;//定义三个整数a,b,cprintf("请输入1到100的三个整数:");scanf("%d%d%d",&a,&b,&c);if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(b>=1&&b<=100))//判断取值范围{if((a+b>c)&&(a+c>b)&&(b+c>a))//判断是否构成三角形{if(a==b&&b==c)printf("等边三角形\n");else if(a==b||a==c||b==c)printf("等腰三角形\n");elseprintf("一般三角形\n");}elseprintf("不能组成三角形\n");}elseprintf("输入1到100的三个整数!\n");return 0;}2.找零钱最佳组合问题程序。

软件测试技术实验报告01

软件测试技术实验报告01
《软件测试技术》实验报告
实验序号:1实验项目名称:软件工程相关工具
学号
姓名
专业、班
实验地点
指导教师
实验时间
一、实验目的及要求
理解软件工程的基本概念,熟悉软件、软件生存周期和软件工程基本原理。
理解软件工程环境和工具,熟悉软件工程环境组成和软件工具分类等。
通过Internet了解软件工程技术网站和主流的软件工程(软件测试)工具等。
软件开发权过程
调试工具
交互式调试系统
实现、测试、有效性验证
再工程工具
交叉索引系统、程序重构系统
实现
程序分析工具
交叉索引生成器、静态/动态分析器
实现、测试、有效性验证
(二)软件企业使用软件测试工具调查(表2)
表2软件企业使用软件测试工具调查
公司名称
使用的工具
使用的环境
公司规模
北京赛优科技有限公司
MDAC2.8SP1 Ghost8.3
WinRunner能够提高测试人员的工作效率和质量;LoadRunner能对整个企业架构进行测试。缩短测试时间,优化性能和加速应用系统的发布周期。
实现、测试、有效性验证
维护工具
Concurrent Version System
主要用于在多人开发环境下的源码的维护,实际上CVS可以维护任意文档的开发和使用.
二、实验要求
上网了解查询软件工程网站和相关软件工程知识。
了解软件工程环境概念、层次、组成和开发要求。
查询现有主流的软件工程工具及其功能、用途、特点及其适用范围。
浏览软件相关工具。通过互联网了解现有软件工程主流工具,完成表1内容。
软件企业调查。通过各种方式了解企业使用哪些软件测试工具以及使用环境,完成表2的内容(至少3家企业)。

软件测试实验报告

软件测试实验报告

《软件测试技术》实验报告与习题册2014 / 2015 学年第2学期系别计算机学院专业班级一班姓名指导教师目录实验一:基于白盒测试的用例设计与验证(一)一.实验目的(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)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。

三.程序流程图m > 0 AND n < 6m = n + 3n = n * 2p > 5 OR q < 0p = 2 * q + 5q ++打印m 、n 、p 、q结束开始TTFF运行结果 测试用例取值条件 具体取值条件 m=1,n=2,p=6,q=-1 T1,T2,T3,T4 m>0,n<6,p>5,q<0 m=2,n=3,p=4,q=1 T1,T2,F3,F4 m>0,n<6,p<5,q>0 m=-1,n=7,p=7,q=-2 F1,F2,T3,T4 m<0,n>6,p>5,q<0 m=-2,n=4,p=3,q=3F1,F2,F3,F4 m<0,n<6,p<5,q>0测试用例具体取值条件判定条件输入:{m=3,n=2,p=9,q=-3} 输出:{m=5,n=4,p=-1,q=-2} m>0,n<6,p>5,q<0 m>0 and n<6p>5 or q<0输入:{m=-4,n=10,p=2,q=4} 输出:{ m=-4,n=10,p=2,q=4} m<0,n>6,p<5,q>0 m<0 and n>6p<5 or q>0测试用例取值条件具体取值条件T1,F2,T3,F4 m>0,n>6,p>5,q>0 输入:{m=1,n=7,p=6,q=2}输出:{ m=1,n=7,p=9,q=3}输入:{m=-3,n=4,p=1,q=-1}F1,T2,F3,T4 m<0,n<6,p<5,q<0 输出:{ m=-3,n=4,p=3,q=0}测试用例取值条件具体取值条件T1,T2,T3,T4 m>0,n<6,p>5,q<0 输入:{m=1,n=2,p=6,q=-1}输出:{ m=5,n=4,p=3,q=0}输入:{m=-1,n=9,p=4,q=2}F1,F2,F3,F4 m<0,n>6,p<5,q>0 输出:{ m=-1,n=9,p=4,q=2}测试用例覆盖条件具体取值条件T1,T2,T3,T4 m>0,n<6,p>5,q<0 输入:{m=1,n=2,p=6,q=-1}输出:{ m=5,n=4,p=3,q=0}T1,F2,T3,F4 m>0,n>6,p>5,q>0 输入:{m=1,n=7,p=6,q=1}输出:{ m=1,n=7,p=7,q=2}输入:{m=-1,n=2,p=3,q=-1}F1,T2,F3,T4 m<0,n<6,p<5,q<0 输出:{ m=-1,n=2,p=3,q=0}F1,F2,F3,F4 m<0,n>6,p<5,q>0 输入:{m=-1,n=7,p=3,q=1}输出:{ m=-1,n=7,p=3,q=0}四.实验内容中遇到的问题、解决方法和体会。

软件测试实验报告(例)

软件测试实验报告(例)

2022 年10 月14 日实验一白盒测试方法实验楼 2022.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 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每一个测试用例的执行路径(用题中给出的语句编号表示)。

三、笔记本电脑控制流图:d e f 3456Sa1b cghi87kjlE附:程序代码#include<stdio.h> #include<math.h> 9 2int 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);}设判定条件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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院(计算机工程学院)课内实验报告实验名称:黑盒测试
专业名称:软件工程
班级: Z软件161 姓名:陈真杰
学号: 39
指导教师:陈艳艳
实验日期: 2019年3月13
一、实验目的与环境
1.实验目的:
(1)理解黑盒测试的含义以及基本的测试方法。

(2)采用等价类划分法设计测试用例。

(3)掌握用等价类划分法设计测试用例的方法。

(4)掌握用因果图设计测试用例的方法。

(5)掌握用边界值分析法设计测试用例的方法。

2.实验环境:C语言、Java语言、Python语言等。

二、实验内容
1.三角形问题:输入3个整数a、b、c,分别作为三角形的3条边,通过程序判断由
3条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形或者3条边不构成三角形。

2.现有一个学生标准化考试批阅试卷、产生成绩报告的程序。

其规格说明为:程序的
输入文件有80个字符的记录组成,分为试题部分和学生答卷部分,具体内容如图所示。

试题部分包括如下内容:
(1)标题。

这一组只有一个记录,其内容为输出成绩报告的名字。

(2)标准答案。

每个记录在第80个字符处标以数字2。

第一个记录的第1~3个字符为“试题数”,用于标示题目编号;第10~59个字符给出第1~50题的答案,以此类推。

学生答卷部分包括内容:每个记录的第80个字符均为数字3。

第1~9个字符给出学号,第10~59字符给出第1至第50题的答案,以此类推。

程序的输出有4个报告:
(1)按学号排列的成绩单,列出每个学生的成绩、名次。

(2)按学生成绩排序的成绩单。

(3)平均分数及标准偏差的报告。

(4)试题分析报告。

按试题号排序,列出各题学生答对的百分比。

3.售货机软件若投入元硬币,按“可乐”“雪碧”或“红茶”按钮,送出相应的饮料;
若投入的是2元硬币,在送出饮料的同时退还5角硬币。

请用因果图设计测试用例。

三、方案设计
1.等价类划分
输入3条边a、b、c必须满足以下条件:
条件1 1≤a≤100 条件4 a<b+c
条件2 1≤b≤100 条件5 b<a+c
条件3 1≤c≤100 条件6 c<a+b
如果输入值a、b、c满足条件1、条件2和条件3,则输出下列4种情况之一:
(1)如果不同时满足条件4、条件5和条件6.则程序输出为“不构成三角形”。

(2)如果3条边相等,则程序输出为“等边三角形”。

(3)如果恰好有两条边相等则程序输出为“等腰三角形”。

(4)如果3条边都不相等则程序输出为“一般三角形”。

2.边界值分析法
输入条件和输出条件详见测试用例设计部分。

3.因果图
执行以下操作:
投入硬币。

按按钮。

如果执行了以上两个操作中的一个或两个,则会出现以下3种情况之一:
(1)给出提示信息
(2)送出商品
(3)找零并送出商品
四、测试数据及运行结果
1.等价类划分
等价类划分如表1所示。

表 1等价类划分表
根据等价类划分设计测试用例,如表2所示。

表 2等价类测试用例
用例(a,b,c) 覆盖等价类预期输出实际输出Test1 (4,5,6) (1)~(6) 一般三角形null
Test2 (0,1,2) (7)
不构成三角形不构成三角形
Test3 (2,0,3) (8) 不构成三角形
Test4 (0,3,4) (9) 不构成三角形
Test5 (2,3,6) (10) 一般三角形
Test6 (6,2,3) (11) 一般三角形
Test7 (2,3,6) (12) 一般三角形
Test8 (4,4,5) (1)~(6),(13) 等腰三角形等腰三角形
Test9 (6,5,5) (1)~(6),(14) 等腰三角形等腰三角形
Test10 (6,7,6) (1)~(6),(15) 等腰三角形等腰三角形
Test11 (3,4,5) (1)~(6),(16) 一般三角形一般三角形
Test12 (4,4,4) (1)~(6),(17) 等边三角形等边三角形
Test13 (4,5,4) (1)~(6),(18) 等边三角形等腰三角形
Test14 (5,5,4) (1)~(6),(19) 等边三角形等腰三角形
Test15 (4,5,5) (1)~(6),(20) 等边三角形等腰三角形测试结果如图1所示。

图 2测试用例测试结果
2.边界值分析法
表为输入条件及相应的测试用例。

输入条件测试用例
输入文件空输入文件
标题没有标题
标题只有一个字符
输出条件及相应的测试用例如表所示。

3.因果图
步骤1:原因和结果分析。

原因(输入):
(1)投入元硬币。

(2)投入2元硬币。

(3)按“可乐”按钮。

(4)按“雪碧”按钮。

(5)按“红茶”按钮。

中间状态:
(11)已投币。

(12)已按钮。

结果(输出):
(21)退还5角硬币。

(22)送出可乐。

(23)送出雪碧。

(24)送出红茶。

步骤2:画出因果图,如图所示。

图 1因果图
步骤3:设计决策表。

根据因果图设计决策表,如表所示,这里只有11个,而不是2=32个,这是因为图中有很多限制条件导致某些情况不可能出现。

表决策表
步骤4:设计测试用例。

根据决策表设计测试用例,如表所示。

并执行了相关测试,得到的结果如表所示。

五、总结
通过本次软件测试我学到了很多东西,也有了很多的体会,使我想到有一句话说的是“从已知现象解决未知问题!”这句话很好的概括了黑盒测试。

我对黑盒测试的理解是:站在用户的角度去思考使用程序的所有情况,完全摒弃代码部分的逻辑结构。

这样测试,通过结果去推断出现问题的原因,这个过程是程序员对自己代码的重新梳理,还可以对代码的逻辑结构进行优化。

是一个很好的测试方法,但这只是黑盒测试中的一个小部分,我还会继续学习其它的黑盒测试方法,并去思考和总结的。

六、附录:源代码
import class Triangle_test {
public static void main(String[] args)
{
Scanner ss=new Scanner;
float a=1,b=1,c=1;
while(a!=1000||b!=1000||c!=1000)
{
"请输入三角形的三边a,b,c的值:");
a=();
b=();
c=();
}
}
public static String test(float x,float y,float z)
{
String k=null;
if(x>0 && x<101 && y>0 && y<101 && z>0 && z<101)
{
if(x+y>z && x+z>y && y+z>x)
{
if(x==y && y==z)
{
k="是等边三角形";
}
else if(x==y || x==z || y==z) //调整并列关系
{
k="是等腰三角形";
}
else{
k="是一般三角形"; //调整并列关系
}
}else{
k="不构成三角形"; //添加补充条件
}
}
else{
k="不构成三角形";
}
return k;
}
}。

相关文档
最新文档