软件质量与测试实验二:次日问题

一、实验目的与要求

1.1实验目的

通过编写Java程序,了解和掌握软件测试的基本概念和方法,加深对软件质量的理解,提高对软件测试的实际操作能力,增强软件开发质量意识。

1.2实验要求
  • 1).采用适当的开发方法和测试技术,设计和实现一个能够计算输入日期的下一天日期的Java程序。
  • 2).通过测试,验证程序的正确性、健壮性、可靠性和可维护性等质量特性,并且尽可能地发现和修复程序中的缺陷。
  • 3).使用合适的测试工具和技术,编写测试用例,对程序进行黑盒测试和白盒测试。
  • 4).评估测试结果,收集测试数据,分析和总结测试结果,提出改进措施。
  • 5).撰写实验报告,包括实验目的、要求、过程和结果等,详细描述测试方法、测试用例设计、测试过程和测试结果,并且对测试结果进行分析和总结,提出改进意见和建议。
  • 二、实验环境

  • WINDOWS10 ;
  • Pycharm;
  • VSCODE
  • 三、实验内容

3.1次日问题描述

3.2次日问题分析与设计(画流程图)

3.3次日问题实现

  • 四、测试用例描述及实验步骤

  • 4.1次日问题描述

    次日问题指给定一个日期,计算该日期的下一天日期。假设日期由年、月、日三个整数表示,对于输入日期的月份、日、年份,程序需要输出该输入日期在日历上隔一天的日期。

    例如,输入为2020年11月30日,则该程序的输出为2020年12月1日。需要考虑闰年的情况,如1900年、2100年等不是闰年。在这种情况下,2月份的天数应该为28天。

    4.2 次日问题分析与设计(画流程图) 

4.3次日问题实现
def is_leap_year(year):
    # 判断是否为闰年
    if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
        return True
    return False

def get_next_day(year, month, day):
    # 每个月的天数
    days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    # 处理闰年的2月份天数
    if is_leap_year(year):
        days_in_month[1] = 29

    # 判断日期是否合法
    if year < 1900 or year > 2050:
        print("Invalid year")
        return
    if month < 1 or month > 12:
        print("Invalid month")
        return
    if day < 1 or day > days_in_month[month - 1]:
        print("Invalid day")
        return

    # 计算下一天日期
    next_year = year
    next_month = month
    next_day = day + 1

    if next_day > days_in_month[month - 1]:
        next_day = 1
        next_month += 1
        if next_month > 12:
            next_month = 1
            next_year += 1

    return next_year, next_month, next_day

# 测试示例日期
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))

if month < 1 or month > 12:
    print("月的值不在指定范围内")
elif day < 1 or day > 31:
    print("日的值不在指定范围内")
else:
    next_year, next_month, next_day = get_next_day(year, month, day)
    print("下一天日期:{}年{}月{}日".format(next_year, next_month, next_day))

五、调试过程及实验结果

测试用例

序号

期望输出

1

1800

9

10

年的值不在指定范围内

2

1900

6

23

19000610

3

1909

6

23

19090623

4

2049

6

23

20490623

5

2050

6

23

20500623

6

2051

6

13

年的值不在指定范围内

7

2045

25

14

月的值不在指定范围内

8

2014

01

11

20140111

9

2020

11

10

20201110

10

2025

5

10

20250510

11

2012

11

50

日的值不在指定范围内

六、总结

在进行该实验的过程中,我遇到了一些问题,但也通过解决这些问题学到了很多。首先,我在编写程序的过程中遇到了一些语法错误和逻辑错误,但是通过对代码进行逐行调试和代码审查,我成功地解决了这些问题。

另外,我在测试程序的时候发现了一些边界情况,例如输入日期为2月29日(闰年的情况),程序没有正确处理。通过分析代码并进行修改,我成功地解决了这个问题,并增强了程序的健壮性。

在进行该实验的过程中,我也学到了一些关于软件测试的基本知识。例如,我了解了如何进行黑盒测试和白盒测试,以及如何编写测试用例和测试计划。这些知识将对我的未来工作和学习都有很大的帮助。

总的来说,通过进行该实验,我掌握了基本的软件测试技能,并对编写高质量的程序有了更深入的理解。我也意识到软件测试在软件开发过程中的重要性,并将在未来的工作和学习中继续深入学习和应用这些知识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神度♬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值