using namespace std; void NextDate(int year,int month,int day); void m" />
当前位置:文档之家› NextDate函数测试用例

NextDate函数测试用例

1.测试程序源代码#include"stdafx.h"#include <iostream>using namespace std;void NextDate(int year,int month,int day);void main(){int year=0,month=0,day=0;NextDate(year,month,day);}void NextDate(int year,int month,int day){cout<<"请输入年份:"<<endl;cin>>year;while(!(year>=1911 && year<=2013)){cout<<"年份超过界限,请重新输入"<<endl;cin>>year;}cout<<"请输入月份:"<<endl;cin>>month;while (month>12||month<1){cout<<"月份输入有误,请重新输入"<<endl;cin>>month;}cout<<"请输入日期:"<<endl;cin>>day;while (day>31||day<1){cout<<"日期输入有误,请重新输入"<<endl;cin>>day;}while(month==4&&day==31||month==6&&day==31||month==9&&day==31||month==11&&da y==31){cout<<"小月没有31号"<<endl;cin>>day;} if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年;{int i=0;i=day-29;while(month==2&&i>0){cout<<"本月是闰月,请在1-29之间从新输入日期"<<endl;cin>>day;}if(month==2&&day==29){month=3;day=1;}else day++;}else day++;//月底计算;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:if (day==32){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 2:if(day==29){month=3;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 4:case 6:case 9:case 11:if(day==31){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 12:if(day==32){year++;month=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;}cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}白盒测试DD-路径情况1. 由一个节点组成,内度=0情况2. 由一个节点组成,外度=0情况3. 由一个节点组成,内度>=2或外度>=2情况4. 由一个节点组成,内度=1并且外度=1情况5. 长度>=1的最大链情况2 :节点6、节点9、节点10情况3 :节点2、节点3、节点5、节点7、节点8情况4 :节点4、节点11白盒测试对每条DD-路径测试用例用例说明输入数据预期结果实际结果输入正确的年、月、日2011年6月15日2011年6月16日2011年6月16日输入错误的年、月、日2501年6月15日日期输入有误输入有误,重新输入输入错误的年、月、日2011年6月33日日期输入有误输入有误,重新输入输入错误的年、月、日2011年13月15日日期输入有误输入有误,重新输入输入闰年2月29日2000年2月29日2000年3月1日2000年3月1日输入非闰年2月28日2001年2月28日2001年3月1日2001年3月1日输入大月31日2001年3月31日2001年4月1日2001年4月1日输入小月30日2001年4月30日2001年5月1日2001年5月1日输入12月31日2004年12月31日2005年1月1日2005年1月1日判定覆盖编号输入数据预期结果实际结果1 2000年6月30日2000年7月1日2000年6月16日2 2010年12月31日2011年1月1日2011年1月1日黑盒测试输入条件编号有效等价类编号无效等价类输入年份⑴1912<=年<=2012 ⑺年<1912⑻年>2012输入月份⑵1<=月份<=12 ⑼月<1⑽月>12输入日期⑶1<=日期<=31 ⑾日期<1⑿日期>31输入类型⑷输入为int型⒀除int型外的任意输入输入为闰年⑸输入2月29日⒁输入为闰年2月30日输入为平年⑹输入2月28日⒂输入2月29日测试用例编号输入预期结果实际输出覆盖等价类1 1988/2/3 1988/2/4 1988/2/4 ⑴⑵⑶⑷2 2000/2/29 2000/3/1 2000/3/1 ⑸3 2001/2/28 2001/3/1 2001/3/1 ⑹4 1800/1/23 年份输入年份输入有误,请重新输入⑺有误,请重新输入5 2200/3/2 年份输入年份输入有误,请重新输入⑻有误,请重新输入6 1912/0/3 月份输入月份输入有误,请重新输入⑼有误,请重新输入7 1927/30/3 月份输入月份输入有误,请重新输入⑽有误,请重新输入8 1956/3/-20 日期输入有误,请重新输入日期输入有误,请重新输入⑾9 1972/3/43 日期输入有误,请重新输入日期输入有误,请重新输入⑿10 asd 程序进入死循环程序进入死循环⒀11 2000/2/30 本月是闰月,请在1-29之间从新输入日期本月是闰月,请在1-29之间从新输入日期⒁12 2001/2/29 2001/2/30 2001/2/30 ⒂边界值测试用例月份日期年预期输出实际输出1 6 15 1911 6/16/1911 6/16/19112 6 15 1912 6/16/1912 6/16/19123 6 15 1962 6/16/1962 6/16/19624 6 15 2012 6/16/2012 6/16/20125 6 15 2013 6/16/2013 6/16/20136 6 1 1962 6/2/1962 6/2/19627 6 2 1962 6/3/1962 6/3/19628 6 15 1962 6/16/1962 6/16/19629 6 30 1962 7/1/1962 7/1/196210 6 31 1962 非法输入非法输入11 1 15 1962 1/16/1962 1/16/196212 2 15 1962 2/16/1962 2/16/196213 6 15 1962 6/16/1962 6/16/196214 11 15 1962 11/16/1962 11/16/196215 12 15 1962 12/16/1962 12/16/1962结果分析:白盒测试和黑盒测试的用例中,预期结果与运行结果都是相同的,与实际日期符合的,因此,本函数准确性较好,但是存在死循环,说明程序鲁棒性不好,还有待改进。

相关主题