如何管理大型项目验收测试的测试数据治具?

How to manage test data fixtures for acceptance testing in large projects?

假设我们有一个庞大、复杂的系统,数据量大,业务逻辑复杂。

如何管理测试数据 (Oracle DB) 以从已知状态开始进行快速、可靠的验收(Selenium 等)测试?

由于规模和复杂性,测试应该:

您所描述的是 Sandbox DB。对于每个新部署,您必须 provide/populate 此数据库包含您需要的数据,并在测试完成后将其删除。

have several versions/snapshots of DB state

这是什么Fresh Fixture pattern and Prebuilt Fixture pattern will help you with. Also you could look at the Fixture Teardown patterns

在这里您可以找到处理此类 big-data-sandbox-strategies 时的一些注意事项。像调度、主数据存储库和监控。

要成功管理所有这些 - CI 服务器必须投入使用。由于您已标记 JAVA,一个不错的选择是:

我理解你的问题是你想 运行 你的测试用例有预定义的数据,而不是直接从数据库中填充一些东西。

  1. 为每个版本创建数据库转储并存储它们
  2. 创建作业(例如:在 CI 上,一个 Jenkins、Hudson 等作业)加载具有所需转储的测试数据库。这应该在成功部署到测试服务器后自动触发。
  3. 创建一个module/function用于创建临时测试数据
  4. 运行 您的测试用例(理想情况下,步骤 2 中的工作成功结果应该触发此)