与大型数据库的集成测试

时间:2012-07-02 22:14:06

标签: .net sql-server database testing integration-testing

我有一个现有的应用程序,我想添加一些自动集成测试。这是一个.Net / SQL Server应用程序,通过存储过程管理所有数据访问。存储过程可能包含也可能不包含业务逻辑。构建我们的测试基础似乎最有效的方法是在报告和解决错误时添加bug测试。因此,每个测试都将依赖于一组非常具体的数据,这些数据可能分布在多个数据库中的多个表中。如果数据库很小,我们可以在运行之前简单地为每个测试分别包含测试数据的数据库副本,并在测试完成后删除数据库。但是,总的来说,这些数据库太大,无法为每个数据库完整地复制和存储。每个测试实际使用的数据子集都是可管理的。总共有8个数据库。最小的是200 MB,最大的是10 GB,其他6个介于两者之间。

获得正确的子集似乎是这个过程的关键。我对SSIS没有多少经验,但我很确定我们可以创建一个预定义的包来打包测试所需的数据子集。这种方法的问题在于我们的应用程序涵盖了许多不同的功能区域,构建涵盖任何给定测试所需场景的软件包似乎令人生畏。

另一个似乎理想的选项(无论如何表面)将是创建一个记录框架,它可以记录存储过程使用的所有数据(我们的一些存储过程有多个表中的多个select语句)。因此,当我们准备为我们的测试用例创建数据时,我们可以简单地打开日志记录并针对完整/完整的数据库集运行测试逻辑。然后在运行期间记录所有数据库/表中访问的记录,并从日志中创建较小的测试特定数据库。此日志可以是实际数据,也可以是我们用于获取实际数据的一系列select语句。这个订单太高了吗?

有关如何处理这种情况的任何建议都会有所帮助。

0 个答案:

没有答案