Comments
Description
Transcript
克服测试数据难题 如何安全、高效地生成测试数据,从而推动企业创新
克服测试数据难题 英文原文:http://ibmdatamag.com/2012/04/overcoming-the-test-data-conundrum/ 如何安全、高效地生成测试数据,从而推动企业创新 作者:Robert Catterall | 发布日期:2012 年 4 月 30 日 我们来猜个谜语:每一家组织都需要它,每一家组织都能生成它,但快速便捷地生成往往会 导致超高的风险和高昂的支出。猜猜我所指的是什么?当然,答案是测试数据。 近年来,IBM 一直在宣传打造智慧地球的理念。在很大程度上,使您的企业在客户和股东 的眼中表现出智慧的核心就是应用程序,应用程序可以帮助提高运营效率、接洽买家、发现 新市场商机、加速产品开发的应用程序。如果需要保证这些应用程序的优秀品质(这也是必 要的做法),必须在将其投入生产之前进行透彻的测试。 有效的应用程序测试依赖于数据。如果数据部分出现问题,您必然会陷入困境。测试数据中 包含的关键域的值子集是否过小?结果会让企业无法发现数据处理错误,最终导致应用程序 用户会遇到这样的错误。从参照完整性的视角,要测试数据库表和文件是否存在不一致性? 这可能要求采取一些纠正措施,而必要的数据修复工作会推迟测试的完成时间,可能导致应 用程序实现目标日期产生偏差。测试数据中的无效值会造成与应用程序代码错误有关的误报, 致使大量时间浪费在诊断之中,甚至要“修复”真实生产环境中不存在的数据值引发的并不 存在的问题。 我们应该怎样做? 简单的方法可能会使您陷入困境 认识到测试数据完整性和质量的重要意义之后,部分组织选择了表面上看似最简单的方法: 直接将生产数据(而且是全部生产数据)复制到程序开发和测试环境之中。这种方法能减少 与生产环境中代表性过低的测试数据相关的问题(但并不能完全消除此类问题,稍后我会解 释这一点),但也会造成某些重大挑战。 这能严重破坏您的数字隐私违规控制工作。 如果发生您不期待的结果,您的企业名称就会出现在高度敏感的数据(信用卡信息、政府识 别号、账户 ID 或系统密码)发生泄漏的头条新闻之中。这种情况会严重损害您的企业在客 户和潜在客户心目中的声望,如果敏感数据落入网络犯罪分子的手中,许多人将面临财务或 其他方面的损失。 充分考虑到这样的威胁之后,IT 安全人员可能已经采取了多项措施,锁定生产系统中的数 据。但是,如果将这些数据复制到开发和测试环境之中,拥有包含敏感数据字段的数据库表 和文件读取访问权限的用户数量更多,那么情况又会怎样?如果用户数量增加了五倍将会怎 样?十倍?一百倍?这是一个重要的问题,因为数据隐私违规往往是由内部人员的各种行为 所导致的,有时是无意的,有时则是故意的。 这可能会造成大笔金钱损失。 在我上一次调查时,没有任何供应商放弃磁盘存储容量。过去,如果有人提到“我们的数据 库占 1 TB 的磁盘空间”,您或许为大为震惊,但在测试和开发环境中,同样的容量(或 许两倍到三倍)也不会引起我们的过度关注。如今,数据集市可能拥有 1 TB 甚至更多的 数据,云环境必不可少。您的生产数据库中枢可能拥有数十 TB 的数据和索引(甚至可能 达到数 PB),每个表都可能包含数十亿行数据。从成本角度来看,仅仅为了保证测试数据 的完整性和数据值的有效性,在测试和开发系统中占用如此之多的磁盘空间是否真的合理? 而这样的磁盘空间仅仅是采用这种“转储并许愿”方法生成测试数据时需要付出的一部分成 本。在卸载庞大的数据库时,需要占用多少生产系统 CPU 时间?有多少周期用于将所有 这些数据推入测试表和文件之中?在任何一项耗时漫长的大数据加载作业运行时,您的程序 员要百无聊赖地等待多长时间?您是否竭力实施严格的 IT 管理,竭力控制成本?那么这绝 对不是实现目标的理想方法。 这种方法极为不灵活。 在应用程序开发系统中,无法避免的一件事就是数据库设计更改。人们并不是为了改变而改 变。其目的在于尝试进行设计更改,在应用程序性能和可扩展能力方面实现改进。将一个表 拆分为两个表、为表添加列、更改一列的数据类型,这些都是非常常见的更改,往往也是有 所裨益的。 然而,如果填充测试和开发数据库的方法就是直接卸载和加载,那么目标数据结构必须与源 结构相符。这意味着什么呢?这意味着您必须提供专门的开发和测试数据库(以及全部磁盘 空间),仅用它们来接收从生产环境中卸载的数据。随后,您还需要提供另外一个数据库, 以体现开发中的当前设计(可能与生产环境相比,存有一些不同之处)。将生产副本数据库 中的数据库载入当前设计的开发数据库已经成为程序员和开发支持 DBA 的责任,您是否 真的希望将技能娴熟的 IT 专家将时间浪费在这类映射工作之中?在您尝试推出新的应用 程序时,这会浪费多少时间? 因此,将生产数据库全盘搬入测试和开发环境会造成数据隐私违规风险升高,存储和 CPU 容量需求增加,严重影响灵活性和敏捷性。除此之外,该方法应该说是一种出色的方法。 还有更好的方法 测试数据生成的智慧纪元已经到来,IBM InfoSphere Optim 测试数据管理解决方案产品就 是这个智慧纪元的代表性产品(为了简便起见,下文将其简称为 Optim TDM)。Optim TDM 是一种综合全面的解决方案,可解决不同平台、DBMS 和文件系统(包括 DB2 for z/OS、 IMS 和 IBM System z 服务器上的 VSAM)的测试数据生成需求。针对上文提到的所有测 试数据生成挑战,Optim TDM 为您提供了必要的工具,帮助您通过安全、高效、迅速响应 的方式完成任务。其功能包括: 数据保护 Optim TDM 提供了多种机制,使您的生产系统中的敏感数据能在测试和开发环境中得到保 护。将 Optim TDM 与 InfoSphere Optim 数据屏蔽解决方案相结合,您甚至可以获得更为 精密的数据保护选项。 如果字段 A 和字段 B 并不是那么需要保护,但字段 A 和字段 B 的“组合”必须加以保 护,那么“随机排列”将是一种理想的选择。举例来说,对于黑客来说,人员 X 的标识号 若与人员 Y 的姓名配对,则这些数据或许并无价值。或许数据屏蔽是合理的方法,如果采 取这种做法,Optim 解决方案即可确保生成的值真实可信。屏蔽可通过随机的方式完成, 也可采用保护敏感数据的同时保留参照完整性关系的方式(有时称为“可重复屏蔽”的一种 技术)。 此外,也可以利用查找表和例程,安全地提供姓名、邮寄地址和电子邮件地址的有效值。您 是否希望设计一种自定义数据转换例程,满足您的环境中的特有要求?Optim 解决方案也 能帮助您实现这个目标。 测试数据规模的合理调整 正如前文所述,将庞大的生产数据库转储到测试和开发环境(或许要转储到多个此类环境之 中)是一种成本高昂的做法。在此基础之上,许多开发人员都希望得到更小的测试数据集, 有时仅仅需要生产数据的百分之一。除此之外,程序测试人员希望得到的生产数据量比例与 程序开发人员有所不同。 满足这些需求可能会带来数据完整性方面的问题。您要如何生成真正有用的相关数据子集? 换句话说,如果从“父”表 Y 中获取百分之一的行,我要如何确保从具有参照关系的表中 获取相应的行?Optim TDM 也为您考虑了这方面的问题,不仅考虑到数据库的参照完整性 约束,还能帮助您将“正确”的生产数据子集转到测试和开发系统之中。 或许您需要做的仅仅是抽样(“在这个表中每隔 n 行获取一行,在获取 100 万行后停止”), 也或许您希望关注特定的一组记录(例如,生活在安大略省的客户的记录)。您或许希望非 常精确地选择需要引入测试或开发环境的生产数据记录,采用“正确定向”的工作模式(我 需要这一行、那一行,还有那行。)。无论您希望通过怎样的方法获得规模合理、参照一致 (并且合理屏蔽)的生产数据子集,在测试和开发系统中使用它们,Optim TDM 都可以帮 助您更轻松地完成任务。 接受源数据库与目标数据库之间的设计差异 Optim TDM 提供了表映射和列映射功能,提供了处理生产系统和开发系统间数据模型差异 所需的必要灵活性。如果需要展示映射的工作原理,Optim TDM 会负责运行映射。 考虑到所有这些选项、如此之高的灵活性,您或许认为管理 Optim TDM 是一项极为困难 或繁琐的任务,事实并非如此。该解决方案包含一个测试数据管理自助服务中心。这种基于 浏览器的界面可减轻 DBA 的负担,使测试人员和开发人员更多地参与测试数据生成的相 关工作流和流程的定义与执行(例如审批测试数据刷新请求的流程)。DBA 可利用这种工 具来促进数据刷新操作。自助服务中心还能提高生产力,展示测试和开发数据生成活动的测 量方法。 您或许仍然会摇头否定,或许仍然会这样认为:“为测试和开发的目的,安全地生成参照完 整、一致的生产数据子集,这一切听上去都非常好,但一切的前提假设都是您了解所有这些 参照关系究竟是怎样的,但坦白地说,我们并不了解。”首先,没有什么值得垂头丧气的, 无论是许多站点都采用了基于应用程序的参照完整性,还是跨数据库边界存在的数据实体关 系(表 A 中的数据可能与文件 B 中的数据存在参照关系)。其次,我们同样为这种问题 提供了解决方案。这种解决方案称为 InfoSphere Discovery,它将成为 Optim TDM 的出 色补充。 InfoSphere Discovery 的用途恰如其名:它会检查数据存储(包括数据库管理系统内外的 数据存储),并报告所发现的明显数据关系。有了这样的信息之后,您就可以利用 Optim TDM,为测试人员和开发人员提供具备参照完整性和一致性的数据,无需将全部生产数据 复制到测试系统之中。您将能够合理调整测试数据的规模,同时避免因为生产环境中数据关 系的认知盲点而造成的缺口,InfoSphere Discovery 将消除这些盲点。 创新角度 如今的组织成功总是与“更新”和“更快”有关:迅速识别潜在的新客户、迅速将新产品和 服务退向市场、迅速确定哪些因素可通过现有客户产生新业务。人们期待 IT 实现这些功能。 考虑一下,IBM InfoSphere Optim 测试数据管理解决方案将如何使测试数据生成成为企业 创新引擎的一部分,而非造成工作混乱的因素。 相关文章 1. 2. 3. 4. 5. 保护 DB2 数据 DB2 与 Oracle Database 11 的成本和功能对比 开发者 DBA 的兴起 必知事项 Webinar:数据存档:改进数据库性能、降低成本的最佳实践