3 、测试计划
3.1 测试工作准备
为保证项目的质量,xxxxxxxxxxx将成立专门的项目测试小组,在项目经理的统一领导之下,完成本次项目的测试工作,首先,在项目开始时,测试小组要完成测试的准备工作,测试准备工作的重点主要包括以下几个主要方面:
对整个项目情况进行调研与了解,以熟悉整个系统的整体架构和实现功能等相关情况,制定出初步的测试计划;
确定测试管理工具的实施方案,对测试管理工具根据项目的特点进行合理规划;包括根据各个项目子系统的特点,制定相应的缺陷跟踪方案、版本提交计划等。
保证测试人员的到位,并对测试人员进行测试管理工具和测试相关基础技术的培训,要求相关系统测试人员先进行相关系统体系结构和功能的了解,为后期的设计测试用例奠定基础。
3.2 软件开发测试
本项目采用的测试种类包括:模块测试、功能测试、性能测试、分系统测试、全系统测试、容量测试、压力测试、灾难恢复测试等。
在进行测试前,需要编写详实的测试方案,其中包括测试时间安排、测试准则、测试用例、测试范围、测试目标、测试人员、出错处理流程及处理结果等内容。在测试案例中应包含对异常情况处理的测试,如数据不全、数据类别有误、数据不合法等。
各种类型的测试都是采用循环往复的“测试-改进”操作,以确保问题得到完整、充分的解决的过程。
26
3.2.1 模块测试
每个应用程序模块完成后,进行模块测试。模块测试的目的在于通过大量、反复的测试,尽可能地捕获程序编写时的编码及应用处理上的错误,并加以改正,使程序编写时的错误在这一测试环节得到控制。
3.2.2 功能测试
功能测试是对项目实现的功能进行测试。功能测试可细分为:独立测试和连续测试两部分。
独立测试是将本项目开发实现的功能一一进行独立测试。在测试过程中,将针对每一个功能制定相应的测试个案,进行严格的功能测试。如测试结果与实现要求不符,将由开发人员进行改进及完善,最终达到功能要求。
测试中发生问题时,编程人员会改动程序以便解决问题。系统将在修改后进行重新测试。此时其进行的测试不仅针对改动部分,还应对原已通过独立测试的部分进行重新测试。
3.2.3 性能测试
系统的性能是一个很重要的参数,本项目所指的系统性能包括系统的效率、响应时间及处理能力。在测试中,为每个应用设置响应时间、处理速度量度,评估系统的最高处理能力,在发现系统的性能不满足要求进,需进行相应措施对系统的性能进行调整。
3.2.4 分系统测试
针对各个分系统,根据不同的测试方案,按照测试方案中的测试步骤进行测试,进行测试结果分析,得出测试结论,对分系统的配置给出建议意见。
最终对每一个分系统做出一个分系统测试报告,主要内容为测试结果,结果分析,建议。对系统功能、性能、安全、可靠和扩展等每一方面都需有明确的结论和意见。
27
3.2.5 全系统测试
在分系统测试完毕的基础上,对整个硬件平台进行测试,主要针对各分系统的结合部,以及总体功能。与分系统测试方案一样,全系统测试也是根据测试方案按照测试方案中的测试步骤进行,最终做出系统测试报告,主要包含:系统功能、性能、安全、可靠和扩展等各个方面能否达到设计要求的结论,出现问题,建议解决问题方案。
3.2.6 容量测试
项目在投产前,建议进行容量测试,以找出项目投产后可处理的最大处理容量,确保能够平滑地过渡或避开业务处理高峰期。与此同时,通过对业务处理高峰期时系统硬件资源情况的占有量的获取,能够有效地调配系统资源。
通过容量测试,得知系统承载量,并结合业务发展增长量,可以推算出需要更换相关硬件的时间,以便用户可以提前做好应对准备。
3.2.7 压力测试
压力测试的目的是希望能够通过测试,得知在极短时间内对网站进行大量并发访问,是否会对系统造成瞬间无法承受的压力冲击,致使其运行异常甚至崩溃。压力测试可以获知系统的耐压程度,在必要时采取适当的紧急防护措施,如控制、分散等措施,减低缓解系统瞬间压力,防止尖峰时刻的出现,使系统得以稳定地运行。
3.2.8 灾难恢复测试
灾难恢复测试是指在模拟灾难事故发生的情况下,对系统的恢复情况进行测试及彩排。要尽可能地找出可能发生的灾难性事故,并一一进行模拟,查看系统的恢复情况。灾难恢复测试能够反映出系统备份的准确性及完整性,以及自动恢复功能的强弱,出具不同灾难恢复所需的时间数据,以此可以估算出在灾难发生时对用户所造成的影响及忍受程度。
28
3.3 设计测试用例和数据
测试用例和数据准备的目的是帮助用户在不熟悉实际环境的时候,能正常的测试系统并对系统做出正确的评价。
测试用例和数据的准备是一项枯燥和费时间的工作。为了提高工作效率可以从以下几方面着手:
将信息放在一个指定的位置,便于反复利用,降低变化产生的影响; 一次完成一个步骤,避免冗余和额外的工作; 尽早尽可能完成多个步骤。
为了保证每一个业务流程准备测试用例和数据的正确性,在测试计划中应遵循下列过程,并完成以下步骤:
确定要测试的业务情况类型 确定每个要求的测试用例
合并所有的测试用例,生成测试大纲
编制测试脚本,包括必要的系统输入信息和期望的输出结果
检查信息保证每一步的准确性和完整性(即,确定业务情况类型、确定测试用例、生成测试大纲和编制测试脚本)。
3.3.1 建立测试环境
为了预防出现问题,如数据损坏或对系统资源的争用,需要建立一个独立的测试环境。在进行测试之前,根据测试计划中确定的时机建立一个独立的测试环境。其准备工作包括:
技术活动:如建立不同的服务器或在一台服务器上建立多个数据库实例,将相应的程序迁移到适当的程序库中;
数据准备活动:包括加载数据表,建立用户访问权限; 建立版本控制程序,保证有效的控制对系统的修改;
建立文档控制程序,保证随着系统的修改,有效地控制文档的修改(如,培训文档、联机帮助和用户手册)。
29
3.3.2 测试执行
测试执行的目的是发现不满足用户要求的任何问题,在真实的环境中,客户的工作人员按照准备好的测试大纲来对系统进行测试。
测试过程中的测试结果是非常重要的。文档可用于: 检查测试的进度;
确定测试过程是否需要改进;分析系统是否准备就绪。
30