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

合集下载

软件测试技术实验报告册

软件测试技术实验报告册

工程学院计算机学院软件测试技术实验报告册适用专业:学期: 专业: 班级: 学号: 姓名: 指导教师:2014年9月目录实验一 (1)实验二 (5)实验三 (10)实验四 (13)实验五 (16)实验六 (19)附录 (22)实验一、黑盒测试一、实验目的1、熟练掌握黑盒测试方法的相关知识和方法;2、熟练等价类划分方法、边界值分析法、判定表方法和因果图法;3、掌握基本的测试用例的设计。

二、实验容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.题目四:找零钱最佳组合假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元 (P) ,求找给顾客最少货币个()数?(货币面值50元10 元,5 元,1元四种)三、实验要求(1)根据题目要求编写测试用例(参照表1进行用例设计);(2)实验结果要求给出两套测试用例集测试效果比较;(3)撰写实验报告四、实验容清单实验二、白盒测试一、实验目的1、熟练掌握白盒测试方法的相关知识和方法;2、熟练语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖和基本路径测试法;3、掌握基本的测试用例的设计。

软件测试实验报告

软件测试实验报告

软件测试实验报告
一、实验内容
本次实验的目的是通过白盒测试技术来对一个接口进行测试,目的是
为了评估接口的可用性和功能性,以及其在各种参数下的表现。

二、实验方法
1.确定测试的边界值:首先,根据接口文档,确定出各个参数的最小值、最大值和正常值,并根据边界值理论,选择出8个典型的测试值,即
最小值、最小值减一、最小值加一、正常值、正常值减一、正常值加一、
最大值、最大值加一,用于确定测试的边界。

2.编写测试用例:用确定的边界值,编写测试用例,以检测接口的可
用性和功能性。

3.执行测试:将编写的测试用例应用到实际情况中,对接口进行测试,并获得测试结果。

三、实验结果
1.测试结果:经过本次白盒测试,发现接口在各个参数下能够正常工作。

2.整体结论:在确定的边界值范围内,接口表现正常,可以满足对该
接口的功能和可用性的要求。

四、实验的建议
本次实验证明,白盒测试在评估接口的可用性和功能性方面是有效的。

但是,为了进一步提高接口的性能,还需要进行更加全面的测试,比如性
能测试、安全测试等,以便获得更好的测试效果。

软件测试实验指导

软件测试实验指导

实验二:黑盒测试时间:2011-3-6【实验目的】1)掌握边界值分析,等价类技术。

2)掌握开发一个决策表和相应的测试用例的方法。

【实验要求】(1)认真阅读和掌握和本实验相关的教材内容。

(2)分析问题的要求,开发相关程序。

(3)用等价分类法测试党员出生年月的输入设计是否符合要求和相应的测试用例。

(4)开发一个决策表和相应的测试用例。

【实验内容】1、试用等价分类法测试同学出生年月的输入设计是否符合要求,假设出生年月格式为yyyymmdd。

解:输入数据无效等价类有效等价类出生年月日①8位数字字符②有非数字字符③少于8个数字符④多于8个数字符对应数值⑤在19090101-19900101之间⑥<19090101⑦>19900101月份对应数值⑧在1-12之间⑨等于"00 "⑩>12日期对应值○111,3,5,7,8,10,12月在1-31之间○124,6,9,11月在1-30之间○13闰年2月在1-29之间○14非闰年2月在1-28之间○15等于"00 "○16>31○172,4,6,9,11月等于"31 " ○182月等于"30 "○19非闰年2月等于"29"请写出你用的开发语言,你开发的程序,测试过程和结果。

2.试为三角形问题中的直角三角形开发一个决策表和相应的测试用例。

注意,会有等腰直角三角形。

解:判断构成的是否为直角三角形的问题的决策表设计如下:c1:a<b+c? F T T T T T T T T T Tc2:b<a+c? - F T T T T T T T T Tc3:c<a+b? - - F T T T T T T T Tc4:a2+b2=c2? - - - T T T T F F F Fc5: a2+c2=b2? - - - T T F F T T F Fc6: b2+c2=a2? - - - T F T F T F T Fa1:非三角形X X Xa2:直角三角形X X Xa3:非直角三角形X a4:不可能X X X X根据该决策表设计测试用例如下:用例ID a b c 预期输出DT1 4 1 2 非三角形DT2 1 4 2 非三角形DT3 1 2 4 非三角形DT4 ? ? ? 不可能DT5 ? ? ? 不可能DT6 ? ? ? 不可能DT7 3 4 5 直角三角形DT8 ? ? ? 不可能DT9 3 5 4 直角三角形DT10 5 3 4 直角三角形DT11 2 3 4 非直角三角形开发语言:C语言程序源代码:#include<stdio.h>int panduan(int a,int b,int c){if(a<(b+c) && b<(a+c) && c<(a+b)){if(a*a+b*b==c*c && a*a+c*c==b*b && b*b+c*c==a*a)return 3;else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)return 1;else return 0;}elsereturn 2;}main(){int b1,b2,b3;int zhijiao;int i;scanf("%d%d%d",&b1,&b2,&b3);zhijiao=panduan(b1,b2,b3);if(zhijiao==1)printf("直角三角形\n");if(zhijiao==2)printf("非三角形\n");if(zhijiao==0)printf("非直角三角形\n");if(zhijiao==3)printf("不可能\n");测试过程和结果;通过测试}。

软件测试实验报告

软件测试实验报告

软件测试实验报告
实验目的:了解软件测试的基本概念与方法,掌握软件测试的基本操作。

实验内容:
1. 编写测试用例:根据给定的软件需求文档,编写软件测试用例。

测试用例应包含输入数据、预期输出和实际输出。

2. 执行测试用例:使用测试工具或手动执行测试用例,记录测试结果。

3. 分析测试结果:根据实际输出和预期输出,分析测试结果,判断软件是否符合需求。

实验步骤:
1. 阅读给定的软件需求文档,了解要测试的软件功能和特性。

2. 根据需求文档编写测试用例,包括输入数据、预期输出和实际输出。

3. 执行测试用例,记录实际输出。

4. 分析测试结果,判断软件是否符合需求。

5. 根据测试结果,提出软件改进的建议或修复bug。

实验结果:
经过测试,软件的大部分功能都符合需求,但在某些特定情况下出现了bug。

建议开发人员针对这些问题进行修复和优化。

实验总结:
本次实验让我初步了解了软件测试的基本概念和方法,通过编写测试用例和执行测试用例,我掌握了软件测试的基本操作。

通过实践,我体会到了软件测试对于软件质量保证的重要性,以及测试结果对软件改进的指导意义。

我将继续学习和探索更多的软件测试技术,提高自己在软件测试方面的能力。

软件测试实验二实验报告

软件测试实验二实验报告

软件测试实验二实验报告一、实验目的本次软件测试实验的主要目的是熟悉并掌握软件测试的基本方法和技术,通过对一个具体软件系统的测试,发现软件中存在的缺陷和问题,提高软件的质量和可靠性。

二、实验环境1、操作系统:Windows 102、测试工具:Jmeter、Selenium、Bugzilla3、开发语言:Java4、数据库:MySQL三、实验内容1、功能测试对软件的登录功能进行测试,包括输入正确和错误的用户名、密码,验证登录是否成功以及相应的提示信息是否准确。

测试软件的注册功能,检查输入的各项信息是否符合要求,如用户名长度、密码强度等。

对软件的搜索功能进行测试,输入不同的关键词,检查搜索结果的准确性和完整性。

2、性能测试使用 Jmeter 工具对软件的并发性能进行测试,模拟多个用户同时登录、搜索等操作,观察系统的响应时间、吞吐量等性能指标。

对软件的数据库操作性能进行测试,包括插入、查询、更新和删除数据,检查数据库的响应时间和资源占用情况。

3、兼容性测试在不同的浏览器(如 Chrome、Firefox、IE 等)上运行软件,检查界面显示和功能是否正常。

在不同的操作系统(如 Windows、Mac OS、Linux 等)上安装和运行软件,验证其兼容性。

4、安全测试对软件的用户认证和授权机制进行测试,检查是否存在未授权访问和越权操作的情况。

测试软件对 SQL 注入、XSS 攻击等常见安全漏洞的防范能力。

四、实验步骤1、功能测试步骤打开软件登录页面,输入正确的用户名和密码,点击登录按钮,观察是否成功登录并跳转到相应页面。

输入错误的用户名或密码,检查提示信息是否清晰准确。

进入注册页面,输入合法和不合法的注册信息,如用户名过短、密码强度不够等,查看系统的校验结果。

在搜索框中输入关键词,点击搜索按钮,对比搜索结果与预期是否一致。

2、性能测试步骤打开 Jmeter 工具,创建测试计划,添加线程组、HTTP 请求等元素。

(完整版)软件测试技术试验报告--JUnit的基本应用

(完整版)软件测试技术试验报告--JUnit的基本应用

《软件测试技术》实验报告实验序号:3实验项目名称:单元测试工具JUnit的基本应用学号实验地址姓名指导教师专业、班实验时间一、实验目的及要求掌握在 Eclipse 环境下 JUnit 单元测试工具的安装和使用方法;针对一个实质问题,在 JUnit 环境下设计并履行测试用例。

二、实验要求开发环境: Eclipse v3.7 及以上版本; JUnit v4.10 及以上版本;文本编写软件。

硬件要求: CPU PIV 以上, 256M 内存, 1G 硬盘空间。

系统要求: Windows98/Me/XP/NT/2000 , IE 5 以上。

三、实验内容与步骤1.下载并安装 JDK2.下载并安装 Eclipse3.下载并安装 JUnit4.通读自动售货机程序,并在 Eclipse 环境下运转该程序5.在 JUnit 环境下履行以下表格中的测试用例,并填写完成该表格。

编输入值输入值状态预期输出实质情号Type money况001Beer5C各资Input Information源剩Type: Beer; Money: 5 Cents; Change: 0余Current StateBeer: 5Orange Juice: 65 Cents: 71 Dollar: 6002OrangeJuice5C各资Input Information源剩Type: OrangeJuice; Money: 5 Cents; Change: 0余Current StateBeer: 6Orange Juice: 55 Cents: 71 Dollar: 6003 Beer1D没有Failure Information啤酒Beer Shortage5.提交测试用例程序和该程序运转结果最后画面。

6.总结本次试验,并撰写实验报告。

四、实验结果与数据办理编输入值输入值状态号Type money001Beer5C各资源剩余002OrangeJuice 5C各资源剩余003 Beer1D没有啤酒预期输出Input InformationType: Beer; Money: 5 Cents; Change: 0Current StateBeer: 5Orange Juice: 65 Cents: 71 Dollar: 6Input InformationType: OrangeJuice; Money: 5 Cents; Change: 0Current StateBeer: 6Orange Juice: 55 Cents: 71 Dollar: 6Failure InformationBeer Shortage实质情况与预期值一致与预期值一致与预期值有偏差实验环境变量配置。

软件测试实验报告二doc

软件测试实验报告二doc

软件测试实验报告二一、实验目的掌握边界值、等价类和决策表测试的基本方法二、实验内容对于nextdate函数设计决策表测试用例程序三、概要设计1、对于nextdate函数设计决策表测试用例程序设计如下的等价类:M1={月份:每月有30天} M2={月份:每月有31天,12月除外}M3={月份:此月是12月} M4={月份:此月是2月}D1={日期:1≤日期≤27} D2={日期:日期=28}D3={日期:日期=29} D4={日期:日期=30}D5={日期:日期=30} Y1={年:年是闰年} Y2={年:年不是闰年}四、详细设计1、对于nextdate函数设计决策表测试用例程序设计如下的决策表测试用例:五、程序调试六、实验总结通过这次实验,让我掌握边界值、等价类和决策表测试的基本方法。

七、附录DATE.C#include<stdio.h>#include<stdlib.h>void main(){int tomorrowDay,tomorrowMonth,tomorrowYear,day,month,year;//设置程序需要的变量printf("Please input today's date is from MM DD YYYY...\n");scanf("%d %d %d",&month,&day,&year);switch(month){//通过switch来选择不同的月份下的情况case 1:case 3:case 5:case 7:case 8:case 10://上面的月份都是31天的,下面代码实现31天情况下的月份if(day<31){tomorrowDay=day+1;tomorrowMonth=month;tomorrowYear=year;}else{tomorrowDay=1;tomorrowMonth=month+1;tomorrowYear=year;}break;case 4:case 6:case 9:case 11://上面的月份都是30天的,下面代码实现30天情况下的月份if(day<30){tomorrowDay=day+1;tomorrowMonth=month;tomorrowYear=year;}else{tomorrowDay=1;tomorrowMonth=month+1;tomorrowYear=year;}break;case 12://由于12月一过,年份要加一,故单独把12月拿出if(day<31){tomorrowDay=day+1;tomorrowMonth=month;tomorrowYear=year;}else{tomorrowDay=1;tomorrowMonth=1;if(year==2012){printf("The 2012 is over!\n");exit(0);}elsetomorrowYear=year+1;}break;case 2://根据是否闰年来判断二月的天数,故把二月单独拿出来 if(day<28){tomorrowDay=day+1;tomorrowMonth=month+1;tomorrowYear=year+1;}else if(day==28){if((year/4==0 && year/100!=0) || year/400==0){ tomorrowDay=29;tomorrowMonth=month;tomorrowYear=year;}else{tomorrowDay=1;tomorrowMonth=3;tomorrowYear=year;}}else if(day==29){tomorrowDay=1;tomorrowMonth=3;tomorrowYear=year;}elseprintf("Feb can not have %d day\n",day);}printf("Tomorrow's date is %d %d %d\n",tomorrowMonth,tomorrowDay,tomorrowYear);}。

软件测试技术实验报告

软件测试技术实验报告

实验一黑盒测试
一、实验目的及要求
实验目的:
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]+,然后保存关闭。

软件测试实验报告-黑盒测试等价划分类

软件测试实验报告-黑盒测试等价划分类

A为闰年且 6 b=2,c:1~29
A为平年且 7 b=2,c:1~28
覆盖有效等价类的测试用类
a
b
c
2013
10
9
2012
2
28
2013
2
28
2013
9
15
覆盖无效等价类的测试用类
a
b
c
0.2013
10
9
2013
0.1
9
2013
10
0.9
0.2013
0.1
9
0.2013
10
0.9
2013
0.1
0.9
if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c 的值不能构成三角形!"; 8 if(a==b&&b==c)cout<<"是等边三角形!"; 9 if(a==b||b==c||a==c)cout<<"是等边三角形!"; 11 if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; 12
5
1、2、3、4、5
4
1、2、3、4、6
覆盖无效等价类的测试用类
a
b
ห้องสมุดไป่ตู้
c
覆盖无效等价类号码
0
4
5
7
3
0
5
8
3
4
0
9
3
4
7
10
7

软件测试实验报告黑盒测试判定表

软件测试实验报告黑盒测试判定表

广西师范大学计信学院《软件测试技术》课程实验实验报告题目:黑盒测试法--判定表法班级:学号:姓名:完成日期:实验二黑盒测试法——判定表法实验目的:1.掌握因果图、判定表的方法2.掌握按判定表设计测试用例实验时间:4学时实验内容:1、题目一:隔一天日期问题功能描述:输入年份、月、日;输出:输入日期在日历上的隔一天日期。

如输入1912年12月15日,应输出1912年12月17日。

要求:(1) 读源码并分析程序,给出问题规定的可能采取的操作(即列出所有的动作桩)。

(2) 画出简化后的决策表,设计测试用例。

(3) 执行测试用例,进行测试记录和缺陷统计,给出缺陷报告。

2.程序设计及测试(以下任选一个),要求撰写测试报告(格式参照实验一)。

(1)请自己设计象棋走马问题程序,要求给出需求说明书,采用因果图法或综合采用所学黑盒测试法设计测试用例,并执行测试用例,进行缺陷统计和分析,并修正Bug。

(2)请设计实现简单的计算器功能,要求给出需求说明书,综合采用所学黑盒测试方法设计测试用例集合,并执行测试用例,进行缺陷统计和分析,并修正Bug。

实验过程:实验1:(1)动作桩:A1:day+2 A2:day=2 A3:day=1 A4:month+1 A5:moth=1 A6:year+1 A7:不可能有效等价类:Year:Y1{year是闰年} Y2{year不是闰年}Month:M1{month=4、6、9、11} M2:{month=1、3、5、7、8、10}M3{month=12} M4{month=2}Day:D1{1<=day<=26} D2{day=27} D3{day=28} D4{day=29} D5{day=30}D6{day=31}缺陷:当结果日期需要跳至下一个月时,结果会显示两次。

实验2:条件桩:1、棋子落在棋盘外2、落点未与起点构成日字型3、落点处有己方棋子4、落点处的临近交叉点5、落点处无棋子6、落点处对方棋子不是老将M:1、2、3、4动作桩:1、不移动棋子2、移动棋子3、除去对方棋子4、提示战胜对方,游戏结束#include <iostream>using namespace std;void main(){cout<<"象棋走马问题,根据情况选择回答0、是或1、否"<<endl;cout<<"“马”的落点处是否在棋盘外"<<endl;int a,b,c,d;cin>>a;cout<<"“马”的落点与起点是否不成“日”字型"<<endl;cin>>b;cout<<"“马”的落点处是否有其他己方棋子"<<endl;cin>>c;cout<<"“马”的落点临近交叉点是否有棋子"<<endl;cin>>d;int x,y;cout<<"“马”的落点处是否有棋子"<<endl;cin>>x;cout<<"“马”的落点出的棋子是否为老将"<<endl;cin>>y;if(a==0&&b==0&&c==0&&d==0)cout<<"不移动棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==1)cout<<"移动棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==0&&y==1)cout<<"移动棋子并出去对方棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==0&&y==0)cout<<"移动棋子并提示战胜对方,游戏结束"<<endl;if(a>1||b>1||c>1||d>1||x>1||y>1)cout<<"输入不规范"<<endl;}程序缺陷:每次运行程序,即使中途就出现输入不规范,但是仍要到最后才能提示出来。

软件测试实验报告

软件测试实验报告

学号:《软件测试技术》实验报告与习题册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)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。

《软件测试》实验报告

《软件测试》实验报告
图9
图10
图11
Test.cpp代码分析图:
图12
图13
图14
六、教师评语
1.按时完成实验;
2.实验内容和过程记录完整,结构清晰;
3.回答问题正确;
4.有实验的心得或讨论;
5.实验报告的撰写认真、格式符合要求,没有抄袭行为。
签名:
日期:
成绩
实验结果:
图1
图2
Asserter。cpp代码分析图:
图3
图4
图5
Exception。cpp代码分析图:
图6
图7
图8
Message.cpp代码分析图:
3、对于代码审查的结果,填写汇总表。
四、实验步骤与结果
实验结果续的部分参见实验表格之后的内容。
代码审查发现的问题描述如下:
文件名
行数
问题描述
Exception。cpp
51
最大复杂度的函数为2.平均每个语句的数目包含的函数数目偏少,平均复杂度、平均块嵌套级数偏低.
Asserter。cpp
26
最大复杂度的函数为2,注释比例太少。
平均每个语句的数目包含的函数数目偏少,平均复杂度、平均块嵌套级数偏低。
Message.cpp
51
最大复杂度的函数为3,注释比例太少,函数代码行数偏多。平均每个语句的数目包含的函数数目偏少,平均复杂度、平均块嵌套级数偏低.
Test.cpp
32
最大复杂度的函数为4,注释比例太少。
五、分析与讨论
通过本实验,我学会了走查、桌面检查、代码审查等代码静态测试的基本步骤;掌握了如下技巧:检查代码和设计的一致性,代码对标准的遵循及可读性,代码逻辑表达的正确性,代码结构的合理性等;学习了编程规范《高质量C/C++编程指南》;对开源框架CppUnit有了一定的了解。

软件测试实验报告(测试用例 代码 截图)

软件测试实验报告(测试用例 代码 截图)

软件测试实验报告(测试用例代码截图)计算机软件测试技术实验报告系别电子信息系专业计算机科学与技术班级学号姓名指导教师万聪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图形展示:实验总结:通过这些课时的实验,了解了一些软件测试的基本含义,学会了一些基本测试步骤的设计和用例的构造。

软件测试实验报告

软件测试实验报告

学号:《软件测试技术》实验报告与习题册2014/2015学年第2学期系别__________ 计算机学院专业__________________________班级_____________ 一班_________姓名__________________________指导教师_________________________目录实验一:基于白盒测试的用例设计与验证(一)一.实验目的(1)熟悉Eclipse开发环境(2)掌握Java语言的基本语法,能够利用Java实现简单的程序开发(3)熟悉白盒测试基本原理(4)掌握白盒测试的逻辑覆盖法,能够依据语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖的原理进行相应测试用例的设计工作。

二•实验内容(1)选择一门语言,完成指定的单元程序开发。

#in clude<>voidmai n(){in tm, n,p,q;prin tf("please in putm ,n ,p,q:\n");sca nf("%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)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。

三•程序流程图运行结果语句覆盖:判定-条件覆盖:条件组合覆盖:四.实验内容中遇到的问题、解决方法和体会。

答:遇到的问题:实验过程中,编写程序有点问题,总是输不出结果,不断进行检查和调试,以至于花费很多时间。

软件测试实验报告

软件测试实验报告

实验报告课程名称: 软件测试技术指导教师: 毛红梅班级: 160462组员实验1(设计性)设计被测程序实验目的自行任选一门高级语言编写几个小模块。

以用于将来的各种测试工作。

实验内容1)对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。

2)写出实验报告。

报告要求:有实验目的,实验内容,实验步骤,调试完成的准确编程代码,实验小结。

实验步骤及结果代码如下:package Experiment2;import org.junit.Test;public class Ex2 {public static void main(String[] args) {}@Testpublic void calculate(){int a=2,b=6;System.out.println("a的值为:"+a+" b的值为:"+b);System.out.println("a+b:"+ (a+b));System.out.println("a-b:"+ (a-b));System.out.println("a*b:"+ (a*b));System.out.println("a/b:"+ (a/(float)b));}@Testpublic void multipleUtility(){int[] score= new int[]{20,56,89,400};double temp=0;System.out.println("成绩分布如下:");for(int x:score){System.out.print(x+" ");}System.out.println();//求平均值for(int i=0;i<score.length;i++)temp+=score[i];temp/=score.length;System.out.println("平均成绩为:"+temp);//求最大值temp=0;for(int i=0;i<score.length;i++){if(score[i]>temp)temp=score[i];}System.out.println("成绩最大值为:"+temp);//求最小值temp=100;for(int i = 0;i<score.length;i++){if(score[i]<temp)temp=score[i];}System.out.println("成绩最小值为:"+temp);//求方差double sAve = 0;//平均值double sVar = 0;//方差int m = score.length;for(int x:score){sAve += x;}sAve /= m;//求得平均值for(int x:score){sVar += (x-sAve)*(x-sAve);}sVar = sVar/m;System.out.println("成绩的方差为:"+sVar);//求标准差double sStan = Math.sqrt(sVar);System.out.println("成绩的标准差为:"+sStan);}}实验体会朱青(16046233):本次的实验是对Junit包的第一次实验,通过导入Junit可以实现对程序单个方法的测试,能够在不需要main方法的前提下单独调用一个方法,前提是在被调用方法上面加上@Test的注解,并且要进行测试的方法必须设置为public void权限,且没有参数,否则会报错。

软件测试技术实验报告

软件测试技术实验报告

软件测试技术实验报告软件测试技术实验报告一、引言在软件开发过程中,为了保证软件的质量和稳定性,软件测试技术起到了至关重要的作用。

本实验旨在研究和探索不同的软件测试技术,并通过实验验证其有效性和可行性。

二、背景软件测试是一种通过执行程序来发现错误、缺陷或其他问题的过程。

它可以帮助开发人员提高软件的质量和可靠性。

在本实验中,我们将使用以下几种常见的软件测试技术进行实验研究。

三、黑盒测试黑盒测试是一种基于软件功能和规格说明的测试方法。

测试人员只关注软件的输入和输出,而不考虑内部的实现细节。

通过构造各种输入条件,我们可以测试软件是否按照规格说明正确地输出结果。

本实验中,我们使用黑盒测试技术对一个简单的计算器软件进行测试。

四、白盒测试白盒测试是一种基于软件内部结构的测试方法。

测试人员需要了解软件的内部实现细节,以便设计测试用例。

通过覆盖软件的不同执行路径,我们可以测试软件是否存在逻辑错误和代码缺陷。

本实验中,我们使用白盒测试技术对一个简单的排序算法进行测试。

五、性能测试性能测试是一种评估软件在不同负载条件下的性能表现的测试方法。

通过模拟多种使用场景,我们可以测试软件的响应时间、吞吐量和并发能力等指标。

本实验中,我们使用性能测试技术对一个在线购物网站进行测试。

六、安全测试安全测试是一种评估软件系统安全性的测试方法。

通过模拟各种攻击场景,我们可以测试软件的抗攻击能力和数据保护机制。

本实验中,我们使用安全测试技术对一个银行系统进行测试。

七、总结与展望通过本实验,我们深入了解了不同的软件测试技术,并验证了它们的有效性和可行性。

黑盒测试、白盒测试、性能测试和安全测试都是软件开发过程中必不可少的环节。

未来,我们将进一步研究和探索更多先进的软件测试技术,以提高软件的质量和可靠性。

八、参考文献[1] Kaner, C., Falk, J., & Nguyen, H. Q. (1999). Testing computer software. John Wiley & Sons.[2] Beizer, B. (1995). Software testing techniques. Van Nostrand Reinhold.[3] Myers, G. J., Sandler, C., & Badgett, T. (2011). The art of software testing. John Wiley & Sons.以上是本次软件测试技术实验报告的内容,通过实验我们对不同的软件测试技术进行了研究和验证,并总结了实验结果。

边界值分析上机实验

边界值分析上机实验

亳州师范高等专科学校软件测试技术实验报告系别:专业:学号:姓名:指导教师:提交日期:年月日实验二黑盒测试---边界值分析实验一、实验目的1、掌握边界值的相关概念2、掌握边界值分析分法的测试用例设计方法二、实验要求手工运用边界值方法设计被测程序的测试用例,并运行测试用例检查程序的正确与否。

三、实验任务1、问题描述:NextTwoDate是一个有三个变量(月份、日期和年)的函数。

函数返回输入日期后隔一天的那个日期。

例如:输入2012年3月18日,输出日期为:2012年3月20日。

变量月份、日期和年都是整数值,并满足以下条件:c1:1<=月份<=12c2:1<=日期<=31c3:1920<=年<=2050如果c1、c2、或c3中的任意一个条件失败,则NextTwoDate 都会产生一个输出,指示相应的变量超出取值范围。

例如“月份值不在1~12范围内”。

2、程序源代码#include <stdio.h>#include <stdlib.h>void NextTwoDate(int y,int m,int d){int flag = 1; //此处增加一个标识,日期是否错误if (y<=1920 || y>=2050){printf("\n\n年份输入越界,年份值不在1920~2050范围内\n\n");return ;}if (m>12 || m<1){printf("月份值不在1~12范围内\n ");return;}if (d>=31 || d<=1){printf("日期值不在1~31范围内\n");return;}switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:{if(d+1<31) d=d+2;elseif(d+1==31){if(m!=12){m++;d=1;}else{y++;m=1;d=1;}}elseif (d==31){if(m!=12){m++;d=2;}else{y++;m=1;d=2;}}else{printf ("输入日期错误,请注意该月的天数!!\n");flag=0;}break;}case 4:case 6:case 9:case 11:if(d+1<30) d=d+2;elseif (d==29) {m++;d=1;}elseif(d==30){m++;d=2;}else{printf ("输入日期错误,请注意该月的天数!!\n"); flag=0;}break;case 2:{int f=((y%4==0)&&(y%100!=0))||(y%400==0);if(!f){if(d+1<28) d=d+2;else if(d+1==28){m++;d=1;}else if(d==28) {m++;d=2;}else{printf ("输入日期错误,请注意平年2月的天数!!\n"); flag=0;}break;}//是闰年的情况else{if(d+1<29)d=d+2;else if(d+1==29){m++;d=1;}else if (d==29) {m++;d=2;}else{printf ("输入日期错误,请注意闰年2月的天数!!\n"); flag=0;}break;}}}//最后根据日期格式是否错误决定是否输出后天的日期if(flag){printf("输入日期的隔一天的日期是%d-%d-%d\n",y,m,d);}}void main(){int y,m,d;printf("请输入日期,注意年月日之间用空格隔开!\n\n");scanf("%d%d%d",&y,&m,&d);NextTwoDate(y,m,d);system("pause");}四、实验步骤:(1)调试上面的程序,使其能运行。

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

《软件测试技术》
实验报告
实验二测试用例设计与自动化测试
专业:
班级:
学号:
姓名:
完成时间:2020年月日
实验二测试用例设计与自动化测试(4学时)
实验类别:综合性实验
实验目的:
1、掌握QTP进行功能自动化测试。

2、掌握LoaderRunner进行性能自动化测试。

3、掌握其他自动化测试工具。

4、掌握编写测试报告方法。

实验内容:
实验课前准备一个系统,选择QTP进行功能自动化测试或选择Loadrunner进行性能自动化测试。

实验步骤
1、拟定测试计划。

2、撰写测试方案。

3、设计测试用例。

4、录制或编写脚本。

5、执行自动化测试。

6、填写测试报告。

7、分析测试结果。

以下为学生填写报告内容(注意排版格式,间距根据实际调整)
1、测试计划(包括被测对象介绍)
2、测试方案(包括采用测试工具)
3、测试用例
4、脚本录制或编写(抓图)
5、自动化测试抓图(根据需要抓图,体现自动化测试即可)
6、测试结果分析
7、实验总结。

相关文档
最新文档