1

在一个 n 层网络应用程序中,我是否应该针对不同的数据库运行集成测试,一个专门用于测试代码的数据库?对生产数据库进行测试是否也是标准做法?

4

2 回答 2

1

你永远不应该在生产环境中运行未经测试的代码。毕竟,您不想发现它有一个会清除所有数据的错误。这就是测试应该找到的。而且您不应该在生产系统中拥有测试/暂存数据。将数据从生产环境中转储出来并将其加载到另一个环境中以使用真实数据进行定期测试是一种很好的做法。

您应该有一个测试数据库(不与生产共享)。在每次测试之前清除数据是个好主意。

您可以在生产中运行冒烟测试。他们会伪装成用户(代理)并访问许多页面,甚至可能会创建一些东西(带有特殊标签,这样您就可以再次找到它们并删除它们。)

于 2013-05-03T19:59:49.793 回答
0

我宁愿考虑不同的数据库用户拥有自己的数据集。数据库架构应该相同。我永远不会使用相同的数据库用户在生产数据库上运行测试。测试逻辑甚至不应该交付给客户端,因为它可能会导致严重的安全问题。

在我看来,您需要一个完整的类似于生产的数据集来进行测试,以便能够测试应用程序的每一个功能。此外,您还需要一个空数据库(没有任何业务数据)供应用程序客户端将其作为初始交付点。不应测试此类数据集,因为不需要测试业务逻辑的数据。

于 2013-05-03T19:59:57.963 回答