城市公交查询系统的设计与实现(六)

43 篇文章 0 订阅
43 篇文章 0 订阅

目录

6  系统测试

6.1  程序测试

6.2  测试的重要性及目的

6.3  测试的步骤

6.4  测试的主要内容

6.4.1  功能测试

6.4.2  可用性测试

6.4.3  性能测试

6.5   测试结论

总结与展望

参考文献


前面内容请移步

城市公交查询系统的设计与实现(五)

相关免费资源:毕业设计+论文

城市公交查询系统:毕业设计&论文

6  系统测试

6.1  程序测试

        网站测试是软件设计的最后一道工序,也是非常重要的一步。用于检查软件的质量、性能、可靠性等是否符合用户需求。一套严谨的、规范的、完善的测试过程将大大提高软件的质量、可信度、可靠性,降低软件的出错率,降低用户风险系数。通常网站测试包括:功能测试,安全测试,可用性测试,性能测试、兼容性测试等方面。

        在系统设计的过程中,这是必然的,存在一些错误。对于错误的语言和语法,程序在运行时,会自动提示你错的地方,并请求立即修改,所以,这样类型的错误是比较容易发现和纠正的。但另一类错误是在程序执行时由于不正确的操作,或是导致的错误结果的对某些数据的计算公式的逻辑错误。这类错误隐蔽性很强,时而出现,因此,这是非常耗时费力的,对这一类动态发生的错误的排查。

        软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

        为了使本软件运行更加稳定,我对它进行了全面的测试,其中测试分为二部分,一种是界面测试;另一种功能测试。

        首先我们来说界面测试,界面测试是为了使程序在不同的的操作平台上能够运行界面,并且能够保持原来的风格。经测试程序运行正常,运行界面上的字体图片等设置都能够保持得非常好。不出现字体变形等情况。

        其次进行功能测试。该系统测试采用的是单元测试,集成测试,完善性测试等多种方式进行测试。

        经过测试,所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。

6.2  测试的重要性及目的

(1)测试的重要性

        系统测试是开发一个管理信息周期中非常重要而且漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的重要关口,是对整个系统开发过程的最终审查。

        系统测试的主要任务是尽可能的检查出程序中的错误,提高系统的可靠性,主要的目的是位列检验系统“做得如何”。其中这一阶段又可以分为三个步骤:模块测试;组装测试;确认测试;通过测试整个管理系统来确定能不能够满足用户的需求。通过测试发现问题以后,我们要经过不断的调试找出错误具体原因和位置,然后对其进行修改。

        系统开发完成后就需要进行系统测试,测试在一个软件的开发过程中是非常重要的,其意义在于:

        1.发现软件错误;

        2.有效定义和实现软件成分由低到高层的组装过程;

        3.验证软件是否满足任务书和系统定义文档所规定的技术要求

        4.为软件质量模型的建立提供依据。

(2)测试的目的

        Grenford J.Myers曾对软件测试的目的提出过以下观点:

        1.测试是为了更好的找出程序中存在的问题、错误。

        2.好的测试方案是很有可能是到现在为止仍然未被发现的错误的测试方案。

        3.成功的测试则是找出了至今仍然没有被发现的错误的测试。

        4.测试并不单纯是为了找出错误。而是通过分析错误,来找出产生错误的原因,来避免发生错误,帮助程序员找出软件开发过程中的缺陷,以便及时进项改正。

        5、测试是为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。

6.3  测试的步骤

        就像开发过程,测试过程中要完成的一步一步的逻辑上的每一步都是在继续之前的一个步骤。由许多个子系统是大型软件系统,并且多个包括各子系统模块的。因此,一个软件系统的测试基本上由以下步骤组成:

(1)测试模块,编码和详细设计错误往往在本测试程序中找到。

(2)在此测试步骤中遇到的测试系统的软件错误的设计,规范的要求的错误也可以找到。

(3)系统需求规格说明书的错误也是在这个测试程序进行验收测试发现。

        在我们设计软件的过程中,测试系统常用的测试方法主要有两种:功能测试和结构测试。

        功能测试也被叫做黑盒测试和数据驱动测试,是在已经知道系统应该具有的具体功能的情况下,通过黑盒测试来测试系统功能是不是能够正常运行。在测试时,将系统当做不能打开的盒子,在不管系统内部结构与特性的状况下进行测试,它只检查系统功能是不是根据系统说明书的规定正常运行的,同时检测系统是否能正确接收的输入信息和输出信息的正确对应,并保持系统的完整性的外部信息需求。

        白盒测试与黑盒测试相反,它了解系统内部工作的各项具体程序,能够通过测试来检查系统内部的运行是不是按照系统说明书的规定进行正常运作的,因此,白盒测试又被叫做结构测试和逻辑驱动测试。根据测试程序的结构在每个道路试验,当系统运行时不是能按预定要求正确运行,无论其功能如,白盒测试试验,道路试验是一个逻辑驱动器,这种测试主要用来软件测验。

        首先我们来说界面测试,界面测试是为了使程序在不同的的操作平台上能够运行界面,并且能够保持原来的风格。我把完整程序拷贝到不同版本的电脑平台环境下,程序运行正常,运行界面上的字体、图片等设置都能够保持得非常好。不出现字体变形等情况。

        其次进行功能测试和性能测试,功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。 

        系统性能测试主要是通过模拟系统运行环境,测试系统性能是否符合客户的需求。性能测试的重要技术指标是:系统的运行速度、系统响应的时间和支持并发节点数。

        最后进行系统的可用性测试,可用性测试用于检测系统的可理解性、可操作性和学习性等方面内容。

6.4  测试的主要内容

        测试过程分为哪会保证测试,即质量几个阶段:代码审查,单元测试,集成测试,确认测试和系统测试。

(1)单元测试

        集中在一个小软件单元设计审查 - 模块是一个测试单元,意识和定义模块的功能实际发现,这种情况不符合测试说明和编码错误。

(2)集成测试

        集成测试模块安装在根据进行集成测试的设计要求,其主要目的是为了发现问题相关的接口。例如有可能是一个问题,由于疏忽,与其他模块的模块,并造成有害影响;不能产生所需的功能键,组合功能;看起来可以接受的个别错误是不可接受的,当积累;可能有错误,如整个数据结构。

(3)确认测试

        该试验的目的是验证,该系统能够工作如期,根据需要,以显示未来的用户。集成测试后,已经把一个完整的软件系统,设计按照完成安装的所有模块,从根本上推动问题接口错误的,那么软件的有效性将能够得到进一步的确认,试验工作证实,它是功能和软件的性能,如用户所期望的。

(4)系统测试 

        在软件开发完成后,并且系统将最终在包的其它部分,在​​测试系统上执行。包括恢复测试,安全性测试,强度测试和性能测试。

系统测试主要从以下几个方面:

        ①功能测​​试:测试满足发展的需要,旨在提供这里所描述的功能,用户需求是否得到满足。功能测试是测试最常用的系统和强制性测试和正式的规格通常是标准的软​​件测试。

        ②强度测试和性能测试:该测试系统的最大实际程度的能力,即在某些情况下,负载的软件功能进行。

        ③安全测试:验证内置到系统中的保护机制,它可以保护系统,所以从很不安。该系统主要是针对权限对系统进行测试,并为void仅仅是数据,错误的数据和测试数据的非法干扰的能力。

6.4.1  功能测试

        功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。 

        本系统功能测试如表6-1所示:

表6-1  系统功能测试

测试内容

测试结果

适用性

准确性

可操作性

依从性

安全性

        本系统功能测试测试用例6-2所示:

表6-2  系统功能测试用例

测试标识

测试项目

测试用例输入及说明

预期结果

测试记录

用户管理模块功能点

新增用户

系统管理员单击”新增”按钮

成功进入到新增用户界面

测试通过

用户管理模块功能点

登录全部置空

令所有文本框为空

提示(请输入账号密码)

测试通过

用户管理模块功能点

提交新增用户信息

在新增用户界面输入有效数据并点击提交按钮

显示注册成功

测试通过

用户管理模块功能点

删除用户

在界面上点击要删除的用户,并点击删除按钮

删除成功,并退回到用户管理界面

测试通过

用户管理模块功能点

编辑用户

系统管理员单击”编辑”按钮

成功进入到编辑用户界面

测试通过

公告管理模块功能点

新增公告

系统管理员单击”添加”按钮

成功进入到新增公告界面

测试通过

公告管理模块功能点

全部置空

令所有文本框为空

提示(标题不能为空)

测试通过

公告管理模块功能点

提交新增公告信息

在添加公告界面,点击保存

添加成功后跳转到公告界面

测试通过

公告管理模块功能点

删除公告

系统管理员点击删除公告并点击删除键

显示删除成功并跳转到公告界面

测试通过

线路维护模块功能点

新增线路

系统管理员单击”添加”按钮

成功进入到添加线路界面

测试通过

线路维护模块功能点

全部置空

令所有文本框为空

提示(线路名称不能为空)

测试通过

线路维护模块功能点

提交新增线路信息

在新增线路输入有效数据并点保存

添加成功后跳转到线路维护界面

测试通过

线路维护模块功能点

编辑线路

系统管理员单击”编辑”按钮

成功进入到编辑线路界面

测试通过

题目管理模块功能点

删除线路

点击删除的线路再点击删除按钮

显示删除成功

测试通过

会员提问模块功能点

查看问题

点击查看按钮

成功查看问题

测试通过

会员提问模块功能点

回复问题

点击查看问题并参与回复

成功增加回复内容

测试通过

6.4.2  可用性测试

        可用性测试用于检测网站的可理解性、可操作性和学习性等方面内容。具体测试方面如表6-3所示。

表6-3 网站可用性测试

测试项

测试人员的评价

窗口移动、改变大小、关闭等操作是否正常

操作模块是否友好

模块和提示内容等文字描述是否正确

模块布局是否合理、协调

模块的状态是否正确(对选中项能否发生对应切换)

键盘、鼠标操作是否支持

所需的数据项是否正确显示

操作流程是否合理

是否提供帮助信息

6.4.3  性能测试

        系统的性能测试主要是通过模拟网站运行环境,测试网站性能是否符合客户的需求。性能测试的重要技术指标是:网站的运行速度、网络响应的时间和支持并发节点数。

(1)测试网站的运行速度:通过在不同的计算机上进行试运行本网站,没有发现任何停顿、迟滞现象。

(2)测试网络响应时间:网络响应时间主要包括:网络最小响应时间、平均响应时间和最大响应时间这三个参数。经过测试,在网络运营良好状态下,局域网内响应时间三参数为:1/2/5s,外网响应时间三参数为3/7/12s,符合客户的需求,属于在用户的心理可承受范围内。

(3)支持并发节点数:经过模拟的环境测试,本网站在并发节点达到45个时,网络运营的速度会发生比较大的波动,延迟时间10秒左右,符合客户需求。

6.5   测试结论

        由于自己独立写的项目不多,考虑问题肯定会不周全,存在很多的难以预料的问题,写的功能有时候也难以满足用户需求,代码和接口也会出现很多问题,不规范的书写习惯,都会导致项目不无法达到用户的目标,无法让用户放心的使用,用户体验效果差。正是因为这样所有的项目在交付用户使用之前,必须经过专业技术人员的测试,一个好的项目需要不断的打磨,需要不断的反馈意见,不断地再加工,才能设计出符合用户要求,用户体验良好的项目。测试的技术人员,需要根据项目设计的人员制作的项目文档,对用户要求的各个功能进行测试并根据测试结果编写好测试的文档,在经过这一系列的工作后,可以有效的规避因设计人员在设计过程中的小纰漏,提升项目的质量,最终交付给用户一个完美的作品。

        本系统设计要求基本都可以达到,此系统具有完整的软件功能,良好的用户界面,能够正确的处理错误信息,而且能够准确的提出错误的种类。总体说来,软件通过测试。

        经过对上述的测试结果分析,本系统满足用户的通过计算机平台用户使用的要求和需求。所有基本功能齐全,操作简单,产品运行性能良好,是一个值得推广的公交查询系统。

总结与展望

        本此毕业的内容所实现的是城市公交查询系统的设计与实现,主要介绍了java与jsp技术。本设计按照以下五个步骤对此项目进行设计:1.需求分析,2.概要设计,3.后台数据库的实现,4.项目的详细设计,5.系统的测试,当下此系统的基本功能已得到实现。从3月份开始准备资料到5月份基本完成了项目的设计,要是想很好的完成这个项目,使它运用到生活中是远远不够的,还需要不断地用户反馈,不断修改,不断地充实,我也将会在今后的学习中,不断的完善它,改进它,使其更好。

本系统具有以下优点:

        1、该系统可以运行在多个操作系统平台(Windows NT和Windows 2000 / Windows XP和Windows Vista)数据库管理系统采用MySQL和Java开发环境,可移植性好。

        2、该系统界面简单,操作方便,容易进入的信息,人们使用的术语。

但也存在以下缺点:

        1、界面跳转复杂,接口不能被刷新,可以改进。

        2、功能比较简单,没有进一步提高一些选修的程序等,不能更好的为用户提供更强大的功能服务。

        3、数据库设计有冗余,需要进一步优化。

        毕业设计的选题是在老师的指导下最终确立的,选题确定好后就开始学习这方面的资料进行学习,开始在这方面可以说是不熟悉的,虽然最初学习JSP技术,但学校学习的东西如果没有运用到实际的设计中终究是不行的,以前都是老师带领我们做,第一次做难免会怯场,但是最终通过自己的努力,老师的指导,同学的帮助,完成了本系统的设计。

        本次毕业设计已基本画上句号,在整个设计的道路上是劳动和汗水凝结的成果。为了解决一丢点的困难,我翻阅书籍,询问老师,与同学探讨,从不懂到熟知也是一个新的经验和新的收获的过程。学习是一个长期的过程,系统设计过程中,遇到了很多问题,后来通过自己的努力来解决大部分问题,但同时也学到了很多知识。通过这次毕业设计,我从最初的Java语言,和后来的Web开发学会了很多,然后在训练过程中,通过所学到的知识应用到实际发展实践中,最后到​​软件功能集成的整个设计过程的思想。

        该系统在实施过程中也常遇到一些困难,毕竟,JSP技术的掌握不熟练,有许多控件不能真正明白他们的意思,有一个对象调用的一些方法,并不十分了解,美化界面处理不好。所以开始的设计真的遇到了许多困难,但通过和老师同学的帮助以及在线学习,解决设计中的许多问题,但也使我有了一定的JSP技术的掌握,同时巩固了以前学过的知识。实现了质的上升,在一个纯粹的理论学习到实际上手再向完成毕业设计前进,理论联系实际情况,是学术认知的另一次跃进。

        总之,本毕业让我学的东西,不仅仅是专业知识增加了很多,也锻炼了我的意志,让我更坚强。走软件开发这条路线,就要不断学习新知识,不断提高自己的实力,也要不断的树立新的目标,也需要是精神上不怕吃苦。

参考文献

  1. 汪光焘.畅通城市交通,实现城市的可持续发展.可持续发展,2002,(2):18-19
  2. 马武定.城市化与城市可持续发展的基本问题.城市规划汇刊,2002,(2):7-9
  3. 冯博.SQL实用教程.北京:人民邮电出版社,2005
  4. 严蔚敏,吴伟明.数据结构(c语言版).北京清华大学出版社,1997
  5. 张海藩.软件工程.北京:人民邮电出版社,2002
  6. 黄斯伟.HTML完全使用详解.北京:人民邮电出版社,2005
  7. Anthony J.Dos Reis. Compiler  Construction Using Java,JavaCC,and Yacc. Wiley-IEEE Computer Society Pr; 1 ,  2011
  8. Joan Casteel. Oracle 12c:SQL. Course Technology; 3, 2015
  9. Richard North Patterson. Eclipse. Pan Publishing, 2009
  10. 李兴华,王月清.名师讲坛:Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax) [平装][M].清华大学出版社,2010.
  11. 李刚.轻量级Java EE企业应用实战(第3版):Struts 2+Spring 3+Hibernate整合开发[M].电子工业出版社,2012.
  12. 孙卫琴:《精通Hibernate:Java对象持久化技术详解》[M].电子工业出版社出版,2010.
  13. Budi Kurniawan (作者),崔毅 (译者),俞哲皆 (译者),俞黎敏 (译者).Servlet和JSP学习指南[M].机械工业出版社,2013.
  14. 陆舟.Struts2技术内幕:深入解析Struts2架构设计与实现原理 [M].机械工业出版社,2012.
  15. 陈亚辉,缪勇.Struts2+Spring+Hibernate框架技术与项目实战[M].清华大学出版社,2012.
  16. 施瓦茨 (Baron Schwartz),扎伊采夫 (Peter Zaitsev),特卡琴科 (Vadim Tkachenko),宁海元.高性能MySQL(第3版)[M].电子工业出版社,2013.
  17. 薛华成.信息管理与信息系统专业教材系列:管理信息系统(第6版)[M].清华大学出版社,2012.
  18. 王颖.基于JSP的学生学籍信息管理系统的设计与实现[J].电子科技大学,2012.
  19. 朱丽萍.基于JSP的高校图书管理系统开发和实现[J].电子科技大学,2011.
  20. 吕勇.基于JSP的实验室项目管理系统的设计与实现[J].武汉理工大学,2012.
  21. 庞丽娜.Java 应用开发技术详解[M],科学出版社,2007:126-235
  22. Cay S.Horstmann,Gary Cornell著,叶乃文,邝劲筠,杜永萍.JAVA核心技术卷I:基础知识,程序设计教程[M].人民邮电出版社,2008.5:87-234
  23. 张超.基于JSP Struts2技术的房地产信息管理系统的设计与实现[D].吉林大学,2012.
  24. (美)Powell.R. (美)Weeks.R.著. 袁鹏飞译. C#和.NET架构. 北京:人民邮电出版社,2002.4 17
  25. 萨师煊,王珊.数据库系统概论(第三版).北京:高等教育出版社,2000.2

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着经济的飞速发展,汽车越来越多,城市的道路建设远赶不上城市化进程的加快,交通拥堵已成为制约城市发展的重要问题之一。城市公共交通覆盖面广、经济快捷。为了缓解交通压力,必须大力发展公共交通,提高公交服务水平,鼓励和吸引市民选择乘坐公交出行,从而改善交通状况。为此我们设计开发了基于Web的公交查询系统,为乘客出行提供详细全面的信息,进一步提高公交的服务水平。 本文从乘客的角度出发,研究了乘客的出行行为,对公交查询系统进行了需求分析;从系统开发环境、系统目标、设计流程、功能设计、模块设计和数据库设计方面进行系统的总体设计;通过抽象公交网络中的站点和线路,建立了公交网络数学模型,讨论了公交网络的最优路径算法,并在此基础上详细介绍了在三种不同目标情况下适合公交查询的最优路径算法;在需求分析、总体设计和基于网络路径最优的公交查询算法探讨基础上,对查询系统进行了详细设计,并成功将三种网络路径算法应用于系统的换乘查询中,系统实现了线网维护、线路查询、站点查询和标志性地点查询的功能,最后利用武汉市25条线路和400个站点的实验数据,对系统的功能进行了测试,并对公交网络路径的算法时间和查询结果进行了分析。实验证明该系统界面友好、功能完善。
c++城市公交查询系统 1.设有一文件对象in_file,若在while循环中用in_file>> 每次从文件中得到一个字符串直到文件结束, 如果用in_file直接来判断文件是否结束, 则文件末的那个字符串会得到两次。 而用文件in_file.eof()来判断则会得到正确的结果。 2.用delete []释放字符串空间时,老是有问题, 其中的原因之一是你原来申请的空间不够大, 后来往这个空间中放了过多的内容以至越界, 这时候会发生运行时的错误。 3.把一个对象作为参数传给另一个对象的成员函数时, 程序不能正常结束,即系统删除对象时有问题; 而使用指针或者引用传递参数时不仅不会出现问题, 而且可以人为的删除对象。 我个人认为这很有可能是值传递的原因, 当把一个对象作为实参传给一个函数时,函数形参拷贝了实参的值, 这时,如果对象有指针成员,那么形参的指针成员的值和 实参的指针成员的值将完全一样, 即它们指向的是同一块内存,所以当函数调用结束的时候, 函数的形参将会被系统撤消, 这时,形参调用析构函数,释放用new动态申请的内存。在函数的外面, 作为实参的对象的指针成员其实已经被撤消了,所以当程序结束, 系统撤消这个对象时,这个对象又要调用析构函数来释放指针成员, 但这时指针其实已经指向了非法的空间,导致出错。 bus 文件夹的内容记录的是每条线路的信息,对应于bus 类。 每个文件以线路名称(即车名,忽略前面的k)命名。 每个文件的内容组织如下:(共分为6行,以回车键作为行结束标志) 第一行为“线路名称:#### ”,其中####用具体的线路名称代替; 第二行为“上行站点:####”。 第三行为“下行站点:####”。 第四行为“首班车时间:####”。 第五行为“末班车时间:####”。 第行为“票价:####”。 注:若不分“上行站点”和“下行站点”, 则第二行为“站点名称:####”, 第三行为空行;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值