系统测试与验收方案1.1.测试方案1.1.1.单元测试1.1.1.1.单元测试说明在计算机编程中,单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。单元测试的目标是隔离程序部件并证明这些单个部件是正确的。一个单元测试提供了代码片断需要满足的严密的书面规约。因此,单元测试带来了一些益处。单元测试在软件开发过程的早期就能发现问题。1.1.1.2.单元测试方法与内容单元测试主要采用白盒测试技术,用控制流覆盖和数据流覆盖等测试方法设计测试用例;主要测试内容包括单元功能测试、单元性能测试和异常处理测试等。1.1.1.3.单元测试流程图15-1单元测试流程图从配置库获取源码文件,设计测试用例,执行测试用例,并利用相关测试工具对单元代码进行测试,将测试结论填写到单元测试报告和软件Bug清单中。把软件Bug清单和测试用例执行结果提交测试负责人,并进入纳入质量管理。对源码文件进行的测试,视程序存在缺陷的情况,可能要重复进行,直至问题解决。单元测试的执行者,一般情况下可由程序的编码者进行,特殊情况可由独立于编码者的测试人员进行。1.1.1.4.单元测试用例编程组组长组织、指导开发人员根据《系统设计说明书》,编写所负责代码设计模块的《单元测试用例》,设计单元测试脚本。1.1.2.代码评审代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。评审的内容:1)编码规范问题:命名不规范、magicnumber、System.out等;2)代码结构问题:重复代码、巨大的方法和类、分层不当、紧耦合等;3)工具、框架使用不当:Spring、Hibernate、AJAX等;4)实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好等;5)测试问题:测试覆盖度不够、可测试性不好等。评审的优点:1)提高代码质量:在项目的早期发现缺陷,将损失降至最低2)评审的过程也是重新梳理思路的过程,双方都加深了对系统的理解3)促进团队沟通、促进知识共享、共同提高1.1.3.集成测试1.1.3.1.集成测试目的集成测试,也叫组装测试或联合测试。集成测试是在单元测试的基础上,根据《系统概要设计》及《系统集成与开发详细设计》,对系统的各单元进行组装。把分离的系统单元组装为完整的可执行的计算机软件。集成测试的目的是检查软件单元部件是否能够集成为一个整体,完成一定的功能,并找出单元测试中没有发现的错误,包括数据定义有没有重合与冲突,接口会不会产生错误,组合以后的模块功能会不会互相影响,组合的系统是不是达到预期的效果等。1.1.3.2.集成测试采用的方法和内容集成测试采用白盒测试和黑盒测试相结合的测试技术和渐增式的测试策略,用数据流等测试方法设计测试用例。主要测试内容包括单元之间的接口测试、全局数据结构测试等。1.1.3.3.集成测试流程集成测试包括集成测试设计、集成测试准备、集成测试实施和测试记录、集成测试问题跟踪和结束测试等阶段。集成测试设计由测试组组长根据项目计划和开发计划编制《集成测试计划》,设计《测试用例》。测试计划和测试用例应当通过项目经理的审查。集成测试准备需要系统测试组组长建立独立的测试环境。测试环境包括测试硬件环境、网络、数据库、应用服务器等以及测试对象(程序)的安装和初始化工作。集成测试实施和测试记录是由系统测试组组长组织人员按照测试计划和测试用例要求进行测试,并且记录测试过程和测试结果。集成测试问题跟踪是在测试过程中发现的问题由系统测试组组长根据测试记录提交测试问题报告,并由系统设计人员和开发人员解决每一个问题的过程。测试结束指测试问题报告中的问题解决后,进行回归测试。当测试问题降低到一定程度并通过测试通过准则时,系统测试组组长提交测试总结报告结束测试。1.1.4.功能测试功能测试包括两大部分,一是包括基本业务功能、业务测试、接口测试和可用性测试等方面的功能测试,二是包括:安全性测试、故障恢复测试、数据库测试、配置测试、安装测试的产品化测试。验收测试主要从系统的实用性、稳定性、可维护性、灵活性、可操作性、和安全性方面进行测试。(1)测试目标组织并执行测试,以降低软件产品中存在的缺陷,保证产品的质量和可用性,测试工作的目标就是降低BUG率,从各个方面提高软件产品的质量和可用性。(2)测试流程在确定具体的测试范围及内容后,进行测试分类,并根据分类的结果确定需要设计的测试用例。在整个测试过程中,我们将用缺陷管理工具BugBase对测试大纲、测试用例、测试问题等进行管理,并可对问题进行统计。(3)测试完成标准实现功能完全符合功能列表。所有的功能页面均可达。TD上的问题得到妥善处理,不含有A,B,C类问题。定义的测试项目完成。产品化测试的约束达成。(5)缺陷管理追踪工具在上节描述中提到的TD,可以应用于测试的全过程,也可以用于管理各类评审的缺陷等。TD还提供一些模板,例如测试计划、测试总结、测试大纲、测试问题卡,因此可以通过BugBase实现从测试计划到总结的各测试活动管理。我们以需求说明书、软件需求规格说明为输入编写测试大纲,对应测试大纲中的内容和测试需求编写测试用例,测试人员可以根据测试大纲和用例执行测试,发现问题后,记录在TD中,测试负责人通过查看缺陷问题列表将问题分配给对应的开发人员,开发人员通过查看问题列表修改问题,TD还提供了各种统计功能,例如根据问题的发现日期、问题等级、问题的分布、问题引入阶段等进行统计,这些统计结果可用来进行分析和总结1.1.5.性能测试性能测试总体流程与业务系统测试的流程基本相同。验收测试主要从系统的实用性、稳定性、可维护性、灵活性、可操作性、和安全性方面进行测试。性能测试的内容源于用户对平台系统的性能要求。1.1.5.1.测试目标性能测试的目标是在整个系统或一个系统的特定组件上定义、建立和执行性能测试。验证系统是否满足标书的性能要求,如不能满足,要进行相应的优化。1.1.5.2.测试流程首先对性能测试进行策划,确定性能测试的类别和测试方法。然后开发性能测试的用例,确定测试环境并准备就绪后执行性能测试,确定测试中的系统或组件的性能,并使用其结果决定性能是否可以被业务所接受。如果在测试中度量的性能特性证明是不能被接受的,我们可以通过对业务的改进、数据库、应用服务器等进行调优,以提高性能质量,在进行系统调优前,我们同样要进行调优的设计与分析。性能测试与应用和技术架构紧密相关并且两者互相影响。1.1.5.3.性能测试指标a)响应时间响应速度在用户心理所能承受的范围内。无论是客户端还是管理端,当用户登陆,进行任何操作的时候,系统应该及时进行反映,系统应能检测出各种非正常情况,并及时提示用户。b)可扩展性在设计上必须具有适应变化的能力,当系统新增业务功能或现有业务改变时,应保证业务在整体框架不变的基础上,业务变化造成的影响局部化。c)易用性所有的业务功能界面风格和操作流程一致,业务表单做到所见即所得,录入能够完全通过键盘完成。d)可靠性系统应保证7*24小时内不宕机,保证在正常情况下和极端情况下业务逻辑的正确性。e)可用性必须避免由于单点故障或系统升级而影响整个系统的正常运行。f)可维护性系统能够简单方便的修改和升级,包含可度性、可修改性、可测试性等。g)可管理性和服务支持能力每个层次、每个构件都提供标准的管理接口。实现统一的、一致的日志功能。每个构件都提供应用架构总体设计规定的必要的标准外部接口。1.1.6.用户测试1.1.6.1.测试流程用户测试流程如下:1)明确测试内容,其中包括功能、性能、可用性、安全性、兼容性、与其他系统集成2)确定测试范围:确定业务情况类型是是非常重要的。每一种业务情况类型都对应一个实际商业业务。业务情况类型可以被表达成多种状况(例如,简单情况、或需要进行复杂处理的例外情况)。3)测试小组成员确定:由管理人员、业务人员、技术人员等组成,我方提供验收测试过程中的技术支持。4)明确问题分类标准5)系统的功能通过功能测试进行验证。在功能测试过程中发现的问题根据其严重程度进行分类。下表列出了功能测试问题的分类。1.1.6.2.用户测试设计设计测试用例:确定每个功能的测试用例,明确系统输入信息和期望的输出结果。针对需求规格说明书的每一条测试内容,确定测试用例。每个测试用例包括测试条件(包括生成测试条件需要的测试数据类型)和期望的结果。每个测试用例都应该是唯一确定的(例如,赋一个数值)。设计测试大纲:依据测试范围生成测试大纲。对每一种业务情况类型,生成尽可能多的测试用例来完善测试大纲。为了保证测试大纲包含所有的测试用例,将测试用例的条件映射为测试大纲是非常必要的。测试大纲中测试用例的顺序安排是非常重要的,它应考虑多种方面的因素,主要考虑的因素是按照系统产生的数据,在测试大纲中安排测试用例的顺序,使得一个测试的结果作为另一个测试前提。测试环境准备:为了预防出现问题,如数据损坏或对系统资源的争用,需要建立一个独立的测试环境。在进行测试之前,根据测试计划中确定的时机建立一个独立的测试环境。1.1.6.3.用户测试结果1)测试结束后,测试小组根据测试数据,制定并向验收工作领导小组提交《用户测试报告》。2)测试报告结果说明软件满足下列要求:3)在认可的外部设计文档中表述的功能要求4)在认可的系统描述文档中表述的非功能要求5)此外,测试报告中还包括对系统提出的改进意见。1.2.验收方案1.2.1.验收流程在验收阶段,平台系统将按照用户和我公司都认可的《系统需求分析》,组织验收小组,进行功能和性能的验收测试。从系统的实用性、稳定性、可维护性、灵活性、可操作性、和安全性及系统文档、代码、规范及注释说明等方面组织全面验收。验收测试安排分为系统初验和系统终验。1.2.2.系统初验经过系统内部试运行,我公司对内部试运行期间发现的问题改正后,提出系统初验书面申请。验收标准将按照“需求说明书”和双方认可的有关系统设计文档所提的要求进行。用户在收到我公司验收申请后,尽快组织系统初验。初验前我公司提供全部的工程文档和安装测试报告,并提供初验测试文档,在用户认可后进行初验测试,初验通过后,系统进入正式试运行期。我公司应解决试运行期间所反映出的问题,若系统达不到合同规定要求,试运行期将继续顺延,直到系统完善,但试运行期最长不得超过一个月。1.2.3.系统试运行初验合格后,经用户同意,系统进入试运行阶段,试运行周期不超过三个月。在试运行期间,我公司按用户要求提供培训和技术支持,保证用户能够正确理解和使用系统;我公司对试运行中出现的任何问题及用户提出的修改意见将及时做出响应,并提交解决方案,在用户确认后实施。试运行期间如出现重大故障,则试运行期从故障排除之日起重新计算。1.2.4.系统终验试运行期结束后,如系统无功能缺陷,能够正常运行,在具备终验条件下进行系统终验,由我公司提出终验书面申请,用户在收到我公司验收申请后,尽快组织系统终验。成立项目全面验收小组,由用户、我公司以及外部专家等组成,对项目进行全面验收。系统终验前,我公司提交终验测试标准和终验测试计划,内容包括:测试对象及应达到的测试指标、测试方法和测试条件、测试资料和数据,并以图表说明每一测试对象或过程的功能输入输出测试进度。系统终验标准:1)系统实用性:项目验收最关键的指标,检查系统是否符合当前业务的需要,特别是业务流的整体性和数据流的一致性,并前瞻性提供未来业务接口。2)系统稳定性:硬件环境的稳定性、软件运行异常处理和正常运行情况。3)系统可维护性:含网络系统管理与维护、服务器系统平台管理与维护、操作系统管理与维护、应用系统软件管理与维护、数据库管理与维护以及数据库备份、应用系统备份,灾难事件处理与解决实施方案等。4)系统文档:验收文档是否齐全、规范、准确、详细,主要的文档包括:需求分析报告,框架设计报告,数