python学生成绩登记平台软件测试报告
一、单元测试
1.add_student()函数
该函数实现向系统中依据学生学号添加一个学生信息的作用,函数代码如下:

测试验证本函数功能共设计了2个测试例,详细如下:
(1)测试例1,在架构中未存入学号为001的学生信息时添加学号为001的学生信息,函数预期运行结果为所有学生信息列表中含有001学生信息。测试代码和测试结果如下:


(2)测试例2,在系统中已存有学号为001的学生信息时添加学号为001的学生信息。函数预期运行结果为控制台提示该学生已存在。测试代码和测试结果如下


2.update_student()函数
该函数搭建向平台中依据学生学号修改一个学生信息的功能,函数代码如下:

测试验证本函数作用共设计了2个测试例,详细如下:
(1)测试例1,在系统中修改学号为001的学生信息的单科成绩,成绩范围在0-100之间,函数预期运行结果为学生信息列表中含有修改之后的001学生信息的单科成绩。测试代码和测试结果如下

(2)测试例2,在系统中修改学号为001的学生信息的单科成绩,成绩范围不在0-100之间,函数预期运行结果为修改001学生信息的单科成绩异常。测试代码和测试结果如下:


3.delete_student()函数
该函数实现向系统中依据学生学号删除一个学生信息的能力,函数代码如下:

测试验证本函数功能共设计了2个测试例,详细如下:
(1)测试例1,在体系中未存入学号为001的学生信息时删除学号为001的学生信息,函数预期运行结果为控制台提示该学生不存在,删除001学生信息异常。测试代码和测试结果如下:

(2)测试例2,在系统中已存有学号为001的学生信息时删除学号为001的学生信息。函数预期运行结果为所有学生信息列表中不含有001学生信息。测试代码和测试结果如下:


4.rank_subject(subject)函数
该函数实现向体系中对指定科目成绩进行排名机制,函数代码如下:

测试验证本函数功能共设计了2个测试例,详细如下:
(1)测试例1,在框架中已存入学生信息的单科成绩,函数预期运行结果为显示指定的学生信息的单科成绩排名。测试代码和测试结果如下:


(2)测试例2,在系统中未存入学生信息的单科成绩,函数预期运行结果为控制台提示该学生不存在。测试代码和测试结果如下:


5.rank_total()函数
该函数实现向系统中对总成绩进行排名功能,函数代码如下:

测试验证本函数功能共设计了2个测试例,详细如下:
(1)测试例1,在架构中已存入学生信息的所有成绩,函数预期运行结果为表现学生信息的所有成绩排名。测试结果如下:


(2)测试例2,在架构中未存入学生信息的成绩,函数预期运行结果为控制台提示该学生不存在。测试结果如下:


6.query_student()函数
该函数实现向体系中依据学生学号查询一个学生信息的功能,函数代码如下:

测试验证本函数功能共设计了2个测试例,详细如下:
(1)测试例1,在系统中未存入学号为001的学生信息时查询学号为001的学生信息,函数预期运行结果为不存在该学生信息。测试代码和测试结果如下:


(2)测试例2,在系统中已存有学号为001的学生信息时查询学号为001的学生信息。函数预期运行结果为显示001的学生的各科成绩。测试代码和测试结果如下:


二、环境测试
为验证系统完整运行过程,设计了3个环境测试例,涵盖软件所有功能。
(1)体系测试例1系统运行过程为:系统启动(显示初始启动成功);分别添加学号为001和002的学生信息(能正确添加);再次添加学号为001的学生信息(提示该学生信息已存在);查询学号为001的学生信息(显示信息);更新学号为001的学生信息(更新成功);查询学号为001的学生信息(显示信息);退出平台(提示文件保存成功,系统退出)。测试运行过程及材料结果如下:




(2)系统测试例2系统运行过程为:系统启动(显示读取文件成功,列出所有学生信息);查询学号为002学生信息(显示学生信息);删除学号为002的学生信息(删除成功);查询学号为002学生信息(表现学生不存在);再次删除学号为002的学生信息(提示不存在);分别添加学号为003、004、005和006的学生信息(能正确添加);退出系统(提示文件保存成功,系统退出)。测试运行过程及文件结果如下:






(3)系统测试例3架构运行过程为:系统启动(表明读取文件成功,列出所有学生信息);按总成绩排序学生信息(能按正确顺序显现学生信息);按语文成绩排序学生信息(能按正确顺序显示学生信息);按数学成绩排序学生信息(能按正确顺序显示学生信息);按英语成绩排序学生信息(能按正确顺序显示学生信息);退出平台(提示文件保存成功,系统退出)。测试运行过程及资料结果如下:




附:体系完整代码如下:
import os
# 数据存储
students = []
# 读取文件信息
def read_students():
global students
try:
if os.path.exists("students.txt"):
with open("students.txt", "r") as file:
lines = file.readlines()
for line in lines:
data = line.strip().split(",")
student = {"id": data[0], "math": int(data[1]), "english": int(data[2]), "chinese": int(data[3])}
students.append(student)
print("读取文件成功")
print("以下是所有学生信息:")
for student in students:
print(f"学号: {student['id']}, 数学成绩: {student['math']}, 英语成绩: {student['english']}, 语文成绩: {student['chinese']}")
except Exception as e:
print("读取文件出现异常:", e)
# 保存文件信息
def save_students():
try:
with open("students.txt", "w") as file:
for student in students:
line = "{},{},{},{}\n".format(student["id"], student["math"], student["english"], student["chinese"])
file.write(line)
except Exception as e:
print("保存文件出现异常:", e)
else:
print("文件保存成功")
# 添加学生成绩
def add_student():
try:
id = input("请输入学号:")
for student in students:
if student["id"] == id:
print("学号已存在,请重新输入!")
return
math = int(input("请输入数学成绩:"))
if not 0 <= math <= 100:
print("成绩应在0到100之间,请重新输入!")
return
english = int(input("请输入英语成绩:"))
if not 0 <= english <= 100:
print("成绩应在0到100之间,请重新输入!")
return
chinese = int(input("请输入语文成绩:"))
if not 0 <= chinese <= 100:
print("成绩应在0到100之间,请重新输入!")
return
student = {"id": id, "math": math, "english": english, "chinese": chinese}
students.append(student)
save_students()
except Exception as e:
print("添加学生成绩出现异常:", e)
# 修改学生成绩
def update_student():
try:
id = input("请输入要修改成绩的学号:")
found = False
for student in students:
if student["id"] == id:
found = True
math = int(input("请输入数学成绩:"))
if not 0 <= math <= 100:
print("成绩应在0到100之间,请重新输入!")
return
english = int(input("请输入英语成绩:"))
if not 0 <= english <= 100:
print("成绩应在0到100之间,请重新输入!")
return
chinese = int(input("请输入语文成绩:"))
if not 0 <= chinese <= 100:
print("成绩应在0到100之间,请重新输入!")
return
student["math"] = math
student["english"] = english
student["chinese"] = chinese
save_students()
return
if not found:
print("未找到该学号的学生!")
except Exception as e:
print("修改学生成绩出现异常:", e)
# 删除学生成绩
def delete_student():
try:
id = input("请输入要删除成绩的学号:")
found = False
for student in students:
if student["id"] == id:
found = True
students.remove(student)
save_students()
return
if not found:
print("未找到该学号的学生!")
except Exception as e:
print("删除学生成绩出现异常:", e)
# 单科成绩排名
def rank_subject(subject):
found = False
for student in students:
if student["id"] == subject or (subject in student and student[subject] is not None):
found = True
break
if not found:
print("该学生不存在或暂无该科目成绩信息,请先添加成绩数据。")
return
try:
sorted_students = sorted(students, key=lambda x: x[subject], reverse=True)
for i, student in enumerate(sorted_students):
print("{}、学号:{},{}成绩:{}".format(i + 1, student["id"], subject, student[subject]))
except Exception as e:
print("单科成绩排名出现异常:", e)
# 总成绩排名
def rank_total():
found = False
for student in students:
if student["id"] is not None:
found = True
break
if not found:
print("系统中暂无学生成绩信息,请先添加成绩数据。")
return
try:
for student in students:
student["total"] = student["math"] + student["english"] + student["chinese"]
sorted_students = sorted(students, key=lambda x: x["total"], reverse=True)
for i, student in enumerate(sorted_students):
print("{}、学号:{},总成绩:{}".format(i + 1, student["id"], student["total"]))
except Exception as e:
print("总成绩排名出现异常:", e)
# 查询学生成绩
def query_student():
try:
id = input("请输入要查询成绩的学号:")
found = False
for student in students:
if student["id"] == id:
found = True
print("学号:{},数学成绩:{},英语成绩:{},语文成绩:{}".format(student["id"], student["math"], student["english"], student["chinese"]))
return
if not found:
print("未找到该学号的学生!")
except Exception as e:
print("查询学生成绩出现异常:", e)
# 主函数
def main():
read_students()
while True:
try:
print("1. 添加学生成绩")
print("2. 修改学生成绩")
print("3. 删除学生成绩")
print("4. 数学成绩排名")
print("5. 英语成绩排名")
print("6. 语文成绩排名")
print("7. 总成绩排名")
print("8. 查询学生成绩")
print("9. 退出")
choice = input("请选择操作:")
if choice == "1":
add_student()
elif choice == "2":
update_student()
elif choice == "3":
delete_student()
elif choice == "4":
rank_subject("math")
elif choice == "5":
rank_subject("english")
elif choice == "6":
rank_subject("chinese")
elif choice == "7":
rank_total()
elif choice == "8":
query_student()
elif choice == "9":
print("文件保存成功,系统退出")
break
except Exception as e:
print("主菜单操作出现异常:", e)
if __name__ == "__main__":
main()
浙公网安备 33010602011771号