软件测试实验1
软件测试技术实验报告

实验一黑盒测试
一、实验目的及要求
实验目的:
1、能熟练应用功能性测试技术进行测试用例设计;
2、对测试用例进行优化设计;
实验原理:
测试“日期推算”程序
该程序的功能是输入一个日期,输出该日期后两天的日期,例如输入2014年1月1日,则输出2014年1月3日。
现在假设“日期推算”程序已经被开发出来了,请对该程序进行功能测试,要求用尽可能少的测试用例检测出尽可能多的软件缺陷。
二、实验环境
一台装有windows操作系统的计算机,vc++6.0
三、实验内容
为了方便,我们不考虑闰年的问题,默认为2月都是28天,假设限定输入数据均为整数,日期中年份的有效值范围为1000~9999。
四、实验步骤
1.选定测试方法
2.等价类划分
划分等价类的方法有:
按区间划分、按数值划分、按数值集合划分、按限制条件划分、按限制规则划分等。
确定了等价类后,可建立等价类表。
3.执行测试用例
请根据“日期推算”程序功能要求,自行开发该程序。
4.测试执行结果,并统计,填入表中。
软件测试实验报告

软件测试实验报告一、引言。
本实验旨在通过对软件进行测试,验证软件的功能和性能是否符合设计要求,以及发现和修复软件中可能存在的问题,提高软件质量,保证软件的稳定性和可靠性。
二、实验目的。
1. 了解软件测试的基本概念和方法;2. 掌握软件测试的基本流程和步骤;3. 熟悉软件测试工具的使用;4. 提高软件测试的实际操作能力。
三、实验内容。
1. 软件功能测试,对软件的各项功能进行测试,验证软件是否能够按照设计要求正常运行,并且达到预期的功能效果。
2. 软件性能测试,对软件的性能进行测试,包括响应时间、并发性能、负载能力等方面的测试,验证软件在不同条件下的性能表现。
3. 软件安全测试,对软件的安全性进行测试,包括数据加密、用户权限管理、漏洞扫描等方面的测试,验证软件在安全性方面的稳定性和可靠性。
四、实验步骤。
1. 确定测试目标和测试范围,编写测试计划和测试用例;2. 进行软件功能测试,记录测试结果并分析问题;3. 进行软件性能测试,记录测试数据并分析性能指标;4. 进行软件安全测试,发现安全隐患并提出改进建议;5. 汇总测试报告,总结测试过程和测试结果。
五、实验结果与分析。
经过本次实验,我们对软件进行了全面的测试,发现了一些功能上的问题,比如部分功能无法正常使用,界面显示不正确等;在性能测试中,发现了软件在高负载情况下响应时间过长的问题;在安全测试中,发现了一些安全隐患,比如数据传输过程中存在泄露风险等。
针对以上问题,我们已经提出了相应的改进建议,并在测试报告中进行了详细说明。
在今后的软件开发过程中,我们将更加重视软件测试工作,提高软件质量,保证软件的稳定性和可靠性。
六、结论。
通过本次实验,我们深刻认识到软件测试在软件开发过程中的重要性,只有经过充分的测试,才能保证软件的质量和稳定性。
我们将继续加强软件测试工作,提高测试水平,为软件的稳定运行和用户体验提供保障。
七、参考文献。
[1] 软件测试基础.杨林著.北京,清华大学出版社,2009.[2] 软件测试与质量保证.刘宏著.北京,电子工业出版社,2010.。
软件工程实验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]的。
计算机软件测试实验报告单1

bonus=bon4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bon6+(i-600000)*0.015;
else bonus=bon10+(i-1000000)*0.01;
printf("the bonus is %f\n",bonus);
教师评语
《计算机基础》上机实践报告
系别
计算机
专业Hale Waihona Puke 计算机科学与技术班级
姓名
学号
实践名称
软件功能测试
实验目的:
通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。进行功能测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
实践原理,内容:
# include <stdio.h>
printf("Input I:");
scanf("%ld",&i);
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;
else if(i<=400000)
bonus=bon2+(i-200000)*0.05;
getch();
return 0;
}
实验结果,分析
输入值
结果值
0.25
0.000000
199999
17499.925781
388888
26944.400391
软件测试方法实验报告

软件测试方法实验报告一、实验目的本次实验旨在了解并掌握软件测试方法的基本原理和实践操作,通过实际操作掌握软件测试的技巧和方法,提高学生在软件测试方面的综合能力。
二、实验环境本次实验使用的软件测试工具为Selenium WebDriver,集成开发环境为Eclipse,操作系统为Windows 10。
三、实验内容1. 编写测试用例:根据给定的需求文档,设计并编写适合的测试用例,包括功能测试用例、性能测试用例等。
2. 执行测试用例:使用Selenium WebDriver工具执行已编写的测试用例,验证软件的功能和性能。
3. 分析测试结果:根据测试结果,分析软件存在的缺陷和问题,并提出改进建议。
4. 撰写实验报告:整理实验过程、测试用例设计、执行结果、问题分析等内容,撰写完整的实验报告。
四、实验步骤1. 熟悉Selenium WebDriver工具的基本操作和功能。
2. 根据需求文档设计功能测试用例,并编写测试脚本。
3. 使用Selenium WebDriver执行测试脚本,记录测试结果。
4. 分析测试结果,发现并记录软件存在的问题。
5. 撰写实验报告,包括实验目的、环境、内容、步骤和结果等。
五、实验结果经过本次实验,我们成功设计了多组测试用例,并使用Selenium WebDriver工具执行了这些测试用例。
在测试过程中,我们发现了软件存在的一些问题,例如界面显示不完整、功能实现不符合需求等。
通过分析这些问题,我们提出了一些建议和改进方案,以期改进软件的质量和性能。
六、实验总结通过本次实验,我们深入了解了软件测试方法的重要性和必要性,也掌握了一定的软件测试技巧和方法。
在今后的学习和工作中,我们将继续加强对软件测试的学习和实践,不断提升自己的软件测试能力和水平。
七、参考资料1. Selenium官方网站2. 《软件测试导论》3. 《软件质量与测试》以上为本次《软件测试方法实验报告》的全部内容。
感谢您的阅读和关注。
软件工程实验报告

软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。
二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。
白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。
白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。
测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。
三、程序代码要求:实现对不少于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)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
软件测试单元测试实验报告

软件测试单元测试实验报告软件测试单元测试实验报告引言:软件测试是保证软件质量的重要环节之一,其中单元测试是软件测试的基础。
本文将对软件测试中的单元测试进行实验报告,介绍实验目的、实验环境、实验方法、实验结果和实验总结。
实验目的:本次实验的目的是通过单元测试,验证被测软件模块的正确性和稳定性,发现和修复潜在的缺陷,提高软件的质量。
同时,通过实验也可以加深对单元测试的理解和掌握。
实验环境:本次实验使用的是Java语言和JUnit测试框架。
实验环境包括Java开发工具(如Eclipse)和JUnit测试框架的安装和配置。
实验方法:1. 确定被测软件模块:根据实验要求,选择一个具有一定复杂度的软件模块进行测试。
本次实验选择了一个简单的字符串处理模块作为被测模块。
2. 编写测试用例:根据被测软件模块的功能和需求,设计并编写一组合理的测试用例。
测试用例应覆盖被测模块的所有分支和边界情况,以尽可能发现潜在的缺陷。
3. 编写测试代码:使用JUnit框架,根据设计的测试用例编写相应的测试代码。
测试代码应包括测试数据的准备、测试过程的执行和测试结果的验证。
4. 执行单元测试:在实验环境中执行编写好的单元测试代码,观察测试结果。
5. 分析测试结果:根据测试结果,判断被测软件模块的正确性和稳定性。
如果测试通过,说明被测模块的功能正常;如果测试失败,说明存在缺陷,需要进行修复。
实验结果:在本次实验中,针对被测的字符串处理模块,设计了多组测试用例,并编写了相应的测试代码。
通过执行单元测试,观察到以下结果:1. 大部分测试用例通过了测试,说明被测模块的功能正常。
2. 存在少量测试用例未通过测试,说明被测模块在某些特定情况下存在缺陷。
实验总结:通过本次实验,我对单元测试有了更深入的理解和掌握。
单元测试是软件测试中不可或缺的环节,能够有效地发现和修复软件模块的缺陷,提高软件的质量。
在实验中,我学会了如何设计和编写测试用例,如何使用JUnit框架进行单元测试,以及如何分析测试结果。
软件质量保证与测试实验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边界值分析测试实验通过边界值分析方法生成测试集,不断地修改程序,直到所有测试用例集测试均通过。
软件测试实验报告

软件测试实验报告《软件测试》实验报告书安徽⼯业⼤学计算机学院姓名马超专业软件⼯程班级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测试⼀、实验⽬的掌握⽤例执⾏及缺陷报告的书写⽅法。
软件测试实验JUnit单元测试

第三章JUnit单元测试实验1 开始使用JUnit实验目的1、学习使用进行单元测试;2、掌握编写测试代码的方法;3、应用JUnit进行单元测试,掌握最佳实践编写测试代码.实验环境1、Windows环境,MyEclipse或Eclipse,.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,打开该链接,会有一个下载链接,下载,保存在用户机的文件系统中.2 解包,得到如图3-1的解包文件.图1 Junit解包文件表1 Junit文件说明文件/目描述录JUnit框架结构、扩展和测试运行器的二进制发布JUnit的源代码,包括一个Ant 的buildfile文件junit是个目录,内有JUnit自带的用JUnit编写的测试示例程序javadoc JUnit完整的API文档doc一些文档和文章,包括“Test Infected: Programmers Love Writing Tests”和其它一些资料,可以帮助我们入门.3 配置以JUnit4.8.2为例.步骤如下:①右击“我的电脑”-“属性”-高级-环境变量;②在系统变量中选择“CLASSPATH”如果没有则新建一个,变量名CLASSPATH,变量值d:\junit4.8.2\如果有CLASSPATH,将d:\junit4.8.2\加入到变量值即可,多个中间需用;隔开.图2 Junit配置成功4 检验:运行中输入cmd输入命令:java 配置成功,如图2所示.2、编写JUnit测试用例.使用JUnit 的最佳实践:(1)新建一个名为test的source folder,用于存放测试类源代码;(2)目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面;(3)测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为TestCalculator或者是CalculatorTest.下面将以一个具体的实例进行说明.1 新建一Java Project.图3 新建Java Project2 配置构建路径.图4 配置构建路径 3 Add Library-JUnit 4.图5 Add Library图6 选择JUnit 41图7 选择JUnit 424 建一个包并在此包下建一个除法类:Divide.图8 类DivideDivide类的程序源代码如下所示:package ;public class Divide {private static int result;public void divide int num{result/=num;}public int getResult{return result;}public void setResult int result代码编写完成后,进行调试编译,确保没有语法错误.5 右键Divide类.图9 新建JUnit Test Case1图10 新建JUnit Test Case2图11 新建JUnit Test Case3MyEclipse会自动为测试类取名:被测试类+Test,单击Next就可以了.根据图12选择需要进行测试的方法.注意:测试类之所以使用“Test”开头或“Test”结尾,是为了更好的区分测试类与被测试类.图12 选择需要测试的方法6 创建测试用例.首先创建一个默认的测试用例.图13 产生默认的测试用例7 执行测试用例.如图14所示.测试结果:红色,测试失败.图14 运行测试用例图15 测试结果所有类测试结果8 修改测试用例:.具体代码如图16所示.新测试用例运行后的测试结果如图17所示.注意:测试方法必须使用注解修饰. 测试方法必须使用 public void 修饰,而且不能带有任何参数.测试方法在中没有要求,但是为了使得命名意义,一般推荐采用“test”+“被测试方法”的命名规则.assertEquals 是由JUnit 提供的一系列判断测试结果是否正确的静态断言方法位于类中之一,我们使用它将执行结果 result 和预期值“result”进行比较,来判断测试是否成功.图16 修改后的测试用例图17 修改后的测试用例的测试结果绿色的进度条提示我们,测试运行通过了.但现在就宣布代码通过了单元测试还为时过早.记住:你的单元测试代码不是用来证明你是对的,而是为了证明你没有错.因此单元测试的范围要全面,比如对边界值、正常值、错误值得测试;对代码可能出现的问题要全面预测,而这也正是需求分析、详细设计环节中要考虑的.3、应用JUnit对类WordDealUtil编写测试代码.(1)被测试程序说明:对名称、地址等字符串格式的内容进行格式检查.将Java对象名称每个单词的头字母大写按照数据库命名的习惯进行格式化格式化后的数据import 对名称、地址等字符串格式的内容进行格式检查或者格式化的工具类/public class WordDealUtil {/将Java对象名称每个单词的头字母大写按照数据库命名的习惯进行格式化格式化后的数据为小写字母,并且使用下划线分割命名单词例如:employeeInfo 经过格式化之后变为employee_infoparam name Java对象名称/public static String wordFormat4DBString name{Pattern p = "A-Z";Matcher m = name;StringBuffer sb = new StringBuffer;while{sb, "_"+;}return sb.toString.toLowerCase;}}//测试wordFormat4DB正常运行的情况Test public void wordFormat4DBNormal{String target = "employeeInfo";String result = target;assertEquals"employee_info", result;}}推荐每编写完一个测试方法,则执行”run”,看测试结果,结果应该是通过的.测试结果通过:(3)继续添加测试代码,并运行看测试结果.public class TestWordDealUtil {//测试 null 时的处理情况Test public void wordFormat4DBNull{String target = null;String result = target;assertNullresult;}//测试空字符串的处理情况Test public void wordFormat4DBEmpty{ String target = "";String result = target;assertEquals"", result;}//测试当首字母大写时的情况Test public void wordFormat4DBegin{ String target = "EmployeeInfo";String result = target;assertEquals"employee_info", result;}//测试当尾字母为大写时的情况Test public void wordFormat4DBEnd{ String target = "employeeInfoA";String result = target;assertEquals"employee_info_a", result;再次运行测试.很遗憾,JUnit 运行界面提示我们有两个测试情况未通过测试——当首字母大写时得到的处理结果与预期的有偏差,造成测试失败failure;而当测试对null 的处理结果时,则直接抛出了异常——测试错误error.显然,被测试代码中并没有对首字母大写和 null 这两种特殊情况进行处理.图18 JUnit测试运行结果(4)修改测试代码,直到测试通过.修改以后的代码:测试结果:实验小结通过本次实验掌握了Junit单元测试的环境配置,以及基本操作步骤,学习到了JInit单元测试的作用以及如何修改错误,对以后进行软件测试方面收获非常大.经过这次理论学习,明白了要求掌握的知识对于我今后的作用.这让我明确了以后学习的目标,在不断学习软件编程的同时,也应该继续软件测试的深入学习.。
软件工程实验(四个实验)

武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程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)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。
QTP实验1

录制模式
• 普通模式
– 录制பைடு நூலகம்脚本增强 回放 录制—脚本增强 脚本增强—回放
• Analog录制 录制
– 此录制方法完全记录一个完整的执行过程,最 此录制方法完全记录一个完整的执行过程, 典型的实例就是使用鼠标绘制签名。 典型的实例就是使用鼠标绘制签名。
• Low Level 录制
– 基于坐标的记录模式
QTP实验 QTP实验1 实验1
制作人: 制作人:牛言涛 20112011-9-6
有关实验
• 软件测试人员大体可以分为:测试设计人 软件测试人员大体可以分为: 测试执行人员、测试工具开发人员、 员、测试执行人员、测试工具开发人员、 bug管理人员。 管理人员。 管理人员 • 软件测试的核心内容及难点是测试用例的 软件测试的核心内容及难点是测试用例的 设计。(理论课) 设计。(理论课) 。(理论课 • 测试用例设计的好坏直接影响到软件的质 量。 • 实验课只要是运用自动化的工具对软件进 行测试(测试执行,假设用例已经设计完) 行测试(测试执行,假设用例已经设计完)
关键字驱动测试
• 关键字驱动测试方法也叫表格驱动测试方 把测试脚本的编程工作分离出去, 法,把测试脚本的编程工作分离出去,让 那些没有编程技巧的人也能开发自动化测 试脚本,减少测试脚本的维护。 试脚本,减少测试脚本的维护。 • 检查点是将指定属性的当前值与该属性的 期望值进行比较的验证点。 期望值进行比较的验证点。
为测试步骤添加注释
• 虽然 虽然QTP能为每一个录制的测试步骤自动 能为每一个录制的测试步骤自动 生成文档,但是, 生成文档,但是,未必能满足对测试脚本 的理解上的要求,因此, 的理解上的要求,因此,还需要为测试步 骤添加必要的注释。 骤添加必要的注释。 • 方法是在表格列头单击鼠标右键,选择 方法是在表格列头单击鼠标右键, “Comment” 。
软件测试实验报告一

软件测试实验报告⼀《软件测试与质量管理》实验报告学号::机器号:程序名:实验容:(⼀)⽩盒测试⼀、⽬的和要求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 实验工具和环境Word / Visio / PowerDesigner3实验内容和步骤1、设计下列VB程序的分支覆盖和条件组合覆盖测试用例(测试用例包括输入数据和预期输出)Private Sub Command1_Click()Dim a As Integer, b As Integer, c As Integera = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)If a + b <= c Or b + c <= a Or a + c <= b ThenMsgBox "不构成三角形", vbExclamation, "判断结果(1)"ElseMsgBox "构成三角形", vbExclamation, "判断结果(1)"If a ^ 2 + b ^ 2 = c ^ 2 Or b ^ 2 + c ^ 2 = a ^ 2 Or c ^ 2 + a ^ 2 = b ^ 2 Then MsgBox "该三角形为直角三角形", vbExclamation, "判断结果(2)"If a = b Or b = c Or c = a Then MsgBox "该三角形为等腰直角三角形", _ vbExclamation, "判断结果(2)"ElseIf a = b Or b = c Or c = a ThenMsgBox "该三角形为等腰三角形", vbExclamation, "判断结果(1)"If a = b And b = c And c = a Then MsgBox "该三角形为等边三角形", _vbExclamation,"判断结果(2)"ElseMsgBox "该三角形为一般三角形", vbExclamation, "判断结果(2)"End IfEnd IfEnd Sub(注:可用A,B,C……来表示判定表达式中的各个简单条件)(1)分支覆盖:每条语句至少执行一次,且每个判定表达式的每个分支(即真和假)都至少执行一次。
软件测试实验报告(例)

本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼专业班级:学生姓名:指导教师:谢红薇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和内存使用率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试实验1本页仅作为文档页封面,使用时可以删除
This document is for reference only-rar21year.March
实验1 黑盒测试
一、实验目的与要求
1、掌握等价类测试方法的原理、步骤及应用
2、掌握边界值分析法的原理、步骤及应用。
3、掌握决策表测试方法的原理、步骤及应用。
二、实验设备
1、电脑PC
2、office办公软件
三、实验原理
(一)等价类测试法
1、定义:等价类划分法是根据程序规格说明书对输入范围进行划分,将所有可能的输入数据按相关的规定划分成若干不相交的子集。
所有的子集的并集是整个输入域,其中,子集的互不相交保证子集中无冗余性,子集的并集是整个输入域,确定了所有子集的完备性。
在划分等价类时分有效等价类和无效等价类。
2、划分等价类的步骤
(1)确定输入域:分析需求并确定所有的输入、输出量,以及变量类型和变量使用条件。
(2)等价类划分:将每个变量的取值集合划分为互不相交的子集,每个子集对应一个等价类,所有的等价类就构成了对输入域的一个划分。
(3)组合等价类:使用多元化方法,可以将等价类组合起来。
(4)确定不可测的等价类:有些输入数据组合在实际测试过程中是无法生成的,包括这种数据的等价类就是不可测试等价类。
不可测试数据是指无法输入到被测软件中的那些数据组合。
3、等价类的测试步骤
(1)划分等价类,形成等价类表。
(2)为每个等价类规定一个唯一的编号。
(3)设计一个新的测试用例,使其尽量多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
(4)设计一个新的测试用例,使其覆盖一个而且只覆盖一个无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。
(二)边界值分析法
1、定义:边界值分析法主要从数据的定义域的边界数据进行分析,对于合法的与不合法的边界数据进行选取和测试。
用来检查用户输入的信息、返回的结果以及中间计算结果是否正确。
2、边界值的获取
对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max),对每一个变量都重复进行。
因此,对于一个由n个变量的程序,边界值分析测试程序就有4n+1个测试用例。
健壮性测试是边界值测试的一种扩展,除了取上面已经描述的5种边界外,还要考虑超出范围的值,即比最小值小(min-)、比最大值大(max+)的取值。
边界值的获取方法同理,健壮性测试的用例将产生6n+1个测试用例。
3、生成测试用例的步骤
(1)使用一元划分法划分输入域。
此时,有多少个输入变量就形成多少种划分法。
(2)为每种划分确定边界,也可利用输入变量之间的特定关系确定边界。
(3)设计测试用例,确保每个边界至少出现在一个测试输入数据中。
(三)决策表法
1、定义:决策表又称判定表,决策表能够将复杂的问题按照各种可能的情
况全部列举出来,简明并避免遗漏。
2、决策表的构成:由4部分构成
(1)条件桩:列出问题的所有条件
(2)条件项:针对条件桩给出的条件列出所有可能的取值
(3)动作桩:列出问题规定的可能采取的操作
(4)动作桩:指出在条件项的各组取值情况下应采取的动作。
3、决策表的一般步骤
(1)确定规定的个数。
有n个条件的决策表有2的n次方个规则(每个条件取真假值)
(2)列出所有的条件桩和动作桩
(3)填入条件项
(4)填入动作项,得到初始决策表
(5)简化决策表,合并相似规则
若表中有两条以上规则具有相同动作,并且在条件项之间存在极为相似的关系,便可以合并。
四、实验内容及要求
(一)实验内容
1、三角形问题的等价类测试
输入三个整数a、b、c分别作为三角形的三条边,通过程序判断由这三条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(即不能构成三角形)
假定三个输入a、b和c都在1-100之间取值,请按照等价类测试步骤,设计测试用例。
2、针对上述三角形问题,使用边界值测试法设计测试用例。
3、测试以下程序:该程序有3个输入变量month、day、year(均为整数值,满足month在1-12之间,day在1-31之间),分别作为输入日期的月份、日期、年份,通过程序可以输出日期在日历上隔一天的日期。
例如,输入为2020年1月30日,则该程序输出为2020年2月1日.
(1)分析各种输入情况,列出输入变量month、day、year划分的有效等价类。
(2)分析程序需求,结合以上等价类划分的情况给出问题规定的可能采取的操作(列出所有的动作桩)
(3)根据(1)和(2)的结果,画出简化后的决策表并根据决策表设计测试用例。
(二)实验要求
1、完成如上三个题目要求的设计,列出设计过程中需要的表格
2、表格要有表头,并在表格下方对表格设计列出说明文字。
3、完成实验后必须进行实验总结,可分析几种测试方法的优缺点及做实验过程中的收获,否则实验适当扣分。
五、实验结果
学生做实验后将实验结果按照题目序号放置。
1、实验结果
现在要求输入三个整数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,程序给出“边的取值超出允许范围”的信息。
如果输入值a、b、c满足条件1、条件2和条件3,则输出下列四种情况之一:
(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为“非三角
形”。
(2)如果三条边相等,则程序输出为“等边三角形”。
(3) 如果恰好有两条边相等,则程序输出为“等腰三角形”。
(4) 如果三条边都不相等,则程序输出为“一般三角形”。
等价类划分:
测试用例设计:
对有效等价类设计测试用例:
为无效等价类设计测试用例:
2、实验结果
用边界值分析法设计测试用例,按照下列步骤进行:
(1)分析各变量取值
边界值分析的基本思想是使用输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值设计测试用例。
因此a, b,c的边界取值是: 1, 2,100,199,200。
(2)测试用例数
有n个变量的程序,其边界值分析会产生4n+1个测试用例。
这里有3个变量,因此会产生13个测试用例。
(3)设计测试用例
用边界值分析法设计测试用例就是使--个变量取边界值(分别取最小值、略高于最小值、正常值、略低于最大值和最大值),其余变量取正常值,然后对每个变量重复进行。
本例用边界值分析法设计的测试用例见表2-1.
3、实验结果
为了获得一个日期,函数需要执行的操作有5种动作桩1)A1:day加2
2)A2:day变回1
3)A3:day变为2
4)A4:month加1
5)A5:month变回1
6)A6:year加1
7)A7:不存在
条件桩:
M1:month有30天;
M2:month有31天,除12月外;
M3:month是12月份;
M4:month是2月份;
D1:1<=day<=26;
D2:day=27;
D3:day=28;
D4:day=29;
D5:day=30;
D6:day=31;
Y1:闰年;
Y2:非闰年
测试用例Month day year 预期输出
RJS Case1~3 6 15 2007 2007年6月16日RJS Case4 6 30 2007 2007年7月1日RJS Case5 6 31 2007 不可能的输入日期RJS Case6~9 1 15 2007 2007年1月16日RJS Case10 1 31 2007 2007年2月1日RJS Case11~14 12 15 2007 2007年12月16日RJS Case15 12 31 2007 2007年1月1日RJS Case16 2 15 2007 2007年2月16日RJS Case17 2 28 2000 2000年2月29日RJS Case18 2 28 2007 2007年3月1日
六、实验总结
本次实验运用了黑盒测试的等价类划分、边界值分析、决策表法等等的黑盒测试方法,对于这些知识的运用让我对黑盒测试各种方法及其运用有了进一步的了解,也能对一些简单的案例设计出相应的测试方法。
11。