在n层web应用程序中,我是否应该针对不同的数据库运行集成测试,一个专门用于测试代码?是否标准做法是对生产数据库进行测试?
答案 0 :(得分:1)
您永远不应该在生产中运行未经测试的代码。毕竟,您不希望发现它有一个消除所有数据的错误。这就是测试应该找到的东西。并且您不应该在生产系统中拥有测试/暂存数据。优良作法是将数据转储出生产并将其加载到另一个环境中,以便使用实际数据进行定期测试。
您应该有一个测试数据库(不与生产共享)。在每次测试之前消除数据是个好主意。
您可以进行生产中的烟雾测试。他们会伪装成一个用户(代理人)并访问许多页面,甚至可以创建东西(带有特殊标签,这样你就可以再次找到它们并删除它们。)
答案 1 :(得分:0)
我宁愿考虑使用自己的数据集的不同数据库用户。数据库架构应该是相同的。我永远不会使用相同的数据库用户在生产数据库上运行测试。测试逻辑甚至不应该传递给客户端,因为它可能会导致严重的安全问题。
在我看来,您需要一个完整的类似于生产的数据集用于测试目的,以便能够测试应用程序的每个功能。此外,您还需要一个空数据库(没有任何商务数据),以便应用程序客户端将其作为交付时的初始点。不应测试这样的数据集,因为测试业务逻辑不需要数据。