教师档案管理系统毕业设计论文- 联系客服

发布时间 : 星期一 文章教师档案管理系统毕业设计论文- 更新完毕开始阅读1c245753a32d7375a417806e

中北大学2014届毕业设计说明书

5.系统测试

5.1系统测试目的与意义

系统测试是管理信息系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。

系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件,系统测试是正对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。 5.2单元测试的意义

为了很好的完成软件系统的测试任务,我们采用了分层测试的方式,从整体来说做UAT测试的时候我们假设软件系统是一个出厂的产品,最基本的功能都已经实现,这种假设我们通过系统测试来完成,但在做系统测试时,就要假设整个系统的集成运行已经没有问题了,在运行测试或性能测试时,我将不再考虑“系统无法正常运行”这种场景。那么如何保证集成运行没问题呢?我们用集成测试来检验。但是在做集成测试的时候,我们同样要基于一个假定,就是各个模块的功能都能够如期正常工作。而这一点,又是通过模块自身的功能测试来完成的。……这样一层层往下推,每个层次就假设它所依赖的层次没有问题,这样就可以减少很多场景以及由这些场景引出的额外的分支。将原先一个几何级数的测试用例分解成可以接受的若干层次的算术级数的用例。这样一来我们就可以很好的完成测试任务。

而单元测试,正是这些测试的最低层次——保证每个函数/方法,或者说最小功能模块的正确性的一种测试。

如果不进行单元测试,开发人员开发完成代码后,顶多是从他实现功能的角度上

第33页 共42页

中北大学2014届毕业设计说明书

进行一些验证,但这种验证是不全面,无法保证可能会出现的产生无法走通的分支、无法走出的循环以及产生内容泄露的问题,这些问题如果在在单元测试阶段发现的话,很容易查找并修改完成,但是如果在后期系统测试或者是上线以后发现就会产生很大的问题,首先上线后可能会产生生产的事故,其次如果没上线,在大量的代码中去查找分析和修改这些代码会产生很多的成本,甚至发现这样的问题都因为影响非常大而无法修改。 5.3集成测试的意义

集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。

集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。

集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。

所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。一般来说,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。

第34页 共42页

中北大学2014届毕业设计说明书

集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。

集成测试是在单元测试的基础上进行的组装测试,就像积木一样的将各个单元组合成我们所需要的功能,如果不进行集成测试,可能会出现两个功能之间的数据格式不一致、功能无法联通等等一系列的问题,例如:如果有两个功能A和B,A输出的数据是1时表示的是“YES”,输入是2时表示的是”NO”,而B接收后解析缺正好相反,这就产生了问题,这是一个简单的例子,但是又一些集成的问题在后期发现的话,会因为无法集成而需要推翻之前的代码重新编写,就像房子快盖好了发现中间一块钢材有裂缝,必须推倒重新盖一样,需要花费大量的人力和物力。 5.4系统测试的意义

系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。

系统测试的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统\做得怎样?\。这个阶段的测试包含内容较多,除了对于功能的测试外,还包含对系统的性能测试、安全性测试、可靠性测试等非功能测试的内容,是针对整个软件系统是否满足用户功能和性能要求的测试。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

系统测试很明显是开发完成后再进行的一系列的测试,在这个阶段中系统已经基本成型,但是这个成型只是表面上的成型,这个成型的“东西”的东西是否可以使用,满足使用的需求,很明显无法保证,因此才进行这系统测试,如果不进行系统测试,那么系统的存在的很多问题都只能放到用户验收的时候才能发现很解决,但是这很不

第35页 共42页

中北大学2014届毕业设计说明书

现实的,用户在很多情况下只是会根据自己的需求来验收产品,但是很少会全面的去验证这个产品的所有功能,将这样的产品拿来上线,所承担的风险可想而知,可以举个例子,2008北京奥运会官方提出“先到先得”的销售政策刺激公众踊跃提交购票申请,这时,在线网站瞬间访问数据量急剧上升,技术系统应对不畅,官方售票系统叫停。原因是超负荷,官方售票系统的访问流量每小时达100万次,而那一天瞬时每小时达到800万次,1个小时处理15万张,而一启动瞬间达到20万张,从而出现网络堵塞。从这个例子看,网站的性能也隐含潜在危机。这是因为缺乏性能测试,在现实中有很多这样的例子。

系统测试的目的和用户验收测试的目的是完全不同,系统测试除了要验证系统满足业务需求,还需要验证各种情况下系统的处理能力,保证系统在各种情况下不会出现问题,特别是一些特殊的处理,反常规的操作,性能的要求等等,这些情况甚至会产生让系统完全瘫痪的问题。 5.5系统集成测试的意义

系统集成测试在金融业内使用较多,由于金融行业的系统复杂度很高,对某个系统的系统测试完成后,只能保证本系统的功能没有问题,但是金融行业系统关联性非常强,针对这种情况,我们就需要进行系统的测试,保证各个关联系统之间的处理可以畅通,并不会出现系统之间处理出错的问题。

系统集成测试只是针对各种系统错综复杂的系统才需要的一种测试阶段,大多是针对系统之间的串行的功能进行验证,保证系统的功能实现的正确。

针对金融行业这种复杂的系统,如果不进行系统集成测试系统之间的功能将无法保证,会出现这个系统处理完成的工作,而后续的系统根本没有收到,这样会就产生生产的事故了,例如:银行的系统中,在信贷审批系统中进行一笔对公贷款的审批,审批成功后,应到核心系统进行发放这笔贷款,可是由于系统之间的处理产生问题,核心没有收到这笔贷款的信息,那这笔贷款就发放不出,而且就算是后期对账都不会出现问题,如果客户在等待使用这笔贷款来做一笔生意,因为时间原因错失的话,这将产生重大的生产事故,当然这只是来举例,但是这样的事情还是会有发生的。 5.6用户验收测试的意义

用户验收测试也就是我们常说的UAT测试,用户验收也就是使用者在提出产品需求后,验证产品是否满足用户需求的一种测试,一般来说是由客户的业务人员来完成

第36页 共42页