基于规则的自动化测试数据生成的制作方法

文档序号:7994994阅读:644来源:国知局
基于规则的自动化测试数据生成的制作方法
【专利摘要】本文公开的示例实施例涉及基于规则的数据填充系统,其包括:规则分派器引擎,用于自动将数据生成规则绑定到数据库。该系统还可以包括:数据生成器引擎,用于基于规则来生成用于数据库的测试数据。
【专利说明】基于规则的自动化测试数据生成

【背景技术】
[0001] 性能测试对于软件的质量保证来说是必要的。可靠的性能测试很大程度上取决于 合适的测试数据。软件开发商和制造商受到以下挑战:提供用于测试软件数据库的测试数 据,其中这样的测试数据与客户的数据对准。作为结果,在测试期间错过与软件性能相关的 许多缺陷,并且这些缺陷随后在软件被部署之后被客户报告,因为性能测试数据未合适地 与客户的真实数据对准。

【专利附图】

【附图说明】
[0002] 图1描绘了其中可以实现各种实施例的环境。
[0003] 图2A和2B描绘了根据示例的基于规则的数据填充系统。
[0004] 图3A-3B描绘了利用用于实现基于规则的数据填充方法的指令编码的计算机可 读存储介质和处理器的示例实现。
[0005] 图4描绘了基于规则的数据填充系统的另一示例。
[0006] 图5是描绘图2A-2B和图4的系统的示例实现的框图。
[0007] 图6是用于基于规则的数据填充的方法的示例实现的流程图。
[0008] 图7是用于基于规则的数据填充的方法的另一示例实现的流程图。

【具体实施方式】
[0009] 介绍:下文描述的各种实施例被开发来提供用于例如在性能测试阶段期间测试数 据库的基于规则的数据填充系统。对于填充性能测试数据来说存在许多挑战。例如,在数 据库中可能存在数百个表,这使得分析针对每个表的数据约束以及手动生成被模式化到每 个表的数据是费力的。因此,将期望实现这样的测试工具,该测试工具自动生成针对数据库 表的特定结构调整的测试数据。在软件程序中定义了若干数据关系,并且这些关系可能未 被反映在数据库约束中。因此,可能需要性能测试数据和软件商业逻辑知识来确定要填充 数据库以用于测试目的的性能测试数据的类型。因此,可能需要一平台来使得软件架构师 能够提供这样的输入并且使得性能调优架构师能够提供这样的输入以配置测试工具以便 生成相关性能测试数据,软件架构师具有软件商业逻辑的知识,性能调优架构师具有测试 设计知识。此外,数据库中的一些数据结构可能太具体(即,针对具体商业需要而调整)或者 太复杂,从而使得难以开发支持这样的数据结构以保证它们的完整性的数据填充工具。因 此,还将期望开发对于对具有变化复杂度的不同数据库的不同软件的性能测试来说可重用 (即,通用)的数据测试工具。所描述的实施例提供用于解决以上挑战和需要的测试工具。所 描述的实施例通过提供鲁棒的测试工具来减少在测试期间逃脱检测且随后被客户发现的 性能缺陷的数量。
[0010] 示例实现包括:提供用于数据库的数据生成规则。数据生成规则包括数据约束(例 如,实体关系图(ERD))。此外,可以针对数据库表和列指定数据规模。在一个实施例中,创 建描述要生成的测试数据的规则实例,其中,规则实例包括数据库规则实例、表规则实例和 列规则实例。该实现还包括:自动将数据生成规则绑定到数据库。例如,数据生成规则被绑 定到数据库的列和表。该实现还包括:基于数据生成规则来生成测试数据。例如,测试数据 可以被输出为结构化查询语言(SQL)脚本文件、电子表格文件、测试文件、标准测试员数据 格式(STDF)文件、或可以用于在性能测试期间将生成的数据注入到软件中的其他脚本文件 格式。
[0011]以下描述被分解成节。被标记为"环境"的第一节描述了其中可以实现各种实施 例的网络环境的示例。被标记为"部件"的第二节描述了用于实现各种实施例的物理和逻 辑部件的示例。被标记为"操作"的第三节描述了实现各种实施例所采取的步骤。
[0012] 环境:图1描绘了其中可以实现各种实施例的环境100。环境100被示出为包括基 于规则的数据填充系统102、数据储存器104、服务器设备106和客户端设备108。下文参照 图2A-2B、3A-3B、4和5描述的基于规则的数据填充系统102总体地代表被配置为基于供应 的数据生成规则生成测试数据的编程和硬件的任何组合。数据储存器104总体地代表被配 置为存储数据以供基于规则的数据填充系统102使用的任何设备或设备的组合。这样的数 据可以包括数据库信息114、数据模式、数据生成规则、数据样式和趋向以及历史测试数据。
[0013] 在图1的示例中,数据生成规则代表数据约束,该数据约束包括在数据储存器104 中供应和/或记录或者在一个或多个服务器设备106与一个或多个客户端设备108之间传 送的ERD。服务器设备106总体地代表被配置为对从客户端设备108接收的网络请求进行 响应的任何计算设备。给定服务器设备106可以包括web服务器、应用服务器、文件服务器 或数据库服务器。客户端设备108总体地代表被配置有用于传送这样的请求且接收和处理 对应响应的浏览器或其他应用的任何计算设备。链路110总体地代表经由电信链路、红外 链路、射频链路或提供电子通信的任何其他连接器或系统的线缆、无线、光纤或远程连接中 的一个或多个。链路110可以至少部分地包括内联网、互联网或这二者的组合。链路110还 可以包括居间代理、路由器、交换机、负载平衡器等等。图4描绘了一个或多个用户(例如, 软件架构师和性能调优架构师)与系统102交互以配置该系统用于数据生成的示例实现。 为了说明,软件架构师和性能调优架构师可以经由一个或多个客户端设备108和/或来自 服务器设备106 (例如,数据库服务器)的请求向系统102提供配置输入(例如,数据生成规 则)。客户端设备108可以包括例如笔记本计算机、台式计算机、膝上型计算机、手持计算设 备、移动电话或智能电话、板或平板计算设备、便携式阅读设备或任何其他处理设备。图5 描绘了自动将数据生成规则(经由规则分派器引擎202)绑定到数据库的表的示例。例如,规 则分派器引擎202可以被配置为自动将数据生成规则402绑定到表502的一个或多个列, 如图5中所示。
[0014] 部件:图2A-5描绘了用于实现各种实施例的物理和逻辑部件的示例。图2A描绘 了基于规则的数据填充系统102,其包括规则分派器引擎202和数据生成器引擎204。图2A 还描绘了耦合到数据储存器104的基于规则的数据填充系统102。数据储存器104可以包 括数据库信息114。
[0015] 规则分派器引擎202总体地代表被配置为自动将数据生成规则绑定到数据库的 编程和硬件的任何组合。数据生成规则可以被自动绑定到数据库表和数据库列。数据生成 规则描述要生成以用于测试数据库的数据的类型和范围。数据生成规则可以包括规则模板 和数据约束,诸如ERD和在对应于数据库的软件程序中定义的逻辑(例如,在软件程序中定 义的商业逻辑)。数据生成规则可以是从现有数据(例如,存储在数据储存器104中)、历史 测试数据、数据样式和趋向或它们的组合创建的。可替代地或附加地,数据生成规则可以是 用户定义的(例如,被软件架构师和/或性能调优架构师提供作为输入)。用户定义的规则 可以包括数据库级规则、表级规则、列级规则或它们的任何组合。数据库级规则描述数据库 的表之间的比率,并可以包括例如产业值类型、编码信息、数据库最大大小和商业规则。表 级规则描述相同表的列的关系,并可以包括例如表最大大小、表关系和表依赖性。列级规则 描述每个列的数据格式,并可以包括例如数据样式、列关系和列依赖性。
[0016] 除了自动绑定数据生成规则之外,规则分派器引擎202还可以自动绑定数据库规 贝U,其中数据库规则包括基本规则和先进规则。基本规则是来自数据库实例的数据库约束, 并可以包括例如大小、类型、空值、受限值、可用值、主键、外键、唯一键、索引值和样本数据。 先进规则包括例如数据趋向、数据频率、历史数据、数据属性、数据范围和数据样式。
[0017] 以下样本代码示出根据实施例可以如何定义规则,且被描述如下:

【权利要求】
1. 一种基于规则的数据填充系统,所述系统包括: 规则分派器引擎,用于自动将数据生成规则绑定到数据库;以及 数据生成器引擎,用于基于该规则来生成用于所述数据库的测试数据。
2. 根据权利要求1所述的系统,还包括: 图形用户界面(⑶I)引擎,用于从用户接收配置输入,其中所述配置输入包括所述数据 生成规则,并且其中所述数据生成规则包括规则实例、规则模板和数据约束; 存储引擎,用于存储数据库信息,其中所述数据库信息包括数据库模式和所述数据生 成规则;以及 模式解析器引擎,用于将来自所述数据库的数据约束解析成所述数据生成器引擎可使 用的统一格式。
3. 根据权利要求2所述的系统,其中所述模式解析器引擎还用于从所存储的数据、历 史测试数据或其组合创建数据生成规则。
4. 根据权利要求2所述的系统,其中所述数据约束包括所述数据库的对应于在与所述 数据库有关的可执行程序中定义的逻辑的逻辑数据约束,并且其中所述数据约束包括实体 关系图(ERD)。
5. 根据权利要求2所述的系统,还包括数据库连接器引擎,用于: 检索与所述数据库有关的信息; 检索所述测试数据;以及 操纵所述测试数据。
6. 根据权利要求1所述的系统,其中所述规则分派器引擎还用于自动绑定数据库规 贝U,其中所述数据库规则包括基本规则和先进规则。
7. 根据权利要求6所述的系统,其中所述基本规则包括数据信息,所述数据信息包括 数据大小、数据类型、空数据值、受限数据值、可用数据值、主键、外键、唯一键、索引、样本数 据、数据格式或它们的任何组合。
8. 根据权利要求6所述的系统,其中所述先进规则包括数据趋向、数据频率、历史数 据、数据属性、数据范围、数据样式或它们的任何组合。
9. 根据权利要求1所述的系统,其中所述规则分派器引擎还用于自动绑定用户定义 的规则,其中所述用户定义的规则包括数据库级规则、表级规则、列级规则或它们的任何组 合。
10. 根据权利要求9所述的系统,其中所述数据库级规则包括产业值类型、编码信息、 数据库最大大小、商业规则或它们的任何组合。
11. 根据权利要求9所述的系统,其中所述表级规则包括表最大大小、表关系、表依赖 性或它们的任何组合。
12. 根据权利要求9所述的系统,其中所述列级规则包括数据样式、列关系、列依赖性 或它们的任何组合。
13. -种包括指令的非暂态计算机可读介质,所述指令当被执行时实现用于测试数据 库的基于规则的数据填充方法,所述方法包括: 提供用于生成用于所述数据库的测试数据的规则; 自动将所述规则绑定到所述数据库;以及 基于所绑定的规则来生成测试数据。
14. 根据权利要求13所述的非暂态计算机可读介质,其中所述规则包括数据约束,所 述数据约束包括实体关系图(ERD)。
15. 根据权利要求13所述的非暂态计算机可读介质,其中自动将所述规则绑定到所述 数据库包括将所述规则绑定到数据库表、数据库列或它们的组合。
16. 根据权利要求13所述的非暂态计算机可读介质,还包括输出所述测试数据作为 结构化查询语言(SQL)脚本文件、电子表格文件、文本文件、标准测试员数据格式(STDF)文 件、其他脚本文件格式或它们的任何组合。
17. 根据权利要求13所述的非暂态计算机可读介质,其中,提供规则包括: 指定数据库表和数据库列的数据规模;以及 指定所述数据库中的表关系。
18. 根据权利要求13所述的非暂态计算机可读介质,其中,提供规则包括创建描述要 生成的测试数据的规则实例,其中,所述规则实例包括数据库规则实例、表规则实例以及列 规则实例。
19. 一种用于测试数据库的基于规则的数据填充方法,所述方法包括: 提供用于所述数据库的数据生成规则,其中所述数据生成规则包括数据约束; 自动将所述数据生成规则绑定到所述数据库;以及 基于所述数据生成规则来生成测试数据。
20. 根据权利要求19所述的方法,还包括基于所述测试数据来创建脚本。
【文档编号】H04L12/26GK104380663SQ201280074365
【公开日】2015年2月25日 申请日期:2012年6月29日 优先权日:2012年6月29日
【发明者】B.郭, Q.马, Y.阮 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1