基于javaEE的网上书城系统的实现及研究 联系客服

发布时间 : 星期日 文章基于javaEE的网上书城系统的实现及研究更新完毕开始阅读e93784edd1f34693dbef3e25

第7章 系统的测试与维护

7.1 测试的目标与原则 7.1.1 测试的目标

1979年,Glenford J. Myers在其经典著作《软件测试的技巧》中给出了软件测试的定义:程序测试是为了发现错误而执行程序的过程。他提出软件测试的目的包括以下几点。

(1)测试是程序的执行过程,目的在于发现错误。 (2)测试是为了证明程序有错,而不是证明程序无错。 (3)一个好的测试用例能够发现至今尚未发现的错误。 (4)一个成功的测试是发现了至今尚未发现错误的测试。

可见,测试的目的是力求精心设计出最能暴露出软件问题的测试用例。 早期人们进行软件测试,期望暴露软件中隐藏的错误和缺陷,并且尽可能找出最多的错误。测试不是为了证明程序正确,而是应从软件包含缺陷和故障这个假定去进行测试活动,并从中发现尽可能多的问题。而实现这个目的的关键是如何合理地设计测试用例,在设计测试用例时,要着重考虑那些易于发现程序错误的方法策略与具体数据。

现在人们认识到,测试的最终目的是确保最终交付给用户的产品功能符合用户要求,在产品交付给用户之前发现并改正尽可能多的问题。因此,测试要达到以下一些目标。

(1)确保产品完成了它所承诺或公布的功能,并且用户可以访问到的所有功能都有明确的书面说明。

(2)确保产品满足性能和效率的要求。 (3)确保产品是健壮的和适应用户环境的。

总之,测试的目的是系统地找出软件中潜在的各种错误和缺陷,并能够证明软件的功能和性能与需求说明相符合。需要注意的是,测试不能表明软件中不存在错误,它只能说明软件中存在错误。

33

7.1.2 测试的原则

软件产品不同于一般产品,它有其自身的特点,软件过程也与一般的产品生产线有着天壤之别。这种特性决定了软件测试有自己的组织和实现方式,那么对软件测试都有什么要求呢?随着对软件过程的持续研究和认识的不断加深,人们对软件测试的理解与日俱增,总结出以下指导性测试经验和原则。

(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。坚持在软件开发的各个阶段进行技术评审,这样才能在开发过程中尽早发现和预防错误,杜绝某些隐患,提高软件质量。

(2)测试用例应由输入数据和与之对应的预期输出结果两部分组成。如果对输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。

(3)程序员应避免检查自己的程序。如果由别人来测试自己编写的程序,可能会更客观、更有效,并更容易取得成功。

(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。合理的输入条件是指能验证程序正确的输入条件,而不合理的输入条件是指异常的、临界的、可能引起问题的输入条件。用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的问题和错误。对于不合理的输入条件或数据,程序接受后应给出相应的提示。

(5)充分注意测试中的群集现象。测试时不要以为找到几个错误,就认为问题已得到全面解决而无需继续测试了。应当对错误群集出现的程序段进行重点测试,以提高测试投资的效益。

(6)严格执行测试计划,排除测试的随意性。对于测试计划,要明确规定,不要随意解释。

(7)应当对每一个测试结果进行全面检查。这是一条最基本的原则,但常常被忽略。必须明确定义预期的输出结果,仔细分析、检查实测的结果,抓住关键,暴露错误。

(8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

34

7.2 测试的方法

软件测试的方法很多,根据程序是否运行可以把软件测试方法分为静态测试和动态测试,按照测试数据的设计依据可分为黑盒测试和百合测试。本系统采用的是黑盒测试,也称功能测试,下面是关于黑盒测试的介绍及为本系统设计的测试用例。

7.2.1 黑盒测试

黑盒测试是一种从用户观点出发的测试,用这种方法进行测试时,被测程序被认为是一个打不开的黑盒子,在不考虑程序内部结构和内部特征,测试者只知道该程序输入和输出之间的关系或程序功能的情况下,依靠功能需求规格说明书来确定测试用例和推测测试结果的正确性。

黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试,它作为软件功能的测试手段,是重要的测试方法,它有下面两个显著的特点。

(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。

(2)黑盒测试用例的设计可以和软件实现同时进行,这样可以压缩开发时间。

7.2.2 测试用例的设计

用例1:当管理员登录时,如果用户名或者密码有一项为空或者错误,系统是否给出预先设定的提示。

具体操作:用户名、密码其中一项为空或者填写错误。

结果:当用户名填写错误时,系统会提示无此用户的错误提示;当用户名或密码为空时,系统会提示请输入用户名或密码;当密码错误时,系统会提示用户名或密码错误。都出现了相应的错误原因的信息提示。

结论:管理员登录时,需要管理员填写正确的用户名和密码,才能够进入管理页面。

用例2:管理员删除任意注册用户,再让其登录,是否能成功登录。

35

具体操作:管理员删除会员表中的某个用户,该用户在前台进行登录。 结果:当管理员将某个用户删除时,该用户在前台登录服务器,系统将提示无此用户的信息。

结论:用户数据删除功能正常。

用例3:管理员删除任意图书的信息,而后在前台按关键字查询,看是否能够找到对应的图书信息。

具体操作:在图书管理页面中,点击图书类别查询,修改或删除任意图书的信息,之后在前台查找该图书。

结果:管理员在后台删除该图书的所有信息后,前台搜索该书,无法搜索到与该书相对应的信息。

结论:管理员删除图书信息的功能是正常的。

用例4:管理员修改任意图书的信息,而后在前台查找该书,查看该书的被修改的信息是否得到修改。

具体操作:在图书管理页面中,选中一本书,点击修改按钮,修改某项信息,如:图书的简介。修改后点击提交按钮,然后返回前台,搜索该书,查看该书的简介内容是否改变。

结果:在后台所修改的简介内容已修改。 结论:管理员修改图书的信息功能正常。

用例5:在前台用户浏览页面中,用户按类别浏览图书,系统能否调出该类别的所有图书。

具体操作:进入前台页面,点击分类浏览,如选择查看农业类别的书籍。 结果:系统自动跳转到该类别目录下,向用户显示所有该类别的图书。 结论:分类浏览功能正常。

7.3 系统维护

系统维护就是指在软件产品已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。可以通过描述软件交付使用后可能进行的4项活动,即改正性维护、适应性维护、完善性维护和预防性维护,将软件维护的内容定义为4种类型。

36