实验一
1实验目的
练习 基于程序结构的测试用例设计、白盒测试技术
2 实验内容(选作或题目二)
题目:
已知公元1年1月1日是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。不能采用现有公式计算。
(1)画出你所编写程序的控制流图,并计算程序的圈复杂度。
(2)综合运用白盒测试方法为设计测试用例,预期输出可参考windows自带的日历程序。
(3)在测试过程中是否发现你所编写程序的缺陷?这些缺陷是由哪些测试用例发现的?
4 实验报告要求
- 实验代码:
# 公元1年1月1日为星期一
# 判断是否为闰年
def leap_year(year):
leap = False
if year % 4 == 0:
if year % 100 != 0:
leap = True
else:
if year % 400 == 0:
leap = True
return leap
def dayOfTheWeek(year, month, day):
num = 0
if leap_year(year):
list_month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
list_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in range(1, year):
if leap_year(i):
num = num + 366
else:
num = num + 365
for i in range(1, month):
num = num + list_month[i - 1]
num = num + day - 1
return num
if __name__ == '__main__':
# 输入日期
# 默认输入的日期为合法日期
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日份:"))
# 公元1年1月1日为星期一
list_day = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
# 获取该日期与公元1年1月1日相差的天数
num = dayOfTheWeek(year, month, day)
num = num % 7
data = list_day[num]
print(year, "年", month, "月", day, "日", data)
2.根据题目要求编写程序并画出控制流图、给出圈复杂度。
控制流图: