给以下代码设计一个黑盒测试和白盒测试的需求规格说明,代码如下:import java.util.Scanner; public class PreDate { public static void main(String [] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入年 月 日:"); int year = sc.nextInt(); int month=sc.nextInt(); int day=sc.nextInt(); if(year<1812||year>2017||month<1||month>12||day<1||day>31){ System.out.print("输入不合法!"); } //年份发生改变的情况 if(month==1&&day==1){ year=year-1; month=12; day=31; } //月份发生改变的情况 else if(month!=1&&day==1){ if(month==2||month==4||month==6||month==8||month==9||month==11){ month=month-1; day=31; } else if(month==5||month==7||month==10||month==12){ month=month-1; day=30; } else { if(((year%4==0)&&(year%100>0))||((year%100==0)&&(year%400==0))){ month=month-1; day=29; } else { month=month-1; day=28; } } } //只涉及day的变换 else { day=day-1; } System.out.print(year+" "+month+" "+day); } }
时间: 2023-07-05 16:34:42 浏览: 95
黑盒测试需求规格说明:
输入:
- 输入年份、月份、日期,年份应在1812年至2017年之间,月份应在1至12之间,日期应在1至31之间。
输出:
- 输出年份、月份、日期,表示输入日期的前一天。
- 如果输入不符合要求,输出“输入不合法!”。
白盒测试需求规格说明:
测试年份、月份、日期的边界条件,包括:
- 年份为1812年或2017年;
- 月份为1或12;
- 日期为1或31。
测试年份为闰年和平年的情况,包括:
- 闰年的2月29日到3月1日;
- 平年的2月28日到3月1日。
测试月份为小月(4、6、9、11月)和大月(1、3、5、7、8、10、12月)的情况,包括:
- 小月的最后一天到下个月的第一天;
- 大月的最后一天到下个月的第一天。
测试输入不合法的情况,包括:
- 年份、月份、日期不在规定范围内;
- 日期超出该月的最大天数。
阅读全文