软件工程基础 实验4《系统实现》

实验4《系统实现》

一、实验目的
  1. 掌握:系统实现的有关技术及其相关工具。
二、实验内容
  1. 试对图3所示的课程管理对象类图,采用Java在Eclipse下编码实现,并用JUnit框架对某Java类进行测试。
    软件工程基础 实验4《系统实现》

    ??测试结果:

    软件工程基础 实验4《系统实现》
    ??结果分析:测试结果显示三个测试均成功通过,在用户登录时该模块能够对用户的输入进行正常判断,比如判空、账号密码核实。

    ??5.2 利用unittest测试modules.py文件中的老师类Teacher
    ??teacher.py:

    ??unittestTeacher.py:

    ??测试结果:

    软件工程基础 实验4《系统实现》
    ??结果分析:根据结果显示,其中测试中两个通过,一个失败,在用户创建老师类时能够成功创建,增加资产时以初始态0为基础,所以加上15等于15,测试通过,但是减少资产时依旧以0为基础,所以此处减少后为-5,而不等于10,测试未通过。
    六、实验结论

    ??本次实验测试是进行抽样测试,根据不同的测试方式进行不同测试,测试样例、结果和结果分析见第五点显示,通过该实例测试方式可对本程序其余模块进行测试,从而验证所以模块的正确性。
    ??根据本次测试结果,可知,对python进行不同方式的测试很有必要,因为测试是提高代码质量和可维护性的一种方式,也是成本最低的一种方式,尽早排除尽可能出现的bug,可以减少在后续阶段解决bug的成本(包括时间成本、人力成本等)。

    ??项目源码展示如下:
    ??6.1 配置文件settings.py

    ??6.2 公共模块modules.py

    #!/usr/bin/env python# -*- coding:utf-8 -*-import randomimport timeimport picklefrom config import settingsimport osclass Teacher:    """    封装老师的相关信息    """    def __init__(self, name, age, admin):self.name = nameself.age = ageself.__assets = 0self.create_time = time.strftime('%Y-%m-%d %H:%M:%S')self.create_admin = admin     def gain(self, cost):"""增加资产:param cost: 增加的数量:return:"""self.__assets += cost     def decrease(self, cost):"""减少资产:param cost: 减少的数量:return:"""self.__assets -= cost class Course:    """    课程相关信息    """    def __init__(self, course_name, cost, teacher_obj, admin):self.course_name = course_nameself.cost = costself.teacher = teacher_objself.create_time = time.strftime('%Y-%m-%d %H:%M:%S')self.create_admin = admin     def have_lesson(self):"""课程上课,自动给相关联的任课老师增加课时费:return: 课程内容返回给上课者"""self.teacher.gain(self.cost) content = random.randrange(10, 100)r = time.strftime('%Y-%m-%d %H:%M:%S')temp = "课程:%s;老师:%s;内容:%d;时间:%f" % (self.course_name, self.teacher, content, r)return temp     def absence(self):"""教学事故:return:"""self.teacher.decrease(self.cost * 2) class Admin:    def __init__(self):self.username = Noneself.password = None     def login(self, user, pwd):"""管理员登陆:param user::param pwd::return:"""if self.username == user and self.password == pwd:    return Trueelse:    return False     def register(self, user, pwd):"""管理员注册:param user::param pwd::return:"""self.username = userself.password = pwd path = os.path.join(settings.BASE_ADMIN_DIR, self.username) #管理员目录pickle.dump(self, open(path, 'xb'))     #将管理员对象写入文件  class Student:    """    学生相关信息    """    def __init__(self):self.username = Noneself.password = None self.course_list = []self.study_dict = {}     def select_course(self, course_obj):"""学生选课:param course_obj::return:"""self.course_list.append(course_obj) #将课程对象添加进课程列表     def study(self, course_obj):"""学生上课:param course_obj::return:"""class_result = course_obj.have_lesson()  #获取学生上课信息 if course_obj in self来源:渣渣的夏天
                                                            

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月3日
下一篇 2019年7月3日

相关推荐