软件考试NextDate函数决策表考试法实验报告

合集下载

软件测试-NextDate函数

软件测试-NextDate函数

边界值分析法
输入 测试用例 month Test Case 1 Test Case 2 Test Case 3 Test Case 4 Test Case 5 Test Case 6 Test Case 7 Test Case 8 Test Case 9 Test Case 10 Test Case 11 Test Case 12 Test Case 13 Test Case 14 Test Case 15 Test Case 16 Test Case 17 Test Case 18 Test Case 19 Test Case 20 -1 0 1 2 11 12 13 6 6 6 6 6 6 6 6 6 6 6 6 6 day 15 15 15 15 15 15 15 -1 0 1 2 30 31 32 15 15 15 15 15 15 year 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 1911 1912 1913 2049 2050 2051 month不在1~12中 month不在1~12中 2000年1月16日 2000年2月16日 2000年11月16日 2000年12月16日 month不在1~12中 day不在1~31中 day不在1~31中 2000年6月2日 2000年6月3日 2000年7月1日 不可能的输入日期 day不在1~31中 year不在1912~2050中 1912年6月16日 1913年6月16日 2049年6月16日 2050年6月16日 year不在1912~2050中 期望输出
返回
Test Case 5
Test Case 6 Test Case 7 Test Case 8

软件测试NextDate函数决策表测试法实验报告

软件测试NextDate函数决策表测试法实验报告

一、实验目的:掌握黑盒测试中的决策表测试法,并对被测程序设计测试用例。

二、实验环境操作系统:Windows XP + SP2 /win7三、实验内容1、编写一个NextDate函数。

2、掌握黑盒测试中的决策表测试法的基本步骤。

3、使用决策表法设计测试用例,对编写的函数实施测试,总结分析测试结果。

四、实验步骤1、编写一个NextDate函数。

(C语言、C++)2、根据黑盒测试的决策表测试法设计测试用例。

3、根据测试用例实施测试,并记录测试结果。

五、实验代码#include <iostream>using namespace std;int a,b,c,y,m,d;//判断是否为闰年bool Feb(int y){if((2060-y)%4==0)return 1;elsereturn 0;}//年份的累加int NextYear(int y){a=y+1;if(a>2060){cout<<"下一个日期已经超出了范围."<<"/n";return 1;}elsereturn a;}//月份的累加int NextMonth(int m){b=m+1;if(b==13){b=1;NextYear(y);}return b;}//天数的累加int NextDay(int d){c=d+1;//大月满32天月份加1if(c==32){if(m==1|m==3|m==5|m==7|m==8|m==10|m==12){c=1;NextMonth(m);}}//小月满31天月份加1if(c==31){if(m==4|m==6|m==9|m==11){c=1;NextMonth(m);}}//若为闰年,2月满30天,月份加1if(c==30){if(Feb(y)&&m==2){c=1;b=3;}}//若不是闰年,2月满29天,月份加1if(c==29){if(!Feb(y)&&m==2){c=1;b=3;}}return c;}//NextDate函数int NextDate ( int y, int m, int d){if (y<1900|y>2060|m<1|m>12|d<1|d>31){cout<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}if(m==4|m==6|m==9|m==11&&d==31) {cout<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}if(Feb(y)&&m==2&&d>29) {cout<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}if(!Feb(y)&&m==2&&d>28){cout<<"输入不可能的日期, 请输入正确的日期"<<"\n"; return 1;}else{NextDay(d);cout<<"Next date is"<<a<<"."<<b<<"."<<c<<"\n"<<"\n"; return 0;}}//main函数int main(){while(1){cout << "请输入正确格式的日期."<<"\n";cout << "年份范围是1960-2060"<<"\n";cout<<"年"<<"\n";cin >>y;cout<<"月"<<"\n";cin>>m;cout<<"日"<<"\n";cin>>d;a=y;b=m;c=d;NextDate ( y, m, d);}return 0;}六、测试用例表NxetDate函数求解给定某个日期的下一个日期的动作桩如下:变量day加1操作;变量day复位操作;变量month加1操作;变量month复位操作;变量year加1操作NxetDate函数的求解关键是日和月的问题,所以可以在下面的条件桩的基础上建立决策表M1={month:month有30天};M2={month:month有31天,12月除外};M3={month:month是12月};M4={month:month是2月};D1={day:1=<day<=27};D2={day:day=28};D3={day:day=29};D4={day:day=30};D5={day:day=31};Y1={year:year是闰年};Y2={year:year不是闰年}NxetDate函数决策表NxetDate函数的测试用例组测试用例month day year 预期输出Test Case 1~3 9 16 2001 2001-9-17 Test Case 4 9 30 2001 2001-10-01 Test Case 5 9 31 2001 不可能的输入日期Test Case 6~9 1 16 2004 2004-1-17 Test Case 10 1 31 2001 2001-2-01 Test Case 11~14 12 16 2004 2004-12-16 Test Case 15 12 31 2001 2002-1-01 Test Case 16 16 2001 2001-1-17 Test Case 17 2 28 2004 2004-2-29 Test Case 18 2 28 2001 2001-3-01 Test Case 19 2 29 2004 2004-3-1 Test Case 20 2 29 2001 不可能的输入日期Test Case 21~22 2 30 2004 不可能的输入日期七、测试用例执行结果1、Test Case 1~33、Test Case 54、Test Case 6~95、Test Case 106、Test Case 11~148、Test Case 169、Test Case 1710、Test Case 1811、Test Case 1913、Test Case 21~22八、实验总结1、通过本次实验,学会编写一个NextDate函数。

软件测试NextDate函数测试用例详解

软件测试NextDate函数测试用例详解
12
15
2007
2007年12月16日
Test Case 15
12
31
2007
2008年1月1日
Test Case 16
2
15
2007
2007年2月16日
Test Case 17
2
28
2000
2000年2月29日
Test Case 18
2
28
2007
2007年3月1日
Test Case 19
2
29
动作:
A1: 不可能



A2: day加1





A3: day复位



A4: month加1


A5: month复位

A6:year加1

决策表法
表5-8 简化的NextDate函数决策表
选项 规则
1, 2, 3
4
5
6, 7, 8, 9
10
11, 12, 13, 14
15
等价类划分法——以输入域划分等价类
等价类划分法——以输入域划分等价类
改进等价类划分测试NextDate函数如表5-5所示。 表5-5 改进等价类划分法测试用例
测试用例
输入
期望输出
month
day
year
Test Case 1
6
30
2007
2007年7月1日
Test Case 2
8
31
2007
2007年9月1日
弱强健等价类测试 弱强健等价类测试中的有效测试用例使用每个有效等价类中的一个值。弱强健等价类测试中的无效测试用例那么只包含一个无效值,其他都是有效值,即含有单缺陷假设。如表5-3所示。

NEXTDATE的决策表示例(软件测试技术实验报告)

NEXTDATE的决策表示例(软件测试技术实验报告)

NextDate函数测试用例选择NextDate函数,是因为它可以说明输入定义域中的依赖性问题,这使得这个例子成为基于决策表测试的一个完美例子,因为决策表可以突出这种依赖关系。

从前面对等价类测试的分析我们知道,等价类分析假设所有的变量都是独立的。

如果变量确实是独立的,则使用类的笛卡尔积是有意义的。

如果变量之间在输入定义域中存在逻辑依赖关系,则这些依赖关系在笛卡尔积中就会丢失(说抑制可能更确切)。

决策表格式通过使用“不可能动作”概念表示条件的不可能组合,使我们能够强调这种依赖关系。

下面将对NextDate函数的决策表描述做三次尝试。

第一次尝试标识合适的条件和动作,假设首先从分析等价类集合开始。

M1= {月份:每月有30天};M2 = {月份:每月有31天};M3二{月份:此月是2月}D1 = {日期:1<0期W 28}; D2 = {日期:日期=29}; D3 = {日期=30}; D4 = {日期=31}Y1 = {年:年是闰年}; Y2 = {年:年不是闰年}如果我们希望突出不可能的组合,则可以建立具有以下条件和动作的有限项决策表。

(请注意,年变量对应的等价类收缩为下表的一个条件。

)有2处条规则的第一袂尝试这个决策表会有256条规则,其中很多是不可能的。

如果要显示为什么这些规则是不可能的,可将动作修改为:al:月份中的天数太多;a2:不能出现在非闰年中;a3:计算NextDate.第二次尝试如果我们将注意力集中到NextDate函数的闰年问题上,则可以修改已有的等价类集合。

为了说明另一种决策表表示方法,这一次采用扩展项决策表开发,并更仔细地研究动作桩。

在构建扩展项决策表时,必须保证等价类构成输入定义域的真划分。

如果规则项之间存在“重叠”,则会存在冗余情况,使得多个规则都能够满足。

这里,Y2是一组1812〜2012之间的年份,并除以4, 2000除外。

M1= {月份:每月有30天}; M2 = {月份:每月有31天}; M3二{月份:此月是2月}D1 = {日期:1<0期W 28}; D2 = {日期:日期=29}; D3 = {日期=30}; D4 = {日期=31}Y1 = {年:年=2000}; Y2 = {年:年是闰年}; Y3 = {年:年是平年}从某种意义上说,我们采用的是“灰盒”技术,因为更仔细地研究了NextDate 函数。

软件测试:NextDate函数,函数返回输入日期后面的那个日期

软件测试:NextDate函数,函数返回输入日期后面的那个日期

软件测试:NextDate函数,函数返回输⼊⽇期后⾯的那个⽇期package Yr;import java.util.Scanner;public class MyDate {public static String getTomorrowday(String Today){ String Tow = "";String year = "", month = "", day = "";int y = 0, m = 0, d = 0;year = Today.substring(0, 4);month = Today.substring(4, 6);day = Today.substring(6, 8);y = Integer.parseInt(year);m = Integer.parseInt(month);d = Integer.parseInt(day);if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10) {if (d<31){d =d+1; }else if(d==31){d=1;m=m+1;}}if (m == 4 || m == 6 || m == 9|| m == 11) {if(d<30){d=d+1;}else if(d==30)d=1;m=m+1;}if(m==12){if(d<31){d=d+1;m=1;if (y==2012){System.out.print("2012 is over!");}else y=y+1;}}if(m==2){if (d<28){d=d+1;}else if(d==28){if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) // 如果是闰年{d=29;}else if ((y % 4 != 0 && y % 100 == 0) || (y % 400 != 0)){d=1;m=3;} else if(d==29){d=1;m=3;}else if(d!=29){ System.out.print("⼆⽉不存在29号");}}}year = String.valueOf(y); if (m < 10) month = "0" + String.valueOf(m); else month = String.valueOf(m);if (d < 10) day = "0" + String.valueOf(d);else day = String.valueOf(d); Tow = year + month + day;return Tow; }public static void main(String args[]){ //String tomorrowday = "20090505";Scanner s=new Scanner(System.in);System.out.print("按格式(20090905)请输⼊今天的⽇期:");String tomorrowday=s.next();System.out.println("今天是" + tomorrowday);tomorrowday = getTomorrowday(tomorrowday);System.out.println("明天是" + tomorrowday); } }。

next-date-系统测试报告

next-date-系统测试报告

NextDate软件项目系统测试报告2016/04/04目录1.引言 (2)2.测试参考文档 (2)3.测试设计简介 (2)3.1测试用例设计 (2)3.1.1黑盒测试用例 (2)3.1.2白盒测试用例 (2)3.2测试环境与配置 (2)3.3测试方法 (3)4.测试情况 (3)4.1测试执行情况 (3)4.1.1缺陷汇总和分析 (5)4.1.2缺陷汇总和分析 (6)4.2测试覆盖 (8)4.3缺陷的统计 (8)4.3.1缺陷汇总和分析 (8)4.3.2具体的测试缺陷 (8)5.测试结论和建议 (8)5.1结论 (8)1.引言本测试报告为COMMISION计算系统的测试报告,目的在于总结测试阶段的测试以及分析测试结果,检验系统是否符合需求,预期读者为项目布置者。

主要通过软件测试技术测试系统是否可行,大致包括以下几个方面:1.提交组件数量信息的时候,是否能够将信息存入以备日后查用2.输入信息有误时候,能否提示错误3.当信息修改后看修改后的信息能不能被系统接受并保存到数据库4.查询信息时候,能不能准确查找信息5.业务逻辑是否正确,且能产生无误的输出报告2.测试参考文档暂无3.测试设计简介3.1 测试用例设计3.1.1黑盒测试用例黑盒测试中主要采用如下几种测试用例的设计方法设计测试用例,基本可以满足系统测试需要:(1)边界值测试用例(2)特殊值测试用例(3)等价类测试用例(4)消极测试用例3.1.2白盒测试用例白盒测试中主要采用如下几种测试用例的设计方法设计测试用例,基本可以满足系统测试需要,并覆盖程序所有路径:(1)基本路径测试(2)自下而上测试3.2测试环境与配置测试环境:客户端:web浏览器(chrome 49.0.2623.110 m)操作系统:windows73.3测试方法本次测试采用白盒测试方法,对系统后台业务逻辑和数据库操作部分进行单元测试;采用黑盒测试方法对系统整体功能进行测试。

其中单元测试工具是jasmine。

NextData函数

NextData函数

NextData函数一、问题描述程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤year ≤2050。

),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。

例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。

请用黑盒测试方法设计测试用例。

二、程序界面计算下一天的程序代码见附录。

三、设计测试用例1. 用边界值测试方法设计测试用例用健壮性测试法设计测试用例,按照下列步骤进行:(1)分析各变量的取值健壮性测试时,各变量分别取:略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略大于最大值。

month:-1,1,2,6,11,12,13;day:-1,1,2,15,30,31,32year:1899,1900,1901,1975,2049,2050,2051;(2)测试用例数有n个变量的程序,其边界值分析会产生6n+1个测试用例。

这里有3个变量,因此会产生19个测试用例。

(3)设计测试用例,见表1-1。

NextDate函数的复杂性来源于两个方面:一是输入域的复杂性(即输入变量之间逻辑关系的复杂性),二是确定闰年的规则。

但是在进行健壮性测试时,没有考虑输入变量之间的逻辑关系,也没有考虑和闰年相关的问题,因此在设计测试用例时存在遗漏问题,比如和判断闰年相关的日期:2008.2.29、1999.2.28等。

表1-1NextDate函数测试用例2. 用基于判定表的方法设计测试用例(1)分析各种输入情况,列出为输入变量month、day、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≤日期≤27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}year变量的有效等价类:Y1 = { year是闰年}Y2 = { year不是闰年}(2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。

白盒测试报告

白盒测试报告
提示请输入时间
正确
输入正确年份
1988
1988请输入月份
1988请输入月份
正确
输入错误年份
1810
年份超限,请重新输
年份超限,请重新输
错误
输入错误年份
2014
年份超限,请重新输
年份超限,请重新输入
错误
输入错误年份
#747
输入有误
#747
错误
输入错误年份
1 0 H
输入有误
1 0 H
错误
输入大月月份
8
请输入日期
1.4
软件测试(第二版)(美)Ron Patton著张小松王钰曹跃译机械工业出版社
测试报告模板原创作者:jerry
2、
2.1
#include <iostream>
using namespace std;
void NextDate(int year,int month,int day);
void main()
请输入日期
正确
输入小月份
9
请输入日期
请输入日期
正确
输入闰月份
2
请输入日期
请输入日期
正确
输入错误月份
0
输入有误
输入有误
错误
输入月错误份
13
输入有误
输入有误
错误
输入正确日期
20
明天是:
明天是:
正确
输入错误日期
0
输入有误,请重新输入
输入有误,请重新输入
错误
输入错误日期
56
输入有误,请重新输入
输入有误,请重新输入
错误
输入正确日期
28
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c=d+1;
//大月满32天月份加1
if(c==32){
if(m==1|m==3|m==5|m==7|m==8|m==10|m==12)
{c=1;
NextMonth(m);}}
//小月满31天月份加1
if(c==31){
if(m==4|m==6|m==9|m==11)
{c=1;
NextMonth(m);}}
a=y+1;
if(a>2060)
{cout<<"下一个日期已经超出了范围."<<"/n";
return 1;}
else
return a;}
//月份的累加
int NextMonth(int m){
b=m+1;
if(b==13){
b=1;
NextYear(y);}
return b;}
//天数的累加
int NextDay(int d){
cout<<"年"<<"\n";
cin >>y;
cout<<"月"<<"\n";
cin>>m;
cout<<"日"<<"\n";
cin>>d;
a=y;
b=m;
c=d;
NextDate ( y, m, d);}
return 0;}
六、测试用例表
NxetDate函数求解给定某个日期的下一个日期的动作桩如下:
M4={month:month是2月};
D1={day:1=<day<=27};
D2={day:day=28};
D3={day:day=29};
D4={day:day=30};
D5={day:day=31};
Y1={year:year是闰年};
Y2={year:year不是闰年}
NxetDate函数决策表
if (y<1900|y>2060|m<1|m>12|d<1|d>31){
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
if(m==4|m==6|m==9|m==11&&d==31) {
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
选项
规则
1,2,3
4
5
6,7
8,9
10
11,12
13,14
0
21,22
条件
C1:month在
M1
M1
M1
M2
M2
M3
M3
M3
M4
M4
M4
M4
M4
C2:day在
D1,D2
D3
D4
D5
D1,D2
D3,D4
D5
D1,D2
D3,D4
D5
D1
D2
D2
D3
D3
D4
D5
C3:year在








Y1
Y2
Y1
三、实验内容
1、编写一个NextDate函数。
2、掌握黑盒测试中的决策表测试法的基本步骤。
3、使用决策表法设计测试用例,对编写的函数实施测试,总结分析测试结果。
4ห้องสมุดไป่ตู้实验步骤
1、编写一个NextDate函数。(C语言、C++)
2、根据黑盒测试的决策表测试法设计测试用例。
3、根据测试用例实施测试,并记录测试结果。
软件测试NextDate函数决策表测试法实验报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
一、实验目的:
掌握黑盒测试中的决策表测试法,并对被测程序设计测试用例。
二、实验环境
操作系统:Windows XP + SP2 /win7
9
30
2001
2001-10-01
Test Case 5
9
31
2001
不可能的输入日期
Test Case 6~9
1
16
2004
2004-1-17
Test Case 10
1
31
2001
2001-2-01
Test Case 11~14
12
16
2004
2004-12-16
Test Case 15
12
31
2001
2002-1-01
Test Case 16
16
2001
2001-1-17
Test Case 17
2
28
2004
2004-2-29
Test Case 18
2
28
2001
2001-3-01
Test Case 19
2
29
2004
2004-3-1
Test Case 20
2
29
2001
不可能的输入日期
Test Case 21~22
cout<<"Next date is"<<a<<"."<<b<<"."<<c<<"\n"<<"\n";
return 0;}}
//main函数
int main()
{while(1){
cout << "请输入正确格式的日期."<<"\n";
cout << "年份范围是1960-2060"<<"\n";
五、实验代码
#include <iostream>
using namespace std;
int a,b,c,y,m,d;
//判断是否为闰年
bool Feb(int y){
if((2060-y)%4==0)
return 1;
else
return 0;}
//年份的累加
int NextYear(int y){
//若为闰年,2月满30天,月份加1
if(c==30){
if(Feb(y)&&m==2){
c=1;
b=3;}}
//若不是闰年,2月满29天,月份加1
if(c==29){
if(!Feb(y)&&m==2){
c=1;
b=3;}}
return c;}
//NextDate函数
int NextDate ( int y, int m, int d){
if(Feb(y)&&m==2&&d>29) {
cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
if(!Feb(y)&&m==2&&d>28)
{cout<<"输入不可能的日期, 请输入正确的日期"<<"\n";
return 1;}
else{
NextDay(d);
Y2

动作
A1:不可能



A2:day加1





A3:day复位





A4:month加1




A5:month复位

A6:year加1

NxetDate函数的测试用例组
测试用例
month
day
year
预期输出
Test Case 1~3
9
16
2001
2001-9-17
Test Case 4
变量day加1操作;
变量day复位操作;
变量month加1操作;
变量month复位操作;
变量year加1操作
NxetDate函数的求解关键是日和月的问题,所以可以在下面的条件桩的基础上建立决策表
M1={month:month有30天};
M2={month:month有31天,12月除外};
M3={month:month是12月};
相关文档
最新文档