项目开发单位:息技术有限公司项目使用单位:项目测试单位:技术有限公司测试计划(仅供内部使用)拟制人:日期:2009-10-20审核人:日期:2009-10-20批准人:日期:2009-10-20修订历史记录日期版本说明作者2009-10-20V9.82目录1.简介41.1目的41.2背景41.3范围41.4参考文档52.测试需求63.测试策略73.1测试类型73.1.1数据和数据库完整性测试73.1.2功能测试73.1.3业务周期测试93.1.4用户界面测试103.1.5性能评价113.1.6负载测试123.1.7强度测试133.1.8容量测试143.1.9安全性和访问控制测试153.1.10故障转移和恢复测试163.1.11配置测试183.1.12安装测试193.2工具204.资源214.1角色214.2系统235.项目里程碑及风险分析246.可交付工件256.1测试文档256.2测试日志256.3缺陷报告及处理257.测试管理及任务267.1接收测试的条件267.2测试时间安排267.3测试过程控制267.4测试评审与通过标准26错误!未指定书签。1.简介1.1目的错误!未指定书签。的这一“测试计划”文档有助于实现以下目标:•[确定现有项目的信息和应测试的软件构件。•列出推荐的测试需求。•推荐可采用的测试策略,并对这些策略加以说明。•确定所需的资源,并对测试的工作量进行估计。•列出测试项目的可交付元素。•明确测试管理过程及测试任务]1.2背景[输入测试对象(组件、应用程序、系统等)及其目标的的简要说明。需要包括的信息有:主要的功能和特性、测试对象的构架以及项目的简史。]1.3范围[描述测试的各个阶段,例如:单元测试、集成测试或系统测试,并说明本计划所针对的测试类型(如功能测试或性能测试)。简要地列出测试对象中将接受测试或将不接受测试的那些特性和功能。如果在编写此文档的过程中作出的某些假设可能会影响测试设计、开发或实施,则列出所有这些假设。列出可能会影响测试设计、开发或实施的所有风险或意外事件。列出可能会影响测试设计、开发或实施的所有约束。]1.4参考文档下表列出了制定测试计划所用的文档,并标明了文档的可用性:[注:可以视情况删除或添加项目。]文档(版本/日期)已创建或可用已被接受或已经过复审作者或来源备注需求规约是否是否功能性规约是否是否用例报告是否是否项目计划是否是否设计规约是否是否原型是否是否用户手册是否是否业务模型或业务流程是否是否数据模型或数据流是否是否业务功能和业务规则是否是否项目或业务风险评估是否是否2.测试需求下面列出了那些已被确定为测试对象的项目(用例、功能性需求和非功能性需求)。此列表说明了测试的对象。[在此处输入一个主要测试需求的高层次列表。]3.测试策略[测试策略提供了推荐用于测试对象的方法。上一节“测试需求”中说明了将要测试哪些对象,而本节则要说明如何对测试对象进行测试。对于每种测试,都应提供测试说明,并解释其实施和执行的原因。如果不实施和执行某种测试,则应该用一句话加以说明,并陈述这样做的理由。例如,“将不实施和执行该测试。。该测试不合适。”制定测试策略时所考虑的主要事项有:将要使用的方法以及判断测试何时完成的标准。下面列出了在进行每项测试时需考虑的事项,除此之外,测试还只应在安全的环境中使用已知的、受控的数据库来执行,可按实际需要进行删减。]3.1测试类型3.1.1数据和数据库完整性测试[数据库和数据库进程应作为项目名称中的子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支持以下测试的工具和方法。]测试目标:[确保数据库访问方法和进程正常运行,数据不会遭到损坏。]方法:[调用各个数据库访问方法和进程,并在其中填充有效的和无效的数据或对数据的请求。检查数据库,确保数据已按预期的方式填充,并且所有数据库事件都按正常方式出现;或者检查所返回的数据,确保为正当的理由检索到了正确的数据]完成标准:[所有的数据库访问方法和进程都按照设计的方式运行,数据没有遭到损坏。]需考虑的特殊事项:[测试可能需要DBMS开发环境或驱动程序以便在数据库中直接输入或修改数据。进程应该以手工方式调用。应使用小型或最小的数据库(其中的记录数很有限)来使所有无法接受的事件具有更大的可见性。]3.1.2功能测试[测试对象的功能测试应该侧重于可以被直接追踪到用例或业务功能和业务规则的所有测试需求。这些测试的目标在于核实能否正确地接受、处理和检索数据以及业务规则是否正确实施。这种类型的测试基于黑盒方法,即通过图形用户界面(GUI)与应用程序交互并分析输出结果来验证应用程序及其内部进程。以下列出的是每个应用程序推荐的测试方法概要:]测试目标:[确保测试对象的功能正常,其中包括导航、数据输入、处理和检索等。]方法:[利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:在使用有效数据时得到预期的结果。在使用无效数据时显示相应的错误消息或警告消息。各业务规则都得到了正确的应用。]完成标准:[所计划的测试已全部执行。所发现的缺陷已全部解决。]需考虑的特殊事项:[确定或说明那些将对功能测试的实施和执行造成影响的事项或因素(内部的或外部的)]3.1.3业务周期测试[业务周期测试应模拟在一段时间内对错误!未指定书签。执行的活动。应先确定一段时间(例如一年),然后执行将在该时段内发生的事务和活动。这种测试包括所有的每日、每周和每月的周期,以及所有与日期相关的事件(如备忘录)。]测试目标[确保测试对象及后台进程都按照所要求的业务模型和时间表正确运行。]方法:[通过执行以下活动,测试将模拟若干个业务周期:将修改或增强对测试对象进行的功能测试,以增加每项功能的执行次数,从而在指定的时段内模拟若干个不同的用户。将使用有效的和无效的日期或时段来执行所有与时间或日期相关的功能。将在适当的时候执行或启动所有周期性出现的功能。在测试中还将使用有效的和无效的数据,以核实以下内容:在使用有效数据时得到预期的结果。在使用无效数据时显示相应的错误消息或警告消息。各业务规则都得到了正确的应用。完成标准:[所计划的测试已全部执行。所发现的缺陷已全部解决。}需考虑的特殊事项:[系统日期和事件可能需要特殊的支持活动需要通过业务模型来确定相应的测试需求和测试过程。]3.1.4用户界面测试[通过用户界面(UI)测试来核实用户与软件的交互。UI测试的目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI测试还要确保UI功能内部的对象符合预期要求,并遵循公司或行业的标准。]测试目标:[核实以下内容:通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab健、鼠标移动和快捷键)的使用窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准。]方法:[为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确地进行浏览,并处于正常的对象状态。]完成标准:[证实各个窗口都与基准版本保持一致,或符合可接受标准]需考虑的特殊事项:[并不是所有定制或第三方对象的特征都可访问。]3.1.5性能评价[性能评价是一种性能测试,它对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。性能评价的目标是核实性能需求是否都已满足。实施和执行性能评价的目的是将测试对象的性能行为当作条件(例如工作量或硬件配置)的一种函数来进行评价和微调。注:以下事务均指“逻辑业务事务”。这种事务被定义为将由系统的某个主角通过使用测试对象来执行的特定用例,例如,添加或修改某个合同。]测试目标:[核实所指定的事务或业务功能在以下情况下的性能行为:正常的预期工作量预期的最繁重工作量]方法:[使用为功能或业务周期测试制定的测试过程。通过修改数据文件来增加事务数量,或通过修改脚本来增加每项事务的迭代次数。脚本应该在一台计算机上运行(最好是以单个用户、单个事务为基准),并在多台客户机(虚拟的或实际的客户机,请参见下面的“需考虑的特殊事项”)上重复。]完成标准:[单个事务或单个用户:在每个事务所预期或要求的时间范围内成功地完成测试脚本,没有发生任何故障。][多个事务或多个用户:在可接受的时间范围内成功地完成测试脚本,没有发生任何故障。]需考虑的特殊事项:[综合的性能测试还包括在服务器上添加后台工作量。可采用多种方法来执行此操作,其中包括:直接将“事务强行分配到”服务器上,这通常以“结构化查询语言”(SQL)调用的形式来实现。通过创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。此负载可通过“远程终端仿真”(RemoteTerminalEmulation)工具来实现。此技术还可用于在网络中加载“流量”。使用多台实际客户机(每台客户机都运行测试脚本)在系统上添加负载。性能测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。性能测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。]3.1.6负载测试[负载测试是一种性能测试。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。][注:以下事务均指“逻辑业务事务”。这些事务被定义为将由系统的最终用户通过使用应用程序来执行的具体功能,例如,添加或修改某个合同。]测试目标:[核实所指定的事务或商业理由在不同的工作量条件下的性能行为时间。]方法:[使用为功能或业务周期测试制定的测试。通过修改数据文件来增加事务数量,或通过修改测试来增加每项事务发生的次数。]完成标准:[多个事务或多个用户:在可接受的时间范围内成功地完成测试,没有发生任何故障。]需考虑的特殊事项:[负载测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。负载测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。]3.1.7强度测试[强度测试是一种性能测试,实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。][注:以下提到的事务都是指逻辑业务事务。]测试目标:[核实测试对象能够在以下强度条件下正常运行,不会出现任何错误:服务器上几乎没有或根本没有可用的内存(RAM和DASD)连接或模拟了最大实际(或实际可承受)数量的客户机多个用户对相同的数据/账户执行相同的事务最繁重的事务量或最差的事务组合(请参见上面的“性能测试”)。注:强度测试的目标还可表述为确定和记录那些使系统无法继续正常运行的情况或条件。客户机的强度测试在“配置测试”的第3.1.11节中进行了说明。]方法:[使用为性能评价或负载测试制定的测试。要对有限的资源进行测试,就应该在一台计算机上运行测试,而且应该减少或限制服务器上的RAM和DASD。对于其他强度测试,应该使用多台客户机来运行相同的测试或互补的测试,以产生最繁重的事务量或最差的事务组合。完成标准:[所计划的测试已全部执行,并且在达到或超出指定的系统限制时没有出现任何软件故障,或者导致系统出现故障的条件并不在指定的条件范围之内。]需考虑的特殊事项:[如果要增加网络工作强度,可能会需要使用网络工具来给网络加载消息或信息包。应该暂时减少用于系统的DASD,以限制数据库可用空间的增长。使多个客户机对相同的记录或数据账户同时进行的访问达到同步。