从 Sybase 到 DB2 的迁移,第 3 部分: 测试战略

信息资产对日常业务至关重要。在支撑的系统不断变化时,信息资产还是必须保留、扩展和重新定位制度价值和知识产权的重要原因。鉴于当前的业务环境,出于许多原因,迁移具有重要的战略意义。本文将帮助您理解迁移数据库后的各种流程、验证和确认操作。

Amol D. Barsagade, 软件架构师, IBM

Amol D. Barsagade 是位于普那的 IBM 印度软件实验室的一名 IBM Enterprise Marketing Management 软件架构师。Amol 向亚太地区的各种合作伙伴和客户提供数据库架构、性能调优、容量管理、应用程序开发和迁移的数据库解决方案。Amol 拥有计算机科学专业的学士学位,以及研究关系数据库系统(包括 Oracle 和 SQL 服务器)的多年经验。他通过评审和发表文章为 IBM developerWork 做出了巨大贡献。



2013 年 5 月 14 日

简介

本文将介绍在从 Sybase ASE 12.x/15.x 迁移到 DB2® 9.7.x/DB2 10.1.x 后需要遵循的测试流程和方法。我们介绍的流程使您能够通过各种验证和确认流程执行成功的测试。


范围

验证范围

  • 验证所有来源数据库 (Sybase) 对象是否已迁移到目标数据库 (DB2)。
  • 确认目标数据库的所有已迁移版本,确保它们在结构和功能上与来源数据库等效。

假设

  • 所有迁移前检查和验证将由迁移团队执行。
  • 迁移团队在转交给 QA 团队执行验证前将通过签字结束迁移。

测试目标

任何数据库迁移测试的目标都将执行迁移后确认,保证数据库结构和数据完整性。数据库结构和数据完整性包括来源和目标数据库之间一致的数据格式,以及数据库迁移后的继续连接功能。

  • 数据库结构
    • 来源和目标实例是否已正确配置?
    • 数据文件、事务日志、表空间和其他组成数据库的对象是否已正确创建?
  • 数据库完整性
    • 如何在目标数据库上保持来源数据库对象的参照完整性?
    • 每部分修改数据的代码都已全面测试。
    • 导致每个触发器触发的测试。
  • 安全性
    • 来源数据库的所有用户是否都已迁移到具有类似特权和权限的目标数据库。
    • 应用程序的每个用户都拥有单独的数据库登录密码,还是应用程序的所有用户共享一个数据库帐户?
    • 用于访问数据库的帐户的权限级别是什么?
    • 确认整个数据库在物理上是安全的。
  • 数据格式
    • 所有目标数据库数据类型和它们的格式都保持与来源数据库数据类型和格式一致。
    • 当有必要更改数据类型或数据格式时,确保对来源和目标数据库的等效查询的结果是相同的。
  • 性能
    • 目标数据库的所有对象都能够与相应来源数据库对象类似或比之更高的级别上执行想要的功能。

关键成功因素

成功的数据库移植和数据迁移对业务至关重要,而且每次迁移的挑战各不相同。但是,以下可能是任何工作说明 (SOW) 的关键成功因素。

  • 对象数量:所有来源数据库对象都已迁移到目标数据库。
  • 数据格式:数据库对象在来源和目标数据库之间应具有类似的结构。
  • 对象功能:迁移的对象的功能输出应与来源对象的功能输出匹配。
  • 对象完整性目标:数据库对象参照完整性应保持与来源数据库一样。
  • 数据完整性:目标数据库上生成的数据应与来源数据库生成的数据相同。
  • 安全性:来源数据库的安全方面在目标数据库中得到保持。

QA 流程

图 1 描绘了 QA 迁移路线图。

图 1. QA 流程
该图显示了流程路线图

图 2 描绘了 QA 环境设置和迁移后验证和确认。

图 2. 迁移后验证和确认
该图显示了迁移后的验证和确认

迁移后的验证和确认

以下是在实现总体数据库迁移目标的过程中要执行的确认阶段:

  1. 验证是否为 QA/共享 QA 环境提供了 QA 团队的所有必需的访问权限。
  2. 验证所有来源对象是否已迁移到目标数据库。
    • 验证对象数量和目标名称。
    • 验证客户清单。
  3. 确认对象参数。
    • 确认所有对象参数(列数量、数据类型、约束等)。
  4. 确认所有迁移的对象都是与来源数据库类似的数据库结构中的必要组成部分。
    • 参照来源数据库确认目标数据库的参照完整性。
  5. 确认对象功能。
    • 确认目标数据库对象的输出与来源数据库相同。
    • 触发器/过程。
  6. 确认数据安全性。
    • 确认所有用户都已在目标数据库上创建。
    • 确认所有组都已创建。
    • 确认用户和组的所有授权和身份验证。
  7. 确认对象性能。
    • 表、视图和过程。

测试数据准备

以下方法将用于获取测试环境的数据:

  • 复制一个完整的生产数据库。
  • 复制一个生产数据库的一个子集。
  • 使用 Application Under Test (AUT) 创建数据。
  • 使用一个实用程序创建数据。
  • 结合使用各种数据(使用一些生产数据,使用虚构数据作为补充)。

暂停条件和恢复需求

  • 暂停
    • 如果开发团队提供的已迁移数据库在下述测试前验证中被拒绝,测试将暂停:
  • 测试前验证
    • 验证处于预先确定的故障点的 Sybase 和 DB2 数据库。
    • 验证所有需要的文档是否存在,包括客户清单。
    • 验证数据库发布说明是否已记录在要执行的变更(如果存在)中。
    • 执行冒烟测试 (smoke test),以确定 DB2 数据库的基本功能。

在这些步骤完成后,QA 团队会将一个数据库验证文档分发给项目团队。执行数据库验证后任何已解决的问题都会消失,测试将会继续。完成测试前验证后,就会开始对以前失败的测试执行回归测试。

  • 恢复
    • 从开发人员收到修复了所有阻碍问题的 DB2 数据库新版本,并且测试前验证通过之后,测试将恢复。

事故跟踪流程

在测试之前,会使用一个缺陷管理工具记录在初始化阶段识别的缺陷。系统会检查和优先化缺陷,并在必要时安排修复。(被认为有效的)缺陷将按如下形式分类:

表 1. 缺陷分类
缺陷严重性描述
致命这些缺陷将导致某个需求在文档/代码范围或适用的标准和指南中完全被省略。
重大可以观察到这些缺陷违背了标准或指南,导致不完整和含糊不清的文档和程序代码。
次要拼写、格式等装饰性问题。
装饰/建议这些缺陷主要是改进/增强功能的建议。
表 2. 缺陷状态
缺陷状态描述
Open已报告但还未被开发团队检查的缺陷。
FixedFixed 状态表明对代码执行了更改,这个更改将在下一个构建版本中提供。
Next phase无法在此版本中修复的缺陷。
Need more informationNeed more information 或 NMI 表明开发人员没有足够的信息来复制或修复缺陷。
Cannot be fixed可能存在可以谅解的情形,其中的缺陷由于技术、时间限制和稳定化代码或其他用户的风险而无法被修复。可使用的一种更好状态是 not to be fixed。
Closed只有缺陷报告人员使用此状态,开发人员或经理无法使用它。如果一个缺陷无法由安排的开发人员和缺陷验证人员再现,缺陷报告人员需要一个机会来阐明缺陷或提供补充信息。
Reviewed此状态仅由项目经理提供。它们在检查一个缺陷时之后会提供此状态,并将缺陷分配给开发人员进行修复。

图 3 描绘了事故跟踪流程。

图 3. 事故跟踪流程
该图显示了事故跟踪流程

测试交付结果

测试交付结果是在软件开发生命周期提供给软件项目的利益相关者的工件。每个阶段有不同的测试交付结果。一些交付结果在测试阶段之前提供,一些在测试周期完成之后提供。测试交付结果的类型包括:

  • 测试案例文档
  • 测试计划
  • 测试战略
  • 测试脚本
  • 测试数据
  • 测试可跟踪性矩阵
  • 测试结果/报告
  • 测试摘要报告
  • 安装/配置指南
  • 缺陷报告
  • 发行说明

系统和硬件要求

  1. 工作站:一个要提供给所有 QA 资源的标准配置桌面,能够访问专门的 QA 环境、QA 工具以及安装的 Sybase 和 DB2 客户端。
  2. QA 环境和访问详细信息:QA 环境中将安装具有所有需要的访问权限,将供 QA 团队使用的正确的 Sybase 和 DB2 版本。
  3. 开发团队提供的 Sybase 和 DB2 DDL 将由 QA 团队部署,以创建来源和目标数据库实例。但是,开发环境也可专门提供给 QA,用于执行验证周期。

接受条件

  1. 服务提供商的接受条件。
    • 需求文档
    • 最终用户验收条件 (EUAC)
    • 业务用户验收条件/案例
    • 开发版本文档 (DRD)
    • 要测试的应用程序/数据库
  2. 最终客户的接受条件
    • 客户验收条件。
      • 所有达成一致的交付结果/工件都必须签字。
      • 所有达成一致的验证检查都应执行。
      • 所有验证检查都应通过。
      • 最终用户和业务用户验收条件(如果存在)已完全满足。
      • 来自项目最终客户的签字邮件。

结束语

本文介绍了了测试中涉及的各种因素的重要性,这些因素包括 QA、迁移后验证、确认、缺陷和事故跟踪等。使用这些测试战略有助于项目交付结果的顺利完成。


致谢

感谢 Dan A. Simchuk (simchuk@us.ibm.com) 提供专业经验和进行评审。

参考资料

学习

获得产品和技术

  • 下载 IBM DB2 10.1 for Linux, UNIX, and Windows 评估版。
  • 使用 IBM 试用版软件 构建您的下一个开发项目,这些软件可直接从 developerWorks 下载。
  • 现在您可免费使用 DB2。下载 DB2 Express-C,这是一个面向社区的免费的 DB2 Express Edition 版本,提供了与 DB2 Express Edition 相同的核心数据功能,为构建和部署应用程序提供了坚实的基础。

讨论

  • 参与论坛讨论
  • 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=929690
ArticleTitle=从 Sybase 到 DB2 的迁移,第 3 部分: 测试战略
publish-date=05142013