《软件测试大作业计算机软件测试_计算机-软件测试.pdf》由会员分享,可在线阅读,更多相关《软件测试大作业计算机软件测试_计算机-软件测试.pdf(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件质量保证与软件测试大作业 基于蔡勒公式星期计算程序 测试报告 专 业 班 级 姓 名 学 号 2011 年 春季 学期 1问题的提出 问题的来源 这次实验一开始打算测试 PreDate 或者计算器,老师在课上告诉我们什么是好程序,要编写好程序,要有好的编程习惯。回想一下我以前上机也是直接打#include就盲目地开始了。在电脑上翻开了以前 C+课上编的一个根据日期计算星期的作业,编的实在太烂了。程序如下:#include void main()int y,m,d,x,i,sum=0;int aa13=0,0,31,60,91,121,152,182,213,244,274,305,335
2、;int bb13=0,0,31,59,90,120,151,181,212,243,273,304,334;couty;coutm;coutd;if(y1|m12)cout输入了非法的日期;;return;/对非法日期的判断 if(m=1|m=3|m=5|m=7|m=8|m=10|m=12)&(d31)return;if(m=4|m=6|m=9|m=11)&(d30)return;if(y%4=0&y%100!=0|y%400=0)&m=2&(d29)return;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就
3、盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 if(m=2)&!(y%4=0&y%100!=0|y%400=0)&(d28)return;for(i=1;iy;i+)
4、/计算公元一年到本日的上一年年底的天数 if(i%4=0&i%100!=0|i%400=0)sum+=366;else sum+=365;if(y%4=0&y%100!=0|y%400=0)sum+=aam;sum+=d;/计算一年到本日的总天数 else sum+=bbm;sum+=d;x=sum%7;if(x!=0)cout输入的日期是星期:xendl;else cout输入的日期是星期日;endl;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业
5、编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日别的问题先不说,光是那两个数组就很糟糕,如果让别人读根本就不能读明白,自己也是费了较大力气才读懂,运行以后发现了好多Bug,根本就不是一个可使用的程序。于是就决定把这个程序重新尽自己的所
6、学,做一个比较好的版本。就有了这个测试作业的选题。星期计算公式蔡勒公式 蔡勒(Zeller)公式,是一个计算星期的公式,给一个日期,就能用这个公式推算出是星期几。但是由于罗马教皇格里高利十三世在1582 年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。将 1582 年 10 月 5 日到 14 日之间的 10 天宣布撤销,继 10 月 4 日之后为 10 月 15 日。因此,蔡勒公式只适合于 1582年 10 月 15 日之后的情形。w=c/4 2c+y+y/4+13*(m+1)/5+d-1 OR:w=y+y/4+c/4-2c+26(m+1)/10+d-1 若要计算的日
7、期是在 1582 年 10 月 4 日或之前,公式则为 w=y+y/4+c/4-2c+13(m+1)/5+d+3 符号意义 w:星期;w 对 7 取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个
8、可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 c:世纪-1(前两位数)y:年(后两位数)m:月(m大于等于 3,小于等于 14,即在蔡勒公式中,某年的 1、2 月要看作上一年的 13、14 月来计算,比如 2003 年 1 月 1 日要看作2002 年的 13 月 1 日来计算)d:日 代表取整,即只要整数部分。后来人们将这一新的历法称为“格里高利历”,简称格里历或公历。软件的功能概述 根据日期计
9、算星期就是用户想知道某一个日期所对应的是星期几,比如用户想知道自己的生日那天是星期几,好安排自己的生日Party。该软件可以实现用户的需求。如果用户输入一个日期,把输入的日期所对应的星期快速输出出来。2星期计算程序的细节 星期计算程序的整体描述及函数之间的关系 软件在一个 C+控制台工程文件里面,如图 2-1 所示。题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让
10、别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 图 2-1 Visual studio 2010中 SoftWareTest工程 星期计算程序的总体结构分析 软件是由包含 main 函数在内的三个函数实现的其中 bool checkDay(int year,int month,int day)专门用于检测所输入的数字日期
11、字符是不是符合逻辑;int dayToWeek(int year,int month,int day)专门用于计算所输入日期所对应的星期;int main()函数,是程序的主函数,它用来接收并初步检测用户的输入,然后调用 checkDay(int year,int month,int day)函数以确保输入的日期是合法的日期,随后调用 int dayToWeek(int year,int month,int day)函数实现计算,同时由于星期日所对应的返回值是 0,题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲
12、目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日故要对其进行单独处理。图 2-2 程序流程图 星期计算程序的 C+实现#include using namespace st
13、d;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适
14、合于年月日bool checkDay(int year,int month,int day)/此函数用于检测所输入的年月日是不 /是一个合乎逻辑的年月日;if(year=0)return false;if(month12)return false;int m=31,0,31,30,31,30,31,31,30,31,30,31;/定义一个月份所对应的天数的数组,2 if(year%4=0&year%100!=0|year%400=0)/月是变化的所以暂时设为 0;m1=29;/是闰年,2月 29天;else m1=28;/是平年;return(day=1)&(day=mmonth-1);/根据
15、月份对应天数的数组判断日 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后
16、为月日因此蔡勒公式只适合于年月日 /是不是合法;int dayToWeek(int year,int month,int day)/该函数采用蔡勒公式计算日期所对应的 /星期;int y,c,w,m,d,week;int sum=year*10000+month*100+day;/为了分开 1584年 10月 4日之前和之后,if(month)w=y+int(y/4)+int(c/4)-2*c+int(26*(m+1)/10)+d-1;/蔡勒公式 1582年 10月/4日之后的计算公式;else w=y+int(y/4)+int(c/4)-2*c+int(13*(m+1)/5)+d+3;/蔡勒
17、公式 1582年 10月/4日之前的计算公式;week=(w%7+7)%7;return week;int main()int year,month,day,week;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出
18、是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日do coutyear;while(!cin|isalpha(getchar()/循环避免输入的不是数字字符 ();(1024,n);cout 输入非数字年份,重新输入年份!year;coutmonth;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期
19、输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日while(!cin|isalpha(getchar()();(1024,n);cout 输入非数字月份,重新输入月份!month;coutday;while(!cin|isalpha(getchar()();(10
20、24,n);cout 输入非数字日期,重新输入日期!day;题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将
21、年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 while(!checkDay(year,month,day);/在所输入的都是数字字符之后检测/日期的逻辑,使得日期是合法的;week=dayToWeek(year,month,day);/利用得到的合法/日期调用星期计算函数;cout 所输入的日期是:year 年month月day日endl;if(week=0)cout日期所对应的是星期日endl;/由于 dayToWeek()/函数返回值是 int,所以星期日在此时才处理;else cout日期所对应的是星期:weekendl;题的来源这次实验一开始打算测试或者计算器老
22、师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日3星期计算程序的测试思路 功能性测试
23、 程序的规格说明很明确,功能也很单一,对其进行功能性测试,以希望能尽可能对程序的运行结果进行全面合理的判断。边界值测试 使用边界值测试里的最坏情况测试,由于程序输入变量是三个,所以可使用三重循环解决边界值测试,开发出测试程序。由于网络上万年历比较权威的产品日期是从1901-2050,所以我进行边界值测试,年的边界的选取就按 1901-2050 来进行。虽然程序可以计算任意合法日期的星期,但是为了验证测试结果,所以只能做这样的选择。图3-1是进行测试结果验证的万年历。题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲
24、目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日图 3-1 用于验证测试结果的万年历 弱健壮等价类测试 由于年月日这三个变量之间存在很强的依赖性,使用边界值测试难免会存在冗
25、余和漏洞,所以继续进行等价类测试,希望能尽可能进行完备的测试,同时也能避免冗余。测试考虑无效等价类得到如下的等价类:M1=月份:1月份12 D1=日期:1日期31 Y1=年:0年 基于决策表测试 月日年三者之间存在着很强的逻辑依赖关系,所以可以选取基于决策表的测试避免大量的冗余,同时也能较全面的覆盖 M1=月份:每月有 30 天 M2=月份:每月有 31 天 M3=月份:此月是 2 月 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入
26、的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日D1=日期:1日期28 D2=日期:日期=29 D3=日期:日期=30 D4=日期:日期=31 Y1=年:年是闰年 Y2=年:年是平年 1 2 3 4 5 6 7 8 9 10 C1:月在 M1 M1 M
27、1 M1 M2 M3 M3 M3 M3 M3 C2:日在 D1 D2 D3 D4 D1 D2 D2 D3 D4 C3:年在 Y1 Y2 行为 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格
28、里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日输入 无效 X X X X 输入有效 X X X X X X 结构性测试 前面分析了系统使用三种功能性测试,由于功能性测试存在潜在的大量的冗余和漏洞,所以在此继续进行结构性测试,以期达到较完备的测试。题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不
29、说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日#include 1 using namespace std;2 bool checkDay(int year,int month,int day)/此函数用于检测3 所输入的年月日是不 4 /是一个合乎逻辑的年月5 日;6 if(year=0)
30、7 return false;8 if(month12)9 return false;10 int m=11 31,0,31,30,31,30,31,31,30,31,30,31;/定义一个月份所12 对应的天数的数组,2 13 if(year%4=0&year%100!=0|year%400=0)/月是变化的所14 以暂时设为 0;15 m1=29;/是闰年,2月 29天;16 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期
31、是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 else m1=28;/是平年;17 return(day=1)&(day=mmonth-1);/根据月份对应天18 数的数组判断日 19 /是不是合法;20 21 int dayToWeek(int yea
32、r,int month,int day)/该函数采用蔡勒公22 式计算日期所对应的 23 /星期;24 int y,c,w,m,d,week;25 int sum=year*10000+month*100+day;/为了分开 1584年 10月26 4日之前和之后,27 if(month)38 w=y+int(y/4)+int(c/4)-2*c+int(26*(m+1)/10)+d-1;/蔡39 勒公式 1582年 10月 40/441 日之后的计算公式;42 else w=y+int(y/4)+int(c/4)-2*c+int(13*(m+1)/5)+d+3;/43 蔡勒公式 1582年 1
33、0月 44/445 日之前的计算公式;46 week=(w%7+7)%7;47 return week;48 49 50 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织
34、了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日int main()51 int year,month,day,week;52 do coutyear;57 58 while(!cin|isalpha(getchar()/循环避免59 输入的不是数字字符 60 61 ();62 (1024,n);63 cout 输入非数字年份,重新输入年份!year;65 66 67 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上
35、翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日coutmonth;69 while(!cin|isalpha(getchar()70 71 ();72 (1024,n);73 cout 输
36、入非数字月份,重新输入月份!month;75 76 coutday;78 while(!cin|isalpha(getchar()79 80 ();81 (1024,n);82 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个
37、公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 cout 输入非数字日期,重新输入日期!day;84 85 while(!checkDay(year,month,day);/在所输入的都是86 数字字符之后检测 87/日期的逻辑,使得日期是合88 法的;89 week=dayToWeek(year,month,day);/90 利用得到的合91 法 92/日期调用星期计算93 函数;94 cout 所输入的日期是:year 年month月day日95 end
38、l;96 if(week=0)cout日期所对应的是星期日endl;/由97 于 dayToWeek()98/函数返回值是 int,所以星期日在此99 时才处理;100 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算
39、出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日else cout日期所对应的是星期:week1-2-3-4-5-结束 (2)开始-1-2-3-4-6-结束 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费
40、了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日 (3)开始-1-2-1-3-4-5-结束 (4)开始-1-2-1-3-4-6-结束 (5)开始-1-2-3-1-2-3-4-5-结束 (6)开始-1-2-3-1-2-3-4-6-结束 (7)开始-1-2-3-1-2-1-2-3-4-5-结束 (8)开始-1-2-3-1-2-1-2-3-4-6-结束 本章小
41、结 本章针对被测程序分析系统要采取边界值测试中的最坏情况测试,弱健壮等价类测试,基于决策表的测试,当然这些都是功能性测试。同时也根据 DD路径图分析了结构性测试用例的开发。下一章将根据本章的内容生成测试用例。4测试用例(1)根据上一章测试思路里面的分析,我们要采用最坏情况测试,下表就是最坏情况测试的测试用例 测试用例 月份 日期 年份 预期输出 实际输出是否正确 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是
42、星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日1 1 1 1901 2 Y 2 1 2 1901 3 Y 3 1 15 1901 2 Y 4 1 30 1901 3 Y 5 1 31 1901 4 Y 6 2 1 1901 5 Y 7 2 2 1901 6 Y 8 2 15
43、 1901 5 Y 9 2 30 1901 日期不存在 Y 10 2 31 1901 日期不存在 Y 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥
44、白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日11 6 1 1901 6 Y 12 6 2 1901 0 Y 13 6 15 1901 6 Y 14 6 30 1901 0 Y 15 6 31 1901 日期不存在 Y 16 11 1 1901 5 Y 17 11 2 1901 6 Y 18 11 15 1901 5 Y 19 11 30 1901 6 Y 20 11 31 1901 日期不存在 Y 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地
45、开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日21 12 1 1901 0 Y 22 12 2 1901 1 Y 23 12 15 1901 0 Y 24 12 30 190
46、1 1 Y 25 12 31 1901 2 Y 26 1 1 1902 3 Y 27 1 2 1902 4 Y 28 1 15 1902 3 Y 29 1 30 1902 4 Y 30 1 31 1902 5 Y 31 2 1 1902 6 Y 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就
47、不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日32 2 2 1902 0 Y 33 2 15 1902 6 Y 34 2 30 1902 日期不存在 Y 35 2 31 1902 日期不存在 Y 36 6 1 1902 0 Y 37 6 2 1902 1 Y 38 6 15 1902 0 Y 39 6 30 1902 1 Y 40 6 31 1902 日期不存在 Y 41 11 1 1902
48、 6 Y 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公
49、式只适合于年月日42 11 2 1902 0 Y 43 11 15 1902 6 Y 44 11 30 1902 0 Y 45 11 31 1902 日期不存在 Y 46 12 1 1902 1 Y 47 12 2 1902 2 Y 48 12 15 1902 1 Y 49 12 30 1902 2 Y 50 12 31 1902 3 Y 51 1 1 2000 6 Y 52 1 2 2000 0 Y 题的来源这次实验一开始打算测试或者计算器老师在课上告诉我们什么是好程序要编写好程序要有好的编程习惯回想一下我以前上机也是直接打就盲目地开始了在电脑上翻开了以前课上编的一个根据日期计算星期的作业编
50、的实在太天数输入的日期是星期输入的日期是星期日别的问题先不说光是那两个数组就很糟糕如果让别人读根本就不能读明白自己也是费了较大力气才读懂运行以后发现了好多根本就不是一个可使用的程序于是就决定把这个程序重新尽自己一个日期就能用这个公式推算出是星期几但是由于罗马教皇格里高利十三世在年组织了一批天文学家根据哥白尼日心说计算出来的数据对儒略历作了修改将年月日到日之间的天宣布销继月日之后为月日因此蔡勒公式只适合于年月日53 1 15 2000 6 Y 54 1 30 2000 0 Y 55 1 31 2000 1 Y 56 2 1 2000 2 Y 57 2 2 2000 3 Y 58 2 15 200