西北工业大学明德学院本科毕业设计论文
图6-10学生个人信息主页面
图6-11学生密码修改主页面
32
西北工业大学明德学院本科毕业设计论文
7 测试与调试
系统测试是系统开发过程中非常重要而漫长的阶段。其重要性表现在它是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复查。虽然在开发过程中,人们采用了许多保证系统的质量和可靠性的方法来分析、设计和实现系统,但免不了在工作中会犯错误,这样所开发的系统中就隐藏着许多错误和缺陷。如果不在系统正式运行之前的测试阶段进纠正,问题迟早会在运行期间暴露出来,这时要纠正错误就会付出更高代价,甚至造成生命和财产的重大损失。
经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。然而,在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段[11]。
7.1 软件测试的目标
软件测试的目标是想以最少的时间和人力发现软件中潜在的各种错误和缺陷。如果成功的实现了测试,就能够发现软件中的错误。测试的另一个收获是它能够证明软件的功能和性能与需求说明相符,同时实施测试收集到的数据为可靠性分析提供了依据。
7.2 软件测试方案
测试方案是测试阶段的关键技术问题。为了提高测试效率降低测试成本,本测试方案采用黑盒测试和白盒测试。
黑盒测试:也称为功能测试,指将软件看成黑盒子,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。根据系统分析说明书设计测试用例,通过输入和输出的特性检测是否满足指定的功能[12]。
白盒测试:也称为结构测试。指将软件看成透明的白盒,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。
33
西北工业大学明德学院本科毕业设计论文
7.3 测试流程
软件测试实际上分成四步:单元测试、组装测试、确认测试和系统测试,它们按顺序进行。
(1)单元测试(unit testing),对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。
(2)组装测试(integration testing)是用于装配软件的一种系统化的技术,要在软件装配的同时进行测试。用以发现与接口相联系的问题。目的是将经过单元测试的模块构成一个符合设计要求的软件结构。组装测试技术有自顶向下结合和自底向上结合两种测试方法。本系统工程采用自顶向下结合的测试方法对子系统进行组装测试。在测试过程中没有发现问题。
(3)确认测试(validation testing)是对整个软件进行验收,根据系统分析说明书来考察软件是否满足要求。
(4)系统测试(system testing)是将软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。
7.4 系统测试
根据实际需求进行系统测试,测试用例如下: 测试一:用户登陆信息
对本系统用户登录模块测试情况如表5-1所示。
表5-1 用户登录模块测试用例表 用户名 张三 张三 张san
密码 111111 123457 123
测试结果 正确登录 提示用户名或密码错误 提示用户名或密码错误
测试目的:检查登陆时密码不正确或者是用户名不存在系统是否出现预期设定的操作提示。
预期效果:登陆出现错误时进行报错并提示重写填写。 结果:都出现相应的报错提示。
结论:登陆时信息要全部填写正确才能进行操作。 经过测试,用户登录模块测试成功。 测试二:查询功能测试
测试目的:测试用户是否能进行课表信息的查询。
34
西北工业大学明德学院本科毕业设计论文
预期效果:在用户输入查询条件时,成功将信息从数据库中查出。 结果:用户查询后,页面正确显示了符合条件的查寻信息。 结论:用户查询操作成功,程序运行正常。 测试三:修改个人资料。
测试目的:测试用户是否能修改个人信息。
预测效果:在用户更改个人信息后,更改后的个人信息能成功保存到个结果:执行更改个人信息后,能够成功保存到个人资料中。 结论:更改个人资料成功,程序运行正常。
人资料中。
测试四:管理员登录。
对本系统管理员登录模块测试情况如表5-2所示。
表5-2管理员登录模块测试用例表
用户名 admin admin Adm
密码 333333 123446 123456
测试结果 成功登录 用户名或密码错误 用户名或密码错误
测试目的:测试管理员是否能成功登录。
预测效果:登陆出现错误时进行报错并提示重写填写。 结果:都出现相应的报错信息。
结论:登陆时信息要全部填写正确才能进行操作。 经过测试,管理员登录模块测试成功。 测试五:管理员相应功能测试。
测试目的:测试管理员是否能进行相应的增删改查。 预测效果:增删改查正常
结果:管理员执行相应操作后,均成功。 结论:操作成功,程序运行正常。
7.5 本章小结
软件测试是软件开发中的重中之重,没有一点可以马虎的,在项目管理过程中,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。因为软件测试中考虑的问题基本上是项目管理中需要考虑的问题。具体说,软件测试是事务性的,而项目管理是策略性,一些策略性的东西必须在一些事务性的事务上来实现。
35
西北工业大学明德学院本科毕业设计论文
8 结论
本论文研究内容是基于WEB 的教室管理系统的设计与实现,通过软件工程传统方法学中的快速原型法对系统进行了设计,最终实现了基于B/S模式具有自动排课功能的教室管理系统。
由于论文研究内容主要是自动排课功能的设计,因此论文首先讲述了教室管理的背景现状和排课算法的发展历史;然后对系统的开发实现工具和用到的主要技术进行了介绍接着从用户角度对问题进行定义,再从各个方面对系统的实现进行了可行性分析;最后给出系统的总体设计和数据库设计过程以及排课算法的具体实现方法,并以系统截图的形式对系统的实现进行了介绍。
由于水平有限,对于数据库的操作还不是相当的熟练,有时会出现信息不能及时更新到数据库的问题,导致错误。由于实地考察不够加上时间紧迫,导致功能不够完善。另外在做需求分析的时候,由于考虑欠佳,等到做软件的时候又出现了问题,在返工为时太晚,尽管已经想办法补救,但难免出现漏洞。
本系统实现的主要功能以及存在不足有:
学生登录模块中在问题定义中提到的要求基本都已经实现,可以完成个人课表、教室信息的查询,但由于数据库组织比较简单,因此查询条件单一。
管理员功能模块对问题定义中提到的数据管理的功能基本实现,但未能实现学期末对课程考试的安排功能;排课算法也基本实现,可以对课程进行自动安排,排课所花费时间也可以接受,经过测试,当教室占用率在百分之八十以下时对课程安排的成功率在百分之九十以上。但排课过程以班为最小单位,不能处理一个学生出现在两个授课班级单位中的情况,不能为课程设置排课优先级。
综上所述,系统功能基本实现,但细节处理不够完善,系统功能有待提高。 通过此次课程考试设计,将我所学的C#知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程考试设计不仅让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。不过与其临渊羡鱼,不如退而结网。这次C#课程考试设计给我的最大的收获就是如果让自己有了兴趣,那么任何困难在你的勇气和毅力下都算不得什么。完成了课程考试设计只是一小步,未来的日子还要继续努力。
36