1.测试需求下面列出了那些已被确定为测试对象的项目(用例、功能性需求和非功能性需求)。此列表说明了测试的对象。[在此处输入一个主要测试需求的高层次列表。]2.测试方案[测试方案提供了推荐用于测试对象的方法。上一节“测试需求”中说明了将要测试哪些对象,而本节则要说明如何对测试对象进行测试。对于每种测试,都应提供测试说明,并解释其实施和执行的原因。如果不实施和执行某种测试,则应该用一句话加以说明,并陈述这样做的理由。例如,“将不实施和执行该测试。。该测试不合适。”制定测试策略时所考虑的主要事项有:将要使用的方法以及判断测试何时完成的标准。下面列出了在进行每项测试时需考虑的事项,除此之外,测试还只应在安全的环境中使用已知的、受控的数据库来执行,可按实际需要进行删减。]2.1测试类型2.1.1数据和数据库完整性测试[数据库和数据库进程应作为项目名称中的子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支持以下测试的工具和方法。]测试目标:[确保数据库访问方法和进程正常运行,数据不会遭到损坏。]方法:[调用各个数据库访问方法和进程,并在其中填充有效的和无效的数据或对数据的请求。检查数据库,确保数据已按预期的方式填充,并且所有数据库事件都按正常方式出现;或者检查所返回的数据,确保为正当的理由检索到了正确的数据]完成标准:[所有的数据库访问方法和进程都按照设计的方式运行,数据没有遭到损坏。]需考虑的特殊事项:[测试可能需要DBMS开发环境或驱动程序以便在数据库中直接输入或修改数据。进程应该以手工方式调用。应使用小型或最小的数据库(其中的记录数很有限)来使所有无法接受的事件具有更大的可见性。]2.1.2功能测试[测试对象的功能测试应该侧重于可以被直接追踪到用例或业务功能和业务规则的所有测试需求。这些测试的目标在于核实能否正确地接受、处理和检索数据以及业务规则是否正确实施。这种类型的测试基于黑盒方法,即通过图形用户界面(GUI)与应用程序交互并分析输出结果来验证应用程序及其内部进程。以下列出的是每个应用程序推荐的测试方法概要:]测试目标:[确保测试对象的功能正常,其中包括导航、数据输入、处理和检索等。]方法:[利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:在使用有效数据时得到预期的结果。在使用无效数据时显示相应的错误消息或警告消息。各业务规则都得到了正确的应用。]完成标准:[所计划的测试已全部执行。所发现的缺陷已全部解决。]需考虑的特殊事项:[确定或说明那些将对功能测试的实施和执行造成影响的事项或因素(内部的或外部的)]2.1.3业务周期测试[业务周期测试应模拟在一段时间内对项目名称执行的活动。应先确定一段时间(例如一年),然后执行将在该时段内发生的事务和活动。这种测试包括所有的每日、每周和每月的周期,以及所有与日期相关的事件(如备忘录)。]测试目标[确保测试对象及后台进程都按照所要求的业务模型和时间表正确运行。]方法:[通过执行以下活动,测试将模拟若干个业务周期:将修改或增强对测试对象进行的功能测试,以增加每项功能的执行次数,从而在指定的时段内模拟若干个不同的用户。将使用有效的和无效的日期或时段来执行所有与时间或日期相关的功能。将在适当的时候执行或启动所有周期性出现的功能。在测试中还将使用有效的和无效的数据,以核实以下内容:在使用有效数据时得到预期的结果。在使用无效数据时显示相应的错误消息或警告消息。各业务规则都得到了正确的应用。完成标准:[所计划的测试已全部执行。所发现的缺陷已全部解决。}需考虑的特殊事项:[系统日期和事件可能需要特殊的支持活动需要通过业务模型来确定相应的测试需求和测试过程。]2.1.4用户界面测试[通过用户界面(UI)测试来核实用户与软件的交互。UI测试的目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI测试还要确保UI功能内部的对象符合预期要求,并遵循公司或行业的标准。]测试目标:[核实以下内容:通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab健、鼠标移动和快捷键)的使用窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准。]方法:[为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确地进行浏览,并处于正常的对象状态。]完成标准:[证实各个窗口都与基准版本保持一致,或符合可接受标准]需考虑的特殊事项:[并不是所有定制或第三方对象的特征都可访问。]2.1.5性能评价[性能评价是一种性能测试,它对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。性能评价的目标是核实性能需求是否都已满足。实施和执行性能评价的目的是将测试对象的性能行为当作条件(例如工作量或硬件配置)的一种函数来进行评价和微调。注:以下事务均指“逻辑业务事务”。这种事务被定义为将由系统的某个主角通过使用测试对象来执行的特定用例,例如,添加或修改某个合同。]测试目标:[核实所指定的事务或业务功能在以下情况下的性能行为:正常的预期工作量预期的最繁重工作量]方法:[使用为功能或业务周期测试制定的测试过程。通过修改数据文件来增加事务数量,或通过修改脚本来增加每项事务的迭代次数。脚本应该在一台计算机上运行(最好是以单个用户、单个事务为基准),并在多台客户机(虚拟的或实际的客户机,请参见下面的“需考虑的特殊事项”)上重复。]完成标准:[单个事务或单个用户:在每个事务所预期或要求的时间范围内成功地完成测试脚本,没有发生任何故障。][多个事务或多个用户:在可接受的时间范围内成功地完成测试脚本,没有发生任何故障。]需考虑的特殊事项:[综合的性能测试还包括在服务器上添加后台工作量。可采用多种方法来执行此操作,其中包括:直接将“事务强行分配到”服务器上,这通常以“结构化查询语言”(SQL)调用的形式来实现。通过创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。此负载可通过“远程终端仿真”(RemoteTerminalEmulation)工具来实现。此技术还可用于在网络中加载“流量”。使用多台实际客户机(每台客户机都运行测试脚本)在系统上添加负载。性能测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。性能测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。]2.1.6负载测试[负载测试是一种性能测试。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。][注:以下事务均指“逻辑业务事务”。这些事务被定义为将由系统的最终用户通过使用应用程序来执行的具体功能,例如,添加或修改某个合同。]测试目标:[核实所指定的事务或商业理由在不同的工作量条件下的性能行为时间。]方法:[使用为功能或业务周期测试制定的测试。通过修改数据文件来增加事务数量,或通过修改测试来增加每项事务发生的次数。]完成标准:[多个事务或多个用户:在可接受的时间范围内成功地完成测试,没有发生任何故障。]需考虑的特殊事项:[负载测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。负载测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。]2.1.7强度测试[强度测试是一种性能测试,实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。][注:以下提到的事务都是指逻辑业务事务。]测试目标:[核实测试对象能够在以下强度条件下正常运行,不会出现任何错误:服务器上几乎没有或根本没有可用的内存(RAM和DASD)连接或模拟了最大实际(或实际可承受)数量的客户机多个用户对相同的数据/账户执行相同的事务最繁重的事务量或最差的事务组合(请参见上面的“性能测试”)。注:强度测试的目标还可表述为确定和记录那些使系统无法继续正常运行的情况或条件。客户机的强度测试在“配置测试”的第3.1.11节中进行了说明。]方法:[使用为性能评价或负载测试制定的测试。要对有限的资源进行测试,就应该在一台计算机上运行测试,而且应该减少或限制服务器上的RAM和DASD。对于其他强度测试,应该使用多台客户机来运行相同的测试或互补的测试,以产生最繁重的事务量或最差的事务组合。完成标准:[所计划的测试已全部执行,并且在达到或超出指定的系统限制时没有出现任何软件故障,或者导致系统出现故障的条件并不在指定的条件范围之内。]需考虑的特殊事项:[如果要增加网络工作强度,可能会需要使用网络工具来给网络加载消息或信息包。应该暂时减少用于系统的DASD,以限制数据库可用空间的增长。使多个客户机对相同的记录或数据账户同时进行的访问达到同步。]2.1.8容量测试[容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内是否能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。]测试目标:核实测试对象在以下大容量条件下能否正常运行:连接(或模拟了)最大(实际或实际可承受)数量的客户机,所有客户机在长时间内执行相同的、且情况(性能)最差的业务功能。已达到最大的数据库大小(实际的或按比例缩放的),而且同时执行了多个查询或报表事务。]方法:[使用为性能评价或负载测试制定的测试。应该使用多台客户机来运行相同的测试或互补的测试,以便在长时间内产生最繁重的事务量或最差的事务组合(请参见上面的“强度测试”)。创建最大的数据库大小(实际的、按比例缩放的、或输入了代表性数据的数据库),并使用多台客户机在长时间内同时运行查询和报表事务。]完成标准:[所计划的测试已全部执行,而且在达到或超出指定的系统限制时没有出现任何软件故障。]需考虑的特殊事项:[对于上述的大容量条件,哪个时段是可以接受的时间?]2.1.9安全性和访问控制测试[安全性和访问控制测试侧重于安全性的两个关键方面:应用程序级别的安全性,包括对数据或业务功能的访问系统级别的安全性,包括对系统的登录或远程访问。应用程序级别的安全性可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有经理才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户信息(包括财务数据),而“用户二”只能看见同一客户的统计数据。系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。]测试目标:应用程序级别的安全性:[核实主角只能访问其所属用户类型已被授权使用的那些功能或数据。]系统级别的安全性:核实只有具备系统和应用程序访问权限的主角才能访问系统和应用程序。]方法:应用程序级别的安全性:[确定并列出各用户类型及其被授权使用的功能或数据。][为各用户类型创建测试,并通过创建各用户类型所特有的事务来核实其权限。]修改用户类型并为相同的用户重新运行测试。对于每种用户类型,确保正确地提供或拒绝了这些附加的功能或数据。系统级别的访问:[请参见下面的“需考虑的特殊事项”]完成标准:[各种已知的主角类型都可访问相应的功能或数据,而且所有事务都按照预期的方式运行,并在先前的应用程序功能测试中运行了所