1、 文档编码密级文档版本拟制人日期项目编号和项目名称测试计划其他如副标题/子模块郑重声明:XX软件股份有限公司版权所有。本文档中任何部分未经XX软件股份有限公司书面授权,不得将材料泄露给第三方,不得以任何手段、任何形式进行复制与传播。变更履历版本日期变更位置变更理由/变更内容变更人备注目 录1简介11.1目的11.2背景11.3定义及缩略语11.4概述21.5参考文档22测试需求及分析22.1测试对象识别22.2测试重点及范围分析33测试策略33.1测试阶段一(集成测试)33.1.1测试类型一(界面、控件级测试)43.1.2测试类型二(基本功能测试)43.1.3测试类型三(接口测试)43.2测试
2、阶段二(系统测试)43.2.1测试类型一(业务场景测试)43.2.2测试类型二(安装升级测试)43.2.3测试类型三(配置兼容性测试)44资源54.1角色54.2测试环境64.2.1测试环境拓扑图64.2.2测试系统资源64.2.3软硬件环境详细说明64.3工具75测试进度及里程碑76可交付成果77测试管理87.1接收测试的条件87.2缺陷处理流程说明87.3测试过程控制87.4通过标准97.5风险分析98附件 测试类型介绍108.1数据和数据库完整性测试108.2功能测试108.3业务周期测试118.4用户界面测试118.5性能评价128.6负载测试138.7强度测试138.8容量测试148
3、.9安全性和访问控制测试158.10故障转移和恢复测试158.11配置测试178.12安装测试171 简介1.1 目的1. 的 “测试计划”文档编写目的:(1) 确定现有项目的信息和应测试的软件组件。(2) 列出测试需求。(3) 可采用的测试策略,并对这些策略加以说明。(4) 确定所需的资源,并对测试的工作量进行估计。(5) 测试进度要求,及关键里程碑点。(6) 列出测试项目的可交付成果。(7) 明确测试管理过程及测试任务。(8) 作为测试工作的总体计划,整体指导测试工作目标及方向。(9) 作为测试设计工作的指南。2.测试工作总体目标:(根据产品质量要求)(1) 系统在用户使用过程中无低级缺陷
4、,无致命性缺陷;(2) 遗留缺陷率低于8%,所有发现严重缺陷不会重复出现;(3) 测试需求覆盖率达95%以上;(4) 发布用户可用版本。1.2 背景描述测试对象(组件、应用程序、系统等)及其目标的简要说明。需要包括的信息有:主要的功能和特性、测试对象的构架以及项目的简史。 1.3 定义及缩略语对本文档用到的术语进行解释,方便阅读理解,如:(1) 测试类型:测试的不同方面,包括功能测试、性能测试、业务场景测试、界面测试、易用性测试、容错性测试、安全性测试、兼容测试、安装配置测试、文档测试等等。(2) 测试方法:白盒、黑盒或灰盒、手动或自动测试。(3) 测试阶段:测试过程阶段划分,每个阶段有明确的
5、测试目的,如针对研发的各阶段进行的测试可将测试划分为:单元测试阶段、集成测试阶段、系统测试阶段、验收确认测试阶段等,也可以根据测试对象的不同划分测试阶段等。(4) 测试策略:制定测试的计策,测试的规划方案,包括:阶段如何划分、各阶段要进行的测试内容、测试类型以及测试方法等1.4 概述说明测试阶段的划分,描述测试的各个阶段,例如:单元测试、集成测试或系统测试,并说明本计划所针对的测试类型(如功能测试或性能测试)。简要地列出测试对象中将接受测试或将不接受测试的那些特性和功能,确定测试范围。如果在编写此文档的过程中作出的某些假设可能会影响测试设计、开发或实施,则列出所有这些假设。列出可能会影响测试设
6、计、开发或实施的所有风险或意外事件。列出可能会影响测试设计、开发或实施的所有约束。1.5 参考文档下表列出了制定测试计划所用的文档,并标明了文档的可用性:注:可以视情况删除或添加。文档(版本/日期)已创建或可用已被接受或已经过复审作者或来源备注需求说明书o 是 o 否o 是 o 否项目计划o 是 o 否o 是 o 否设计说明书o 是 o 否o 是 o 否原型o 是 o 否o 是 o 否用户手册o 是 o 否o 是 o 否业务模型或业务流程o 是 o 否o 是 o 否数据模型或数据流o 是 o 否o 是 o 否业务功能和业务规则o 是 o 否o 是 o 否项目或业务风险评估o 是 o 否o 是
7、o 否2 测试需求及分析2.1 测试对象识别下面列出了哪些已被确定为测试对象的项目(需求用例、功能性需求和非功能性需求(开发期质量属性、运行期质量属性和约束,其中开发期质量属性测试团队不用考虑)。此列表说明了测试的对象。在此处输入一个主要测试需求的高层次列表,测试对象可以是多层次结构的。测试对象需求编号用例编号约定优先级优先级别说明:(1) 一级:关键功能,软件需求里要求的核心功能,最终用户必需的业务流程性功能。(2) 二级:主要功能,主要功能支撑关键功能,关键功能的实现要使用主要功能。(3) 三级:辅助功能,该功能的作用是使关键功能和主要功能的实现简洁,灵活和方便。2.2 测试重点及范围分析
8、1 描述上述的测试对象的详细内容:测试对象对象概要说明测试类型测试要点优先级功能、界面性能兼容性业务场景测试主要场景说明或者是场景分类2描述不在本次测试范围的测试对象,或者本次测试无法、无需完成的测试项。说明本次测试哪些测试类型不包含,如白盒代码级测试。3 测试策略测试策略提供了推荐用于测试对象的方法。上一节“测试需求”中说明了将要测试哪些对象,而本节则要说明如何对测试对象进行测试。测试策略包含要素:(1) 测试阶段的划分(2) 针对上述识别测试对象确定合适的测试方法(除了下面列举的测试类型,这里的测试方法也包括用例的设计方法、测试使用的工具等等)、测试标准或要求和测试重点(3) 整体测试环境
9、的搭建要求(4) 测试数据准备要求等对于每种测试,都应提供测试说明,可以包含主要的测试点说明,作为测试设计的标准和依据,并解释其实施和执行的原因。同时制定测试策略时还需考虑的事项有:将要使用的方法以及判断测试何时完成的标准。3.1 测试阶段一(集成测试)描述本阶段的目标及工作重点3.1.1 测试类型一(界面、控件级测试)测试项测试目标与要求完成标准特殊说明或约束3.1.2 测试类型二(基本功能测试)测试项测试目标与要求测试数据要求完成标准特殊说明或约束3.1.3 测试类型三(接口测试)测试项测试目标与要求测试数据要求完成标准特殊说明或约束3.2 测试阶段二(系统测试)3.2.1 测试类型一(业
10、务场景测试)测试项测试目标与要求测试数据要求完成标准特殊说明或约束3.2.2 测试类型二(安装升级测试)3.2.3 测试类型三(配置兼容性测试)4 资源本节列出推荐 项目使用的资源,及其主要职责、知识或技能。4.1 角色下表列出了在此项目的人员配备方面所作的各种假定。注:可视情况删除或添加项目。角色推荐的最少资源具体职责或注释测试组长,测试项目经理进行管理监督。职责:(1) 提供技术指导(2) 获取适当的资源(3) 提供管理报告测试设计员确定测试用例、确定测试用例的优先级并实施测试用例。职责:(4) 生成测试计划(5) 生成测试模型(6) 评估测试工作的有效性测试员执行测试。职责:(7) 执行
11、测试(8) 记录结果(9) 从错误中恢复(10) 记录变更请求测试系统管理员确保测试环境和资产得到管理和维护。职责:(11) 管理测试系统(12) 授予和管理角色对测试系统的访问权数据库管理员确保测试数据(数据库)环境和资产得到管理和维护。职责:(13) 管理测试数据(数据库)设计员确定并定义测试类的操作、属性和关联。职责:(14) 确定并定义测试类(15) 确定并定义测试包实施员实施测试类和测试包,并对它们进行单元测试。职责:(16) 创建在测试模型中实施的测试类和测试包4.2 测试环境4.2.1 测试环境拓扑图画出测试环境的拓扑图(网络拓扑图)4.2.2 测试系统资源记录测试环境的具体配置
12、,比如机器名、IP地址、数据库名、分配的文件夹等如果此时并不完全了解测试系统的具体元素。建议让系统模拟生产环境,并在适当的情况下减小访问量和数据库大小。资源名称/类型数据库服务器网络或子网服务器名数据库名客户端测试 PC包括特殊的配置需求测试存储库网络或子网服务器名测试开发 PC注:可以视情况删除或添加项目。4.2.3 软硬件环境详细说明硬件环境:测试机CPU内存硬盘备注Pc测试机测试服务器软件环境:测试机CPU内存硬盘备注Pc测试机测试服务器4.3 工具此项目将使用以下工具:注:可以视情况删除或添加项目。工具厂商/自行研制版本测试管理缺陷跟踪测试覆盖监测器或评价器项目管理项目管理5 测试进度
13、及里程碑对 的测试应包括上面各节所述的各项测试的测试活动。应该为这些测试确定单独的项目里程碑,以通知项目的状态和成果。任务开始日期结束日期工作成果负责人工作量(人时)制定测试计划设计测试实施测试执行测试测试总结注:1) 分解测试任务时,要考虑与前面已经识别的测试对象、测试具体内容和测试策略对应2) 体现ZBB、ZRB的概念,也就是说,要明确需求变更冻结时间点、缺陷升级(提高修改缺陷的门栏)时间点6 可交付成果本节列出了将要创建的各种文档、工具和报告,及其创建人员、交付对象和交付时间。如:(1) 测试文档:测试计划、测试用例、测试报告(2) 测试记录(3) 缺陷报告7 测试管理7.1 接收测试的
14、条件本节描述进入测试的条件,如测试测试设计经过评审,系统开发完成经过开发人员自测及功能评审。7.2 缺陷处理流程说明本节确定用来记录、跟踪和报告测试中发生的意外情况及其状态的方法和工具。 如:使用*工具对缺陷信息进行跟踪和维护。(1) 每个测试人员必须清楚一个缺陷从击活到解决的全过程。(2) 说明缺陷的分类标准(3) 说明各模块具体的缺陷修正负责人,明确发现缺陷应该提交给谁(4) 缺陷由对应的模块开发人员负责解决,若不能确定缺陷属于哪个模块,则由开发负责人协调解决。(5) 测试人员报Bug时须指明Bug的优先级和严重级别,开发人员可以此决定Bug解决的先后次序,有争议的问题,需与开发负责人商量
15、。7.3 测试过程控制测试过程控制包含如下方面的内容:(1) 测试报告机制:测试工作周报及例会(2) 测试沟通机制(例会、电子邮件或Team Portal):定期组织项目参与人员进行测试Review,每位测试人员介绍各自的测试情况,并听取开发人员的反馈意见,以掌握测试进度、测试完成情况,及时调整测试重点。(3) 评审要求:对关键工作成果要进行评审,包括:测试计划、测试用例、测试总结、测试报告等。7.4 通过标准在这里定义衡量测试过程和测试效果的质量指标及限值,如发版时未解决缺陷率、重大缺陷率。评估测试内容:(1) 评估测试用例覆盖(2) 评估代码覆盖(3) 分析缺陷(4) 确定是否达到了测试完
16、成标准与成功标准7.5 风险分析序号风险描述解决方法1需求分析不全面评估没有完成的功能,从重要性和时间允许两方面考虑是否放弃2开发不能按期完成跟踪开发进度,及时调整测试时间安排3系统的可测性差4模块功能改变积极与开发人员沟通,重新进行测试任务的分配6测试环境与开发环境不同步加强版本管理,数据库版本管理,定期进行测试数据的更新7新人的上手时间在项目前期加强对新人的培训,测试人员尽早熟悉产品8 附件 测试类型介绍8.1 测试问题分级标准A: 致命问题 (引起软件整体运行崩溃或破坏软件敏感数据的致命问题);B: 严重问题 (功能测试出错,导致功能无法使用的问题);C: 一般问题 (影响软件正常完成任
17、务但仍能产生正确结果的问题,或者该功能测试出错,但可以通过其它方式实现该功能);D: 轻微问题/描述性问题 (引起操作不舒服但并不影响软件完成任务的问题,或者软件中说明不确切或含义模糊或未准确使用专业术语,容易导致误解的问题);E: 改进建议 (不影响软件完成任务或功能可以实现,但操作或显示方面需要改进的问题)。F 待分类问题 (不确定用户是否需要该功能或该功能应用场景不清楚)8.2 数据和数据库完整性测试数据库和数据库进程应作为中的子系统来进行测试。 在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支持以下测试的工
18、具和方法。测试目标确保数据库访问方法和进程正常运行,数据不会遭到损坏。方法(1) 调用各个数据库访问方法和进程,并在其中填充有效的和无效的数据或对数据的请求。(2) 检查数据库,确保数据已按预期的方式填充,并且所有数据库事件都按正常方式出现;或者检查所返回的数据,确保为正当的理由检索到了正确的数据完成标准所有的数据库访问方法和进程都按照设计的方式运行,数据没有遭到损坏。需考虑的特殊事项(1) 测试可能需要 DBMS 开发环境或驱动程序以便在数据库中直接输入或修改数据。(2) 进程应该以手工方式调用。(3) 应使用小型或最小的数据库(其中的记录数很有限)来使所有无法接受的事件具有更大的可见性。8
19、.3 功能测试测试对象的功能测试应该侧重于可以被直接追踪到用例或业务功能和业务规则的所有测试需求。这些测试的目标在于核实能否正确地接受、处理和检索数据以及业务规则是否正确实施。这种类型的测试基于黑盒方法,即通过图形用户界面 (GUI) 与应用程序交互并分析输出结果来验证应用程序及其内部进程。以下列出的是每个应用程序推荐的测试方法概要:测试目标确保测试对象的功能正常,其中包括导航、数据输入、处理和检索等。方法利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:(1) 在使用有效数据时得到预期的结果。(2) 在使用无效数据时显示相应的错误消息或警告消息。(3) 各业务规则都得到了正
20、确的应用。完成标准(1) 所计划的测试已全部执行。(2) 所发现的缺陷已全部解决。需考虑的特殊事项确定或说明那些将对功能测试的实施和执行造成影响的事项或因素(内部的或外部的)8.4 业务周期测试业务周期测试应模拟在一段时间内对 执行的活动。应先确定一段时间(例如一年),然后执行将在该时段内发生的事务和活动。这种测试包括所有的每日、每周和每月的周期,以及所有与日期相关的事件(如备忘录)。测试目标确保测试对象及后台进程都按照所要求的业务模型和时间表正确运行。方法通过执行以下活动,测试将模拟若干个业务周期:(1) 将修改或增强对测试对象进行的功能测试,以增加每项功能的执行次数,从而在指定的时段内模拟
21、若干个不同的用户。(2) 将使用有效的和无效的日期或时段来执行所有与时间或日期相关的功能。(3) 将在适当的时候执行或启动所有周期性出现的功能。(4) 在测试中还将使用有效的和无效的数据,以核实以下内容:(5) 在使用有效数据时得到预期的结果。(6) 在使用无效数据时显示相应的错误消息或警告消息。(7) 各业务规则都得到了正确的应用。完成标准(1) 所计划的测试已全部执行。(2) 所发现的缺陷已全部解决。需考虑的特殊事项(1) 系统日期和事件可能需要特殊的支持活动(2) 需要通过业务模型来确定相应的测试需求和测试过程。8.5 用户界面测试通过用户界面 (UI) 测试来核实用户与软件的交互。UI
22、 测试的目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI 测试还要确保 UI 功能内部的对象符合预期要求,并遵循公司或行业的标准。测试目标核实以下内容:(1) 通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab 健、鼠标移动和快捷键)的使用(2) 窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准。方法为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确地进行浏览,并处于正常的对象状态。完成标准证实各个窗口都与基准版本保持一致,或符合可接受标准需考虑的特殊事项并不是所有
23、定制或第三方对象的特征都可访问。8.6 性能评价性能评价是一种性能测试,它对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。性能评价的目标是核实性能需求是否都已满足。实施和执行性能评价的目的是将测试对象的性能行为当作条件(例如工作量或硬件配置)的一种函数来进行评价和微调。注:以下事务均指“逻辑业务事务”。这种事务被定义为将由系统的某个主角通过使用测试对象来执行的特定用例,例如,添加或修改某个合同。测试目标核实所指定的事务或业务功能在以下情况下的性能行为:(1) 正常的预期工作量(2) 预期的最繁重工作量方法(1) 使用为功能或业务周期测试制定的测试过程。(2) 通过修改数据文件来增
24、加事务数量,或通过修改脚本来增加每项事务的迭代次数。(3) 脚本应该在一台计算机上运行(最好是以单个用户、单个事务为基准),并在多台客户机(虚拟的或实际的客户机,请参见下面的“需考虑的特殊事项”)上重复。完成标准(1) 单个事务或单个用户:在每个事务所预期或要求的时间范围内成功地完成测试脚本,没有发生任何故障。(2) 多个事务或多个用户:在可接受的时间范围内成功地完成测试脚本,没有发生任何故障。需考虑的特殊事项综合的性能测试还包括在服务器上添加后台工作量。 可采用多种方法来执行此操作,其中包括:(1) 直接将“事务强行分配到”服务器上,这通常以“结构化查询语言”(SQL) 调用的形式来实现。(
25、2) 通过创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。 此负载可通过“远程终端仿真”(Remote Terminal Emulation) 工具来实现。 此技术还可用于在网络中加载“流量”。(3) 使用多台实际客户机(每台客户机都运行测试脚本)在系统上添加负载。(4) 性能测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。(5) 性能测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。8.7 负载测试负载测试是一种性能测试。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测
26、试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。注:以下事务均指“逻辑业务事务”。这些事务被定义为将由系统的最终用户通过使用应用程序来执行的具体功能,例如,添加或修改某个合同。测试目标核实所指定的事务或商业理由在不同的工作量条件下的性能行为时间。方法(1) 使用为功能或业务周期测试制定的测试。(2) 通过修改数据文件来增加事务数量,或通过修改测试来增加每项事务发生的次数。完成标准多个事务或多个用户:在可接受的时间范围内成功地完成测试,没有发生任何故障。需考虑的特殊事项(1) 负载测试应该在专用
27、的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。(2) 负载测试所用的数据库应该是与实际大小相同或等比例缩放的数据库。8.8 强度测试强度测试是一种性能测试,实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。注:以下提到的事务都是指逻辑业务事务。测试目标核实测试对象能够在以下强度条件下正常运行,不会出现任何错误:(1) 服务器上几乎没有或根本没有可用的内存(RAM 和 DA
28、SD)(2) 连接或模拟了最大实际(或实际可承受)数量的客户机(3) 多个用户对相同的数据/账户执行相同的事务(4) 最繁重的事务量或最差的事务组合(请参见上面的“性能测试”)。(5) 注:强度测试的目标还可表述为确定和记录那些使系统无法继续正常运行的情况或条件。方法(1) 使用为性能评价或负载测试制定的测试。(2) 要对有限的资源进行测试,就应该在一台计算机上运行测试,而且应该减少或限制服务器上的 RAM 和 DASD。(3) 对于其他强度测试,应该使用多台客户机来运行相同的测试或互补的测试,以产生最繁重的事务量或最差的事务组合。完成标准所计划的测试已全部执行,并且在达到或超出指定的系统限制
29、时没有出现任何软件故障,或者导致系统出现故障的条件并不在指定的条件范围之内。需考虑的特殊事项(1) 如果要增加网络工作强度,可能会需要使用网络工具来给网络加载消息或信息包。(2) 应该暂时减少用于系统的 DASD,以限制数据库可用空间的增长。(3) 使多个客户机对相同的记录或数据账户同时进行的访问达到同步。8.9 容量测试容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内是否能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了
30、正确的报表。测试目标核实测试对象在以下大容量条件下能否正常运行:(1) 连接(或模拟了)最大(实际或实际可承受)数量的客户机,所有客户机在长时间内执行相同的、且情况(性能)最差的业务功能。(2) 已达到最大的数据库大小(实际的或按比例缩放的),而且同时执行了多个查询或报表事务。方法(1) 使用为性能评价或负载测试制定的测试。(2) 应该使用多台客户机来运行相同的测试或互补的测试,以便在长时间内产生最繁重的事务量或最差的事务组合(请参见上面的“强度测试”)。(3) 创建最大的数据库大小(实际的、按比例缩放的、或输入了代表性数据的数据库),并使用多台客户机在长时间内同时运行查询和报表事务。完成标准
31、所计划的测试已全部执行,而且在达到或超出指定的系统限制时没有出现任何软件故障。需考虑的特殊事项对于上述的大容量条件,哪个时段是可以接受的时间?8.10 安全性和访问控制测试安全性和访问控制测试侧重于安全性的两个关键方面:(4) 应用程序级别的安全性,包括对数据或业务功能的访问(5) 系统级别的安全性,包括对系统的登录或远程访问。应用程序级别的安全性可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有经理才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户信息(包括财务数据)
32、,而“用户二”只能看见同一客户的统计数据。系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。测试目标(1) 应用程序级别的安全性:核实主角只能访问其所属用户类型已被授权使用的那些功能或数据。(2) 系统级别的安全性:核实只有具备系统和应用程序访问权限的主角才能访问系统和应用程序。方法(1) 应用程序级别的安全性:确定并列出各用户类型及其被授权使用的功能或数据。(2) 为各用户类型创建测试,并通过创建各用户类型所特有的事务来核实其权限。(3) 修改用户类型并为相同的用户重新运行测试。对于每种用户类型,确保正确地提供或拒绝了这些附加的功能或数据。(4)
33、 系统级别的访问:请参见下面的“需考虑的特殊事项”完成标准各种已知的主角类型都可访问相应的功能或数据,而且所有事务都按照预期的方式运行,并在先前的应用程序功能测试中运行了所有的事务。 需考虑的特殊事项必须与相应的网络或系统管理员一起对系统访问权进行检查和讨论。由于此测试可能是网络管理或系统管理的职能,可能不需要执行此测试。8.11 故障转移和恢复测试故障转移和恢复测试可确保测试对象能成功完成故障转移,并从硬件、软件或网络等方面的各种故障中进行恢复,这些故障导致数据意外丢失或破坏了数据的完整性。 故障转移测试可确保:对于必须始终保持运行状态的系统来说,如果发生了故障,那么备选或备份的系统就适当地
34、将发生故障的系统“接管”过来,而且不会丢失任何数据或事务。恢复测试是一种相反的测试流程。其中,将应用程序或系统置于极端的条件下(或者是模仿的极端条件下),以产生故障,例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字。启用恢复流程后,将监测和检查应用程序和系统,以核实应用程序或系统是正确无误的,或数据已得到了恢复。测试目标确保恢复进程(手工或自动)将数据库、应用程序和系统正确地恢复到了预期的已知状态。测试中将包括以下各种情况:(1) 客户机断电(2) 服务器断电(3) 通过网络服务器产生的通信中断(4) DASD 和/或 DASD 控制器被中断、断电或与 DASD 和/或DASD
35、控制器的通信中断(5) 周期未完成(数据过滤进程被中断,数据同步进程被中断)。(6) 数据库指针或关键字无效(7) 数据库中的数据元素无效或遭到破坏方法应该使用为功能和业务周期测试创建的测试来创建一系列的事务。一旦达到预期的测试起点,就应该分别执行或模拟以下操作:(1) 客户机断电:关闭 PC 的电源。(2) 服务器断电:模拟或启动服务器的断电过程。(3) 通过网络服务器产生的中断:模拟或启动网络的通信中断(实际断开通信线路的连接或关闭网络服务器或路由器的电源)。(4) DASD 和 DASD 控制器被中断、断电或与 DASD 和DASD 控制器的通信中断:模拟与一个或多个 DASD 控制器或
36、设备的通信,或实际取消这种通信。一旦实现了上述情况(或模拟情况),就应该执行其他事务。而且一旦达到第二个测试点状态,就应调用恢复过程。在测试不完整的周期时,所使用的方法与上述方法相同,只不过应异常终止或提前终止数据库进程本身。对以下情况的测试需要达到一个已知的数据库状态。当破坏若干个数据库字段、指针和关键字时,应该以手工方式在数据库中(通过数据库工具)直接进行。其他事务应该通过使用“应用程序功能测试”和“业务周期测试”中的测试来执行,并且应执行完整的周期。完成标准在所有上述情况中,应用程序、数据库和系统应该在恢复过程完成时立即返回到一个已知的预期状态。此状态包括仅限于已知损坏的字段、指针或关键
37、字范围内的数据损坏,以及表明进程或事务因中断而未被完成的报表。需考虑的特殊事项(1) 恢复测试会给其他操作带来许多的麻烦。断开缆线连接的方法(模拟断电或通信中断)可能并不可取或不可行。所以,可能会需要采用其他方法,例如诊断性软件工具。(2) 需要系统(或计算机操作)、数据库和网络组中的资源。(3) 这些测试应该在工作时间之外或在一台独立的计算机上运行。8.12 配置测试配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件,例如,应用程序、驱动程序等。而且在任何时候,都可能运行许
38、多不同的软件组合,从而占用不同的资源。测试目标核实测试对象可在要求的硬件和软件配置中正常运行。方法(1) 使用功能测试脚本。(2) 在测试过程中或在测试开始之前,打开各种与非测试对象相关的软件(例如 Microsoft 应用程序:Excel 和Word),然后将其关闭。(3) 执行所选的事务,以模拟主角与测试对象软件和非测试对象软件之间的交互。(4) 重复上述步骤,尽量减少客户机工作站上的常规可用内存。完成标准对于测试对象软件和非测试对象软件的各种组合,所有事务都成功完成,没有出现任何故障。需考虑的特殊事项(1) 需要、可以使用并可以通过桌面访问哪种非测试对象软件?(2) 通常使用的是哪些应用
39、程序? (3) 应用程序正在运行什么数据?例如,在Excel 中打开的大型电子表格,或是在 Word 中打开的 100 页文档。(4) 作为此测试的一部分,应将整个系统、Netware、网络服务器、数据库等都记录下来。 8.13 安装测试安装测试有两个目的。第一个目的是确保该软件能够在所有可能的配置下进行安装,例如,进行首次安装、升级、完整的或自定义的安装,以及在正常和异常情况下安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。测试目标核实在以下情况下,测试对象可正确地安装到各种所需的硬件配置中:(1) 首次安装。以前从未安装过 的新计算机(2) 更新。以前安装过相同版本的 的计算机(3) 更新。以前安装过较早版本的 的计算机方法(1) 手工开发脚本或开发自动脚本,以验证目标计算机的状况新 - 从未安装过;已安装 相同或较早版本)。(2) 启动或执行安装。(3) 使用预先确定的功能测试脚本子集来运行事务。完成标准 事务成功执行,没有出现任何故障。需考虑的特殊事项应该选择 的哪些事务才能准确地测试出 应用程序已经成功安装,而且没有遗漏主要的软件构件?