在数据库中创建测试数据

时间:2008-08-19 14:47:58

标签: database integration-testing

我知道那里有一些测试数据生成器,但大多数似乎只是填写名称和地址样式数据库[随时纠正我]。

我们有一个大型的集成和规范化应用程序 - 例如发票上有与库存表相关联的零件号,与客户表相关联的客户编号,与审计信息相关的更改日志等,这些都很难随机填写。目前,我们对实际数据进行模糊处理以获取测试数据(但不是很好)。

您使用哪些工具\方法创建大量数据以进行测试?

6 个答案:

答案 0 :(得分:7)

在我工作的地方,我们使用RedGate Data Generator来生成测试数据。

因为我们在银行业领域工作。当我们必须使用主格数据(信用卡号,个人ID,电话号码)时,我们开发了一个可以掩盖这些数据库字段的应用程序,以便我们可以将它们作为真实数据使用。

我可以说,通过Redgate,您可以接近生产服务器上的真实数据,因为您可以自定义BD中每个表的每个字段。

答案 1 :(得分:3)

您可以使用VSTS数据库版(使用最新的2008 Power工具)生成数据计划。

它包括一个数据生成向导,它允许通过指向现有数据库来自动生成数据,因此您可以获得一些真实但包含完全不同数据的内容

答案 2 :(得分:3)

我已经推出了自己的数据生成器,可以生成符合正则表达式的随机数据。基本思想是两次使用验证规则。首先,您使用它们生成有效的随机数据,然后使用它们来验证生产中的新输入。 我已经说过重写该实用程序,因为它似乎是一个很好的学习项目。它可以在googlecode获得。

答案 3 :(得分:2)

我刚刚完成了一个项目,创建了3,500,000多条健康保险索赔线。由于HIPPA和PHI限制,使用甚至擦除的实际数据是PITA。我使用了一个名为Datatect的工具(http://www.datatect.com/)。

我喜欢这个工具的一些事情:

  1. 使用ODBC,以便您可以将数据生成到任何ODBC数据源中。我已经将它用于Oracle,SQL和MS Access数据库,平面文件和Excel电子表格。
  2. 可通过VBScript扩展。您可以在数据生成工作流程的各个部分编写挂钩,以扩展该工具的功能。我使用此功能在数据库中“同步”相关列,并控制值的频率分布以符合实际观察到的频率。
  3. 参考意识。填充外键列时,从父表中提取有效键。

答案 4 :(得分:1)

红门产品很好......但并不完美。

我发现当我编写自己的工具来生成数据时,我做得更好。当我想要生成说顾客时,我会使用它......但是如果你想模拟客户可能参与的随机性,例如创建订单,那就不太好了......有些项目中有一些项目有多个项目。

本土工具将提供我认为最“真实”的数据。

答案 5 :(得分:0)

Joel还在podcast #11

中提到了RedGate