软件测试之迁移测试

客户为什么会有迁移的需求?

一般而言,迁移的过程势必对当前应用系统运行产生一定的影响,从而会给客户的营业额带来一定的损失,同时客户还得投入大量的人力物力进行迁移的可行性研究、测试及实施等工作。

一般而言,迁移的目的是为了获取新版本更加完善的功能,以及最新的业务模式。

当然,还有其他一些原因促使客户去迁移应用,例如,随着客户业务的不断增长,对系统的性能要求越来越高。

总之,企业级应用迁移的最终目的在于保证企业级应用在激烈的市场竞争中始终保持青春活力,立于不败之地。

什么是迁移和迁移测试?

简单来讲,产品迁移是将旧版本的应用系统环境所有资产信息完整地迁移到新版本的环境之上,同时要保证旧版本的功能在新的平台上正常运行,并且新版本的新增功能也能正常工作。

迁移测试是对迁移过程及其迁移结果进行验证,从而保证过程和结果的正确性。迁移过程中除了会应用到自身特有的测试方法以外,还会借助于功能测试、性能测试等来保证完成迁移的应用系统环境的正确性和可靠性。

如何做迁移测试?

要想深入了解迁移测试,首先需要理解企业级应用的架构,然后是迁移的内容,最后才能有的放矢地制定迁移测试的计划。

什么是企业级应用架构?

一般来说,企业级应用是为商业组织或大型企业提供特定解决方案的一套完整系统,该系统包含了支持应用程序运行的各个组成部分:
  底层的操作系统:Windows, Solaris, pLinux
  后台数据库服务器: DB2, Oracle
  面向用户的Web服务器:IIS, SunONE
  运行应用程序的中间件:Tomcat
  部署在中间件之上的企业级应用

企业级应用架构的分类

对于一个企业级应用程序,根据企业业务实际需求的不同,可以制定不同的解决方案。而企业级应用可以从下面各种不同的角度来划分:
  按不同的拓扑结构分:单节点,双节点,多节点
  按不同的服务器集群环境分:垂直集群,水平集群,混合集群
  按应用产品发布的版本分:企业版,专业版,简装版
  按企业应用运行平台分:生产环境,开发环境

迁移包括哪些内容?

基础软件的升级和新版本应用产品的安装:基础软件是指支持企业应用运行的底层软件。
数据库的迁移:不是指数据库管理系统本身的升级,而是将旧版本的数据库中的数据结构及数据迁移到新版本的应用系统之上,使得迁移之后的数据结构和数据符合新版本应用系统后台数据库的规范和要求。
应用程序的迁移:将旧版本的应用程序迁移到新版本,迁移之后保证旧版本功能同样适用,同时将新版本的功能也能正常工作。

迁移的顺序

一般而言,企业级应用迁移的第一步是基础软件的升级和新版本应用产品的安装,第二步是进行数据库迁移,第三步完成应用迁移。

迁移过程中客户关注的问题

一方面,客户关注迁移步骤的简单性、易用性及迁移流程的高效性。因而在整个迁移过程中,人工干预越少越好,尽可能实现整个迁移过程的自动化。
另一方面,客户关注迁移前后应用系统的宕机时间。

宕机时间是企业级应用作移植时第一要考虑的要素。而整个迁移过程中的宕机时间一般受数据库的迁移时间影响比较大。

迁移测试的分类

在迁移测试中,部分测试验证工作是在迁移环境上进行的,还有一部分比较验证需要借助于不同版本的环境来完成。根据涉及的验证环境的不同,可分为垂直迁移测试方法和水平迁移测试方法。

垂直迁移测试

垂直迁移测试时迁移测试的基本方法,所有的验证都是在完成从旧版本到新版本迁移的系统环境上进行的。按照迁移的先后顺序,首先是软件升级测试、数据库迁移测试、应用迁移测试,其次是在迁移之后的环境上进行子系统的迁移测试、集成系统迁移测试、客户定制化迁移测试、功能测试、性能回归测试、迁移扩展性测试。

作为一个完整的垂直迁移测试的框架,垂直迁移测试需要考虑从底层基础软件到上层应用的每一个功能点。

基础改造——软件升级测试:软件升级测试是保证支持应用运行的软件都被正确地安装或迁移。
客户数据不能丢——数据库迁移测试:目的在于保证旧的数据库数据结构,数据库中加密的及没有加密的客户数据都被正确地迁移过来。内容:数据库数据结构和数据的迁移。
功能点不能少——应用程序迁移测试:验证应用程序迁移流程和结果的正确性。内容:确保应用的配置信息被正确地迁移,确保新版本应用的功能模块被自动地加载到迁移之后的应用系统中,确保应用服务器旧版本的配置信息被正确迁移到新的应用系统中,确保Web服务器旧版本的配置信息被正确迁移到新的应用系统中。
子系统迁移测试:验证这些子模块的迁移步骤和迁移程序的正确性。
集成系统迁移测试:验证应用软件本身和其他应用作为一个集成系统在完成迁移后,能正常工作。
客户定制化迁移测试:测试客户在旧版本环境上根据自身业务要求的需要进行定制的程序,是否被正确地迁移到新系统的版本。
功能测试:验证迁移之后的应用系统功能的完整性和正确性。一种是贯穿整个迁移过程的管道数据功能测试,另一种是在完成了迁移的应用系统上的功能回归测试。
性能测试:比较迁移之后的应用系统的性能测试结果和旧版本的性能测试结果,期望结果是没有性能的下降,性能指标对于客户而言是可以接受的。
迁移扩展性测试:针对大数据量和大型应用的测试,保证应用和数据迁移能够在可以接受的时间内正确完成。

水平迁移测试与垂直迁移测试的区别

垂直迁移测试和水平迁移测试不是相互独立的,水平迁移测试主要运用于垂直迁移框架中的数据库迁移测试和应用迁移测试。水平迁移测试与垂直迁移测试的主要区别在于前者需要涉及多个应用系统环境的比较。水平迁移测试是垂直迁移测试的必要补充,垂直迁移测试主要对整个应用的一个从底向上的完备的考量,而水平迁移测试主要是考虑数据库和应用程序迁移前后的比较。

水平迁移测试

新版本数据结构验证:验证数据结构首先需要将数据结构按照类型以一定的格式倒入一个文件中以进行比较验证,如XML文件。
商业数据验证:包括所有商业事务处理相关的数据。
应用配置信息验证:保证迁移后应用配置文件的正确性和一致性。

水平迁移测试的各个部分相对独立,对于数据库和应用可以分开进行验证,但它们又都是垂直迁移测试流程中不可或缺的一环。

垂直迁移测试与水平迁移测试的比较

垂直迁移测试是水平迁移测试的基础,只有完成了垂直迁移测试中的数据库迁移或应用程序迁移才能进行水平迁移测试。
水平迁移测试能在早期发现问题,无须等待整个迁移流程结束后再开始。
水平迁移测试更多地关注数据的准确性,垂直迁移测试更多地关注系统的整体功能、性能等的迁移是否成功。
水平迁移测试相对复杂,需要比较不同版本数据库之间数据、配置文件等内容。垂直迁移测试只需要一套迁移环境。

其他迁移测试内容

兼容测试:目的在于确保以前的地版本上部署的经客户定制过的应用所依赖的一些因素能够正常地提供服务,而使客户的定制应用不受影响,从而客户无须重新构建或部署他们的应用。影响兼容性因素主要有:开发框架升级,API的不兼容性,行为的变化。
迁移文档测试:目的在于保证迁移文档的质量,确保客户能够遵循正确的迁移文档完成客户应用系统的迁移工作。
真实客户环境测试:迁移测试重要的验证方式,对于保证迁移测试的正确性,特别是对于性能方面的验证是非常必要的。
迁移安全性测试:在迁移环境上进行文件权限验证及敏感数据检查。

选择迁移测试平台

确定迁移路径和平台支持矩阵表,合并罗列所有测试配置组合,识别优先级进行筛选。

选择测试用例组

基本测试用例组包括迁移测试的主要流程的测试用例:软件升级测试、数据库迁移测试、应用程序迁移测试、子系统迁移测试、客户定制化迁移测试、功能验证测试。
扩展测试用例组:集成系统测试
高级测试用例组:迁移扩展测试、真实客户数据应用测试、迁移环境上的功能回归测试和性能回归测试。

基本测试用例组的测试在所有的配置组合上都得测试,但在每个测试阶段,可以涵盖不同的测试用例。
扩展测试用例组主要涵盖和应用相关的集成软件的迁移,根据实际需求选择测试或者不测。
高级测试用例组测试也是根据具体的测试要求单独计划,只需要选择部分平台组合进行测试。

总结

迁移是从旧版本的系统环境到最新版本的系统迁移,迁移场景如下:

在测试环境上进行迁移和迁移测试:

  • 完成服务器升级测试
  • 安装新版本的应用系统并部署一个测试用的应用环境:一方面通过启用测试应用系统,验证应用的一些简单功能和业务流程来保证新版本的应用没有问题,另一方面,测试应用系统创建的数据库和应用可以作为水平迁移测试的比较对象,是水平迁移测试验证的基准。
  • 迁移数据库并完成数据库迁移测试
  • 迁移应用并完成应用迁移测试

在开发环境上进行迁移和迁移测试:

  • 客户定制化迁移测试
  • 将开发环境上迁移之后的客户定制化程序部署到完成了迁移的测试环境上

在迁移之后测试环境上进行功能测试和性能测试

在确保上一步功能测试和性能测试都正确的前提下,开始进行生产环境的迁移测试
为了将客户应用宕机的影响降到最低,生产环境的迁移分为以下几步:

  • 在保持旧版本生产环境运行的情况下,根据客户的资源状况选择软件升级方案
  • 安装新版本的应用产品
  • 迁移应用
  • 将完成迁移的客户定制化程序部署到新的生产环境中
  • 停止旧版本的应用系统的对外服务,完成生产环境数据库的迁移
  • 启用新版本的应用
  • 在迁移之后的应用系统上进行功能测试和性能测试
时间: 2024-10-14 14:42:09

软件测试之迁移测试的相关文章

[转载]软件测试之Web测试经典总结

转载自:软件测试之Web测试经典总结   基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题.当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机.并且,Web危机可能会比软件开发人员所面对的软件危机更加严重.更加广泛. 在Web工程过程中,基于Web系统的测试.确认和验收是一

软件测试之安装测试

1. 什么情况下需要安装测试组专门进行安装测试? 安装可以很简单,像一些简单的桌面应用程序,只是简单地复制一些文件,对于这种应用,不需要专门的安装测试组,安装测试能够和其他测试合并在一起. 安装也可以很复杂,需要支持多个操作系统平台,多种数据库,多个版本的中间件,多种网络服务器,多种拓扑结构等,这就要求测试人员具有较好的操作系统.数据库及网络服务器等知识.一般需要一个专门的安装测试组来进行相关测试. 一般来说,企业级Java EE应用都需要使用数据库软件. 2. 典型的拓扑结构是三层架构? 前端

软件测试之客户化测试

从事软件测试工作已经5年了,仔细想想,还真没听说过有一种测试叫客户化测试.看似陌生的名词,其实并不那么陌生,不信,先看看客户化测试的概念: 所谓客户化测试,是针对一个软件产品的客户化定制能力所做的测试,它侧重于模拟用户使用产品的场景,通过对产品的公开文档.教程以及产品开发接口的使用,按照产品服务部门提供的客户需求,开发相应的功能定制样例,并撰写相应文档以供客户学习和参考. 看完概念之后,忍不住感叹一下,哦,原来这是场景测试啊,场景测试对于测试人员来说应该并不陌生,但是,客户化测试真的等同于场景测

软件测试之构建测试---BVT

1. 构建的基本流程: a. 开发人员在他们的个人计算机上编写源代码文件 b. 他们将编写好的文件存放在一个统一集中的地方,构建组将所有的源代码编译成可以在计算机上运行的二进制文件,且用安装工具把各种需要安装到服务器上的文件包装成可以安装到不同平台的软件包.   c. 组合成一个产品 构建的过程就好比一个组装生产线,源代码文件就像是各种大小配件,被存储在一个大仓库里,源代码中,有些在构建过程中还需要再加工. 2. 构建过程: 3. 构建生产线时,软件开发部门,特别是构建测试团队需要考虑什么? a

软件测试之效能测试

效能测试(Performance Test):用户使用软件,不光是希望软件能够提供一定的服务,而且还要求服务的质量要达到一定的水平.软件的效能是这些"非功能需求"或者"服务质量需求"的一部分.软件在设计时能否提供令用户满意的服务质量,有一下两个概念: 1.设计负载:从需求说明出发,可得出系统正常的设计负载.例如,一个购物网站,客户认为正常的设计负载是每分钟承受25次客户请求. 2.令用户满意的服务质量:定义什么样的质量是令客户满意的,例如,同一个购物网站,用户满意的

软件测试之Web测试(学习笔记)

1.Web测试中相关的设置与查看方法 2.Web测试中截屏与录制屏幕操作过程 3.界面测试.功能测试.表单测试的验证要点 一.Web测试的特点 基于Web应用测试的特点是用户通过计算机中安装的浏览器就可以访问指定URL网页进行测试. 表单测试.功能测试.界面测试.安全测试 二.Web测试基础 在做Web应用软件测试时,需要准确的找到所使用的测试环境,包括使用的操作系统/浏览器/Flash播放器版本号. 1.获取软件版本号 获取当前使用的Windows操作系统版本(OS Version)信息 用鼠

软件测试之负载测试篇

性能测试前期准备: ①Web项目已经部署好. ②测试软件 LoadRunner 已经有安装好. 性能测试三步走: 一.录脚本. 二.部署场景. 三.分析结果. 一.录脚本. ①创建一个文件夹,记住文件夹的位置,后续产生所有的脚本.结果等都存在这个文件夹里. 这里以直接在桌面上创建一个Test文件夹为例. ②打开测试软件 LoadRunner. ③打开软件后出现下图软件界面=>点击创建/编辑脚本 . ④跳转到另一个界面,点击红色箭头所指红色框框里面的图标.=> 新建脚本. ⑤弹出新建虚拟用户界面

软件测试之Web测试

web测试 一.简介 基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是 否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适.重要的是,还要从最终用户的角度进行安全性和可用性测试.主要包括功能测试.性能测试.可用性测试.客户端兼容性测试以及安全性测试等. 二.功能测试 1.链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段.链接测试可分为

全程软件测试之测试需求分析与计划

全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计划活动中,首先要确认测试目标.范围和需求,其中"测试需求分析"是关键任务,然后在测试需求基础上制定测试策略,并对测试任务.时间.资源.成本和风险等进行估算或评估. 无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性.软件项目计划的目标是提供一个框架,不断收集信息,对不确定性进