前一天日期软件测试需求,软件测试实验日期前一天.doc

软件测试实验一

姓名: 学号: 班级:

决策表测试案例

案例描述:

某程序可以输出某个日期的前一天,用函数 Prevdate 实现,请 设计出 Prevdate 函数的等价类,并做出其决策表测试用例。

年的取值在 1812年到 2016 年之间。

日的取值在 1 日到31 日之间

月的取值在 1 到 12 月之间

测试分析

等价类

(1)?分析各种输入情况,列出为输入变量?month?、?day?、?year?划分的有效等价类和无效等价类。?

?有效等价类year:{ 1812<=year<=2012}

month:{1<=month<=12}

day:{1<=day<=31}

其他情况则为无效等价类

(2)?month?变量的有效等价类为:?

M1:{前一个月为30天,且本月为31天,month=5,7,10,12}???

M2:?{前一个月为31天,且本月为30天,month=4,6,9,11 }?

M3:{前一个月为31天,且本月为31天,1月除外month=8}?????????

M4:{月份:month=1}?

M4:{月份:month=2}?

M4:{月份:month=3}?

(3)day?变量的有效等价类为:?

D1:?{日期:2<=day<=28}???????

D2: {日期:day=1}?

D3: {日期:day=29}?

D4: {日期:day=30}?

D5: {日期:day=31}?

(4)year?变量的有效等价类为:?

?Y1:{year是闰年}????????????

?Y2:{year不是闰年}??

决策表

实验代码:

#include

using namespace std;

int main(){

int year,month,day,x=0;//将x作为标记位

cout<

cin>>year>>month>>day;

if(year<1812||year>2012||day<0||day>31||month<0||month>12){

cout<

return 0;}

if((year%4==0&&year%100!=0)||(year%400==0)){

x=1;

}//闰年标记为1,否则为0

if(x==1&&month==3&&day==1){

cout<

return 0;}//闰年3.1则输出2.29

if(x==0&&month==3&&day==1){

cout<

return 0;}//平年3.1则输入2.28

if(month==1&&day==1){

cout<

return 0;}//1.1往前推一年,并为12.31

if((month==2||month==4||month==6||month==8||month==9||month==11)&&day==1){

cout<

return 0;}//日为1日且前一个月大,则输出前一个月的31日

if((month==5||month==7||month==10||month==12)&&day==1){

cout<

return 0;}//日为1日且前一个月小,则输出前一个月的30日

else

cout<

return 0;

}

部分测试结果:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值