黑盒测试软件测试实验报告2

合集下载

黑盒测试实验报告

黑盒测试实验报告

黑盒测试实验报告
1. 引言
黑盒测试是软件测试中常用的一种测试方法,它不需要了解被测试系统的内部结构和实现细节,只通过输入和输出来评估系统的正确性和健壮性。

本实验通过对一个示例系统进行黑盒测试,以评估其功能的完整性和安全性。

2. 实验目标
本次实验的主要目标是对示例系统进行黑盒测试,发现其中存在的功能缺陷和安全漏洞,并给出相应的解决方案。

具体实验目标包括:
- 确定需求和功能规格说明进行黑盒测试;
- 根据功能规格说明设计黑盒测试用例;
- 执行黑盒测试用例并记录测试结果;
- 分析测试结果,发现潜在的功能缺陷和安全漏洞;
- 提出相应的解决方案和改进建议。

3. 实验环境
本次实验使用的环境如下:
- 操作系统:Windows 10
- 开发工具:Eclipse
- 测试工具:JUnit
4. 测试需求和功能规格说明
根据实验要求,我们对示例系统的功能进行了分析,确定了以
下需求和功能规格说明:
1) 用户注册功能:允许用户进行账号注册,提供用户名、密码
和邮箱等信息,注册成功后可以登录系统。

2) 用户登录功能:已注册用户可以通过输入正确的用户名和密
码登录系统。

3) 查看个人信息功能:登录后,用户可以查看自己的个人信息,包括用户名、邮箱等。

黑盒测试技术实验报告(最终5篇)

黑盒测试技术实验报告(最终5篇)

黑盒测试技术实验报告(最终5篇)第一篇:黑盒测试技术实验报告黑盒测试技术—三角形问题实验报告一、问题描述输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型并输出(等边三角形、等腰三角形、一般三角形),如果不构成三角形输出不能构成三角形。

要求:(1)输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

(2)容错处理:输入空值的提示;输入的值满足类型的提示;(3)不限制开发环境,不限制开发语言;(4)尽可能不对自己的程序进行测试设计。

(5)请分别采用边界值分析法、等价类分析法、决策表分析法、基于场景分析法设计测试用例;(6)正文格式(除源代码用小五号单倍行距),其他行距固定值 20,字号小四。

二、程序主要源代码(标注:测试的源代码是哪位同学(学号姓名)编写的。

)三、程序界面(截图)四、设计测试用例1.用边界值测试方法设计测试用例用边界值分析法设计测试用例,按照下列步骤进行:((1)分析各变量取值三角形三条边的取值范围都是1-200,所以边长A 的边界点为 1 和 200,边长 B的边界点为 1 和 200,边长 C 的边界点为 1 和 200。

((2)测试用例数输入条件边界值测试数据 A 1,200 0,1,2,199,200,201 B 1,200 0,1,2,199,200,201 C 1,200 0,1,2,199,200,201设计测试用例(给出所有测试用例)三角形问题的测试用例测试用例编号输入数据预期输出测试结果 a b c 1 0 100 100 边长 A 不合法边长 A 不合法1 100 100 等腰三角形等腰三角形 3 2 100 100 等腰三角形等腰三角形 4 199 100 100 等腰三角形等腰三角形 5 200 100 100 不是三角形不是三角形 6 201 100 100 边长 A 不合法边长 A 不合法100 0 100 边长 B 不合法边长 B 不合法100 1 100 等腰三角形等腰三角形 9 100 2 100 等腰三角形等腰三角形 10 100 199 100 等腰三角形等腰三角形 11 100 200 100 不是三角形不是三角形 12 100 201 100 边长 B 不合法边长 B 不合法100 100 0 边长 C 不合法边长 C 不合法100 100 1 等腰三角形等腰三角形 15 100 100 2 等腰三角形等腰三角形 16 100 100 199 等腰三角形等腰三角形 17 100 100 200 不是三角形不是三角形181****0201边长 C 不合法边长 C 不合法2.用等价类测试方法设计测试用例((1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:条件:1<=边长 A<=200,1<=边长 B<=200,1<=边长 C<=200 隐含条件:A输入条件有效等价类无效等价类是否是三角形1.1<=A<=2002.1<=B<=2003.1<=C<=2004.A200 8.B<1 || B>200 9.C<1 ||C>200 10.A>=B+C 11.B>=A+C 12.C>=A+B 等腰三角形13.A=B&&B!=C 14.A=C&&C!=B 15.B=C&&C!=A 16.A!=B&&A!=C&&B!=C 等边三角形17.A=B=C 18.A!=B 19.A!=C 20.B!=C(3)设计测试用例,覆盖上表中的等价类,如表1-3 表所示。

实验二黑盒测试

实验二黑盒测试

实验二黑盒测试实验二黑盒测试实验目的1、掌握黑盒测试的基础知识,了解黑盒测试又叫功能性测试,它检查软件的功能是否符合规格说明;2、掌握黑盒测试的检查内容及测试目的;3、掌握黑盒测试的2种基本测试方法:等价类划分方法、边界值分析方法;预习与实验要求1、预习实验指导书及教材的有关内容,理解黑盒测试;2、掌握等价类划分、边界值分析方法,并能设计出测试用例;3、对具体软件,能分别使用等价类划分、边界值测试方法设计测试用例,并实施测试、分析测试结果。

4、实验过程中服从安排,与小组成员合作完成实验。

实验设备与器材1、硬件:P4以上计算机,512M内存以上,2G以上空闲硬盘空间2、软件:Windows操作系统、c或java程序设计软件、office 系列软件实验原理1、黑盒测试的目的和检查内容;2、等价类划分方法和边界值分析方法;3、根据黑盒测试方法设计测试用例及实施测试。

实验内容1、三角形问题接受三个整数a、b、c作为输入,用做三角形的边。

整数a、b、c 必须满足以下条件:C1: 1≤a≤200 C4: a<b+cC2: 1≤b≤200 C5: b<a+cC3: 1≤c≤200 C6: c<a+b程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。

如果输入值没有满足这些条件中的任何一个,则程序会通过输出信息来进行通知,例如,“b的取值不在允许取值的范围内。

”如果a、b和c 取值满足c1、c2和c3,则给出以下四种相互排斥输出中的一个:1、如果三角形等边,则程序的输出是等边三角形。

2、如果恰好有两条边相等,则程序的输出是等腰三角形。

3、如果没有两条边相等,则程序输出的是不等边三角形。

4、如果c4、c5和c6中有一个条件不满足,则程序输出的是非三角形。

对该软件进行以下测试工作:1)按照弱一般等价类测试方法设计测试用例,实施测试并分析测试结果2)按照强一般等价类测试方法设计测试用例,实施测试并分析测试结果;3)按照弱健壮等价类测试方法设计测试用例,实施测试并分析测试结果;4)按照强健壮等价类测试方法设计测试用例,实施测试并分析测试结果;2、使用NextDate函数进行边界值分析方法测试。

软件测试实验报告(二)

软件测试实验报告(二)

软件测试实验报告(二)引言概述:
本文是关于软件测试实验报告(二)的详细描述。

在本实验中,我们对某个软件进行了深入测试,以评估其功能和性能是否符合要求。

通过以下五个大点的阐述,我们将介绍实验的背景、测试策略、测试环境、测试方法和测试结果,以及总结本次实验的重点。

正文:
一、实验背景
1. 介绍被测试软件的概况和功能模块
2. 分析被测试软件的需求和设计文档
3. 确定测试的目标和范围
二、测试策略
1. 确定测试目标和测试用例设计方法
2. 制定测试计划和测试进度安排
3. 探讨测试资源分配和团队协作方式
三、测试环境
1. 配置实验中所需的硬件和软件环境
2. 搭建测试环境的步骤和注意事项
3. 确保测试环境的稳定性和安全性
四、测试方法
1. 开展功能测试,包括输入验证和输出正确性检查等
2. 进行性能测试,涵盖响应时间和负载测试等
3. 展开安全性测试,包括身份验证和数据加密等
五、测试结果
1. 针对每个测试方法,列举测试结果和问题发现
2. 总结测试结果的优劣及改进措施
3. 分析测试结果与需求文档的符合度
总结:
通过本次实验,我们深入了解了软件测试的整个流程,从实验背景到测试结果的分析,都为我们提供了宝贵的经验和教训。

在测试策略中,我们明确了测试目标和测试用例的设计方法,保证了测试的可靠性。

在测试环境方面,我们搭建了稳定安全的测试环境,为后续的测试工作提供了良好的基础。

在测试方法中,我们有效地使用了各种测试手段,发现了软件中存在的问题。

最后,通过对测试结果的分析,我们总结了改进措施并提出了下一步的工作计划。

实验二 黑盒测试(判定表法)

实验二 黑盒测试(判定表法)

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

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

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

所有的动作桩:(1)、年份超过界限,请重新输入a1(2)、月份超过界限,请重新输入a2(3)、日期超过界限,请重新输入a3(4)、本月为二月,请重新输入日期a4(5)、month+1 and day=1 a5(6)、month+1 and day=2 a6(7)、day=day+2 a7(8)、year++ and month=1and day=1 a8(9)、year++ and month=1and day=2 a9 (9)、输入非法a10 (2) 画出简化后的决策表,设计测试用例。

实验的决策表:条件桩:年份越界:Y1月份越界M1日期越界D1闰年:Y2平年:Y3月份二月:M2月份为十二月:M3月份为30天每月:M4月份为31天非十二月:M5日期小于27:D7日期为27:D2日期为28:D3日期为29:D4日期为30:D5日期为31:D6实验测试用例:测试用例:(3)执行测试用例,进行测试记录和缺陷统计。

实验测试记录的部分效果:缺陷报告书:缺陷统计:总过19组数据,其中10组出现错误!。

软件测试2_黑盒测试 (下)

软件测试2_黑盒测试 (下)
功率大于50马力吗 维修记录不全吗 运行超过10年吗

举例:维修机器问题(续)
(3)填入条件项;
1 2
Y Y N
3
Y N Y
4
Y N N
5
N Y Y
6
N Y N
7
N N Y
8
N N N
功率大于50马吗?
Y Y Y
条 维修记录不全吗? 件
运行超过10年吗?
动 进行优先处理 作 作其他处理

利用集合的笛卡尔积计算条件项的取值
举例:维修机器问题(续)
(4)填入动作项;
1 2 Y Y N 3 Y N Y 4 Y N N 5 N Y Y 6 N Y N 7 N N Y 8 N N N
功率大于50马力吗?
Y Y Y
条 维修记录不全吗? 件 动 进行优先处理 作 作其他处理

运行超过10年吗?








1,2合并,5,7合并,6,8合并
举例:维修机器问题(续)
(5)化简;
(1) 功率大于50马力吗? Y Y — (2) Y N Y (3) Y N N (4) N — Y (5) N — N
条 维修记录不全吗? 件
动 作 作其他处理
进行优先处理
运行超过10年吗?



基于判定表的测试
根据输入输出绘制 判定表;
设计测试用例覆盖 判定表中每条规则;
条件桩(Condition Stub )
列出问题的所有条件
动作桩(Action Stub )
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值

黑盒测试实验报告

黑盒测试实验报告

实验一:黑盒软件测试一、实验目的通过简单程序黑盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。

二、实验内容背景:被测测试程序功能:计算被输入日期是星期几;程序定义:已知公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几;测试环境:Windows 2000、Dev C++;说明:因程序简单,因此未使用测试软件,均为手工输入,得到输出进行测试。

为简单起见,不考虑公元前的日期。

程序说明:A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)(1)分析各种输入情况,结合程序输出结果,进行等价类划分,并给出详细测试用例;(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;(3)决策表测试法;①列出输入变量month、 day、 year的有效等价类;(条件桩)②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)③画出决策表(简化);④根据决策表,给出详细测试用例。

三、实验要求(1)根据题目要求编写测试用例(2)实现测试用例的黑盒测试(3)撰写实验测试报告(4)试验心得总结四、实验测试过程1、对测试用例进行等价类划分。

等价类划分表:2、选择测试用例,使之覆盖所有等价类情况。

测试用例表:3、对测试用例进行边界值分析。

边界值分析表(1<=year<=2050):五、实验结果及结论结果分析:原因:C1:year为闰年C2:month为1、3、5、7、8、10、12 C3:month为4、6、9、11C4:month为2C5:1<=day<=27C6:day=28C7:day=29C8:day=30C9:day=31结果:E1:输出今天是星期几E2:提示:输入不满足要求决策表:结论:程序无逻辑性等大的错误,但需要进一步完善,如对输入进行限定等。

黑盒测试实验二

黑盒测试实验二

软件测试基础与实践实验报告实验名称:黑盒测试实验二实验地点:机房实验日期:学生姓名:学生学号:一、实验目的(1)能根据待测软件的特点,选择合适的方法对软件进行黑盒测试(功能测试);(2)学习测试用例的书写。

实验1:随机测试VS 黑盒测试VS 白盒测试在游戏引擎开发中,检测物体碰撞是一项重要的基础功能。

为简单起见,我们这里只考虑二维平面空间的情况,并用RectManager 程序判断平面上任意两矩形的相交关系(A:不相交,B:相交:B1:相交为一个区域,B12:包含,B13:完全重合,B2:交点为1 个点,B3:交点为1 条线段),如果相交,则同时给出相交部分的面积。

我们假设二维平面为iphone4 屏幕(640*960 分辨率),且所有矩形的边都与坐标轴平行。

计算机图形学中,通常用左上角和右下角的坐标来表示一个矩形。

(1)请编写一简单程序,随机生成两个矩形的数据,请用这些随机数据对RectManager 进行测试。

提示:a) 使用随机函数生成大量测试用例(如10 万个随机测试用例);b) 注意随机测试用例产生的范围应比屏幕范围稍微大一点。

屏幕范围:x 取值范围[0-639],y 取值范围[0-959];c) 在测试用例生成程序中,同时调用RectManager 中的方法直接驱动测试自动执行;d) 对大量的随机测试进行统计,分析这些随机测试用例对两矩形相交的各种关系的覆盖情况(统计上的命中率);(2)请用黑盒测试方法,设计相应的测试用例来测试程序;提示:程序运行命令行:java -jar RectManager.jar(3)请分析RectManager 的实现源代码,利用基本路径测试方法,设计相应的测试用例来测试程序;只要求针对solve()方法进行测试。

(4)在上述实验的基础上分析三种测试方法发现缺陷的能力上有何差别。

(1)通过编写程序测试,代码如下:public class test{float area;//Recode areaint nFlag; //recode the relation of two rectanglepublic static void main(String[] args){int leftA,leftB,rightA,rightB,topA,topB,bottomA,bottomB;int[]result = {0,0,0,0,0,0,0,0};Random random = new Random();for(int i = 0;i < 100000;i++){leftA = Math.abs(random.nextInt())%640;leftB = Math.abs(random.nextInt())%640;rightA = Math.abs(random.nextInt())%640+leftA;rightB = Math.abs(random.nextInt())%640+leftB;topA = Math.abs(random.nextInt())%960;topB = Math.abs(random.nextInt())%960;bottomA = Math.abs(random.nextInt())%960+topA;bottomB = Math.abs(random.nextInt())%960+topB;if (!(leftA>=0 && rightA<960)|| !(topA>=0 && bottomA<640) ||!(rightA>=leftA) || !(bottomA>=topA)){System.out.println("Input error in Rectangle A");result[6]++;continue;}if (!(leftB>=0 && rightB<960)|| !(topB>=0 && bottomB<640) ||!(rightB>=leftB) || !(bottomB>=topB)){System.out.println("Input error in Rectangle B");result[7]++;continue; }统计结果:(2)等价类划分测试用例(双击打开和编辑)序号 A.left A.rightA.topA.bottomB.leftB.rightB.topB.bottom期望输出实际输出1-155********A输入错误A输入错误26505510510510A输入错误A输入错误355510510510A输入错误A输入错误45-1510510510A输入错误A输入错误55650510510510A输入错误A输入错误6510-15510510A输入错误A输入错误75106505510510A输入错误A输入错误851055510510A输入错误A输入错误95105-1510510A输入错误A输入错误105105650510510A输入错误A输入错误11510510-15510B输入错误B输入错误125105106505510B输入错误B输入错误1351051055510B输入错误B输入错误145105105-1510B输入错误B输入错误155105105650510B输入错误B输入错误16510510510-15B输入错误B输入错误175105105106505B输入错误B输入错误1851051051055B输入错误B输入错误195105105105-1B输入错误B输入错误205105105105650B输入错误B输入错误2151051015201520不相交不相交22510510712712相交相交235105106969包含包含2469695105650包含包含25510510510510重合重合2651051010151015相交一个点相交一个点275105101015510相交一条线相交一条线285105105101015相交一条线相交一条线(3)已在visio中画好,双击可打开编辑Starint nMaxLeftint nMaxTopint nMinRig ht int nMinBot tomif (A.left >= B.left)nMaxLef t = A.left nMaxLef t = B.leftif (A.top >= B.topnMaxTop = A.topnMaxTop = B.topif (A.right <= B.right)nMinRig ht = A.rightnMinRig ht = B.rightif (A.bottom<= B.bottom)nMinBot tom = A.botto mnMinBot tom = B.botto m if ((nMaxLeft>nMinRight)|| (nMaxTop> nMinBotto m))nFlag=0nFlag = 1; area = (nMinRig ht - nMaxLef t + 1 ) * (nMinBo ttom - nMaxTop + 1)if ((B.left==A.left) && (B.right==A .right) && (B.top==A.t op) && (B.bottom==A.bottom))nFlag=3else if (((nMaxLeft ==A.left) && (nMinRight ==A.right) && (nMaxTop==A.top) && (nMinBotto m==A.bott om)) ||((nMaxLe ft==B.left) && (nMinRight ==B.right) && (nMaxTop==B.top) && (nMinBotto m==B.bott om)))nFlag=2else if ((nMaxLeft ==nMinRig ht) && (nMaxTop== nMinBotto m))nFlag=4else if (((nMaxLeft ==nMinRig ht) && (nMaxTop< nMinBottom))nFlag=5END123Y4567891011121314151618171920212223242526272829303132333435363738394041NY NY NY NN YYNY Y Y YNNNY Y Y N NNNYYYYNNN NYY NNYY NNYYNNNY V(g)=24+1=25L1:1-2-3-4-6-7-9-10-12-13-15-17-41L2:1-2-3-5-6-7-9-10-12-13-15-17-41L3:1-2-3-4-6-8-9-10-12-13-15-17-41L4:1-2-3-4-6-7-9-11-12-13-15-17-41L5:1-2-3-4-6-7-9-10-12-14-15-17-41L6:1-2-3-4-6-7-9-10-12-13-15-16-17-41L7:1-2-3-4-6-7-9-10-12-13-15-16-18-20-21-22-23-41L8:1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-32-41L9:1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-24-25-26-27-32-41L10:1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-21-24-26-27-32-41L11: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-21-22-24-26-27-32-41L12: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-31-32-41L13: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-28-29-30-31-32-41L14: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-28-29-30-31-32-41L15:1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-28-29-30-31-32-41L16: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-32-41L17: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-33-34-35-41L18: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-33-34-35-41L19: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-31-33-34-35-41L20: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-39-30-31-32-41L21: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-40-41L22: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-38-39-40-41L23: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-38-41L24: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-38-39-41L25: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-36-37-40-41测试用例:三、实验体会很多BUG都隐藏在随机的测试过程当中,黑盒和白盒测试相辅相成.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
else if(month==2)
{
if(year%400==0 || year%4==0)
maxday=29;
else
maxday=28;
}
else
maxday=31;
(4)时间<0
(5)时间>168
(6)输入的时间类型不是int型
测试用例
测试用例编号
输入
输出
覆盖等价类
1
30
300
(1)
2
45
570
(2)
3
55
1400
(3)
4
-10
input error
(4)
5
A
input error
(6)
6
170
input error
(5)
边界值分析
测试用例编号
输入
输出
1
0
0
2
printf("请输入日份:(1~31)");
scanf("%d",&day);
if(day<1 || day>maxday)
{
printf("输入错误!请从新输入!\n");
printf("请输入日份:(1~31)");
scanf("%d",&day);
}
if(month==maxmonth && day==maxday)
1
20
3
39
780
4
40
800
5
41
830
6
49
1070
7
50
1100
8
51
1160
9
167
8120
10
168
8180
2.
(1)构造决策表
M1={月份:30天/月}
M2={月份:31天/月,12月除外}
M3={月份:12月}
M4={月份:2月}
D1={日期:1<=日<=27}
D2={日期:日=28}
软件测试与质量课程实验报告
实验2:黑盒测试法实验
姓名
院系
学号
任课教师
实验指导教师
实验地点
实验时间
实验目的
系统地学习和理解黑盒测试的基本概念、原理
熟悉和掌握等价类划分法,边界值分析法和决策表方法
掌握测试用例编写要点
实验内容
1.编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。
D3={日期:日=29}
D4={日期:日=30}
D5={日期:日=31}
Y1={年:闰年}
Y2={年:平年}
条件桩:
C1:月份在{M1,M2,M3,M4}中之一
C2:日期在{D1,D2,D3,D4,D5}中之一
C3:年在{Y1,Y2}中之一
动作桩:
A1:不可能
A2:日期增一
A3:日期复位(置一)
A4:月份增一
2013
2013年12月13/29/30/31日
15
12
31
2013
2014年1月1日
16
2
14
2013
2013年2月15日
17
2
28
2004
2004年2月29日
18
2
28
2001
2001年3月1日
19
2
29
2005
2005年3月1日
20
2
29
2001
输入错误,请重新输入
21,22
2
30/31
2001
要求:
输入:三个参数(年,月,日)
输出:如能正确计算,计算出它的下一天,
否则,输出相应的错误信息。
请利用决策表法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。
实验结果
1.等价类划分
输入条件
有效等价类
无效等价类
输入工作时间
(1)时间>=0且时间<40;
(2)时间>=40且时间<=50;
(3)时间>50且时间<=168
17
18
19
20
21
22
C1:月
M3
M3
M3
M3
M3
M4
M4
M4
M4
M4
M4
M4
C2:日
D1
D2
D3
D4
D5
D1
D2
D2
D3
D3
D4
D5
C3:年
Y1
Y2
Y1
Y2
A1:不可能



A2日期增一






A3日期复位(置一)



A4月份增一


A5月份复位(置一)

A6年增一

测试用例表
用例ID
月份
A5:月份复位(置一)
A6:年增一
决策表
1
2
3
4
5
6
7
8
9
10
C1:月
M1
M1
M1
M1
M1
M2
M2
M2

M2
C2:日
D1
D2
D3
D4
D5
D1
D2
D3
D4
D5
C3:年
A1:不可能

A2日期增一







A3日期复位(置一)


A4月份增一


A5月份复位(置一)
A6年增一
11
12
13
14
15
16
void main()
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
if(year<1000 || year>3000)
{
printf("输入错误!请从新输入!\n");
输入错误,请重新输入
扣分原因(有扣分时填写)
扣分
0
日期:
缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1–10分
其他情况:扣分<=5分总扣分不能大于10分
参考代码如下:
(1)程序参考答案:
#include <iostream.h>
double main()
{
int hours;
double payment,wage;
{
year=year+1;
month=1;
day=1;
}
else if(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day);
}
日期

预期输出
1--3
6
15/28/29
2013
2013年4月16/29/30日
4
6
30
2013
2013年7月1日
5
6
31
2013
输入错误,请重新输入
6--9
3
15/28/29/30
2013
2013年3月16/29/30/31日
10
3
31
2013
2013年4月1日
11-14
12
12/28/29/30
else if (hours>50)
payment=40*wage+10*1.5*wage+(hours-50)*3*wage;
cout<<"The final payment are:"<<payment;
return payment;}
else cout<<"input error";
}
(2)#include<stdio.h>
wage=20;
cout<<"please input hours:";
cin>>hours;
if(hours>=0&&hours<=168){
if (hours<40)
payment=hours*wage ;
else if ((hours>=40) && (hours<=50))
payment=40*wage+(hours-40)*1.5*wage;
相关文档
最新文档