testing - 测试数据应该用于生产吗?

标签 testing deployment production

我们正在对生产中的主要应用程序部署更新。该更新已在 QA 中进行了测试,看起来不错。我们的客户想在生产中进行测试。对于这种情况,我们将在生产环境中使用“测试数据”运行应用程序,一旦测试完成,我们将删除“测试数据”。

一些服务器管理员反对这一点,因为“测试数据不属于生产”。我认为这没关系,因为 QA 服务器和生产服务器具有不同的硬件并且数据库包含不同的应用程序(QA 有更多的数据库,生产是专用的)。除此之外,还有其他事实可以用来支持我的观点吗?

编辑:添加上下文

该应用程序是一种自动接收和验证数据的工具。我们通过电子邮件接收文件,此工具会自动验证它们并将它们导入数据库。我们有一个使用这些信息创建报告的 BI 系统(通过电子邮件接收 excel 文件,然后验证,然后报告/ View 出来,所有这些都是自动化的)。

“测试数据”将是代表真实数据(实际上它是真实数据但有问题或太旧)的旧文件(以前工作的好文件和坏文件)。

最佳答案

是的!但是在生产中手动使用测试数据对我来说并不是一个好主意,因为它无法控制或监视。我下面的回答是假设测试数据用于自动化测试。

生产中的测试数据是“今天”的需要。当自动化测试不是要求(或不存在)时,这不是要求。所以一般来说,这会让人不悦。安全是主要原因。它扰乱网站分析的影响是另一个原因。这些都是真实而充分的理由。

人们无法决定有一天将测试数据简单地投入生产,尤其是在项目快结束时。这需要从开发开始时就提出要求。因此,测试数据需要从第一次部署开始就存在于生产环境中。它的影响需要研究和记录。整个组织需要了解它的好处和影响。

测试数据需要根据其类型、需求或上下文进行划分。例如:可检索的测试数据和可编辑的测试数据。第一步是提供可检索(只读 - 永不更改)测试数据。也许这是我们在许多情况下可以走的最远的地方,但仍会提供良好的结果。并且这种只读测试数据的创建需要自动化并且最好记录下来。

在生产中拥有测试数据的好处是巨大的。应用程序的自动化测试比应用程序本身更有值(value)。如果管理层意识到这一点,那么至少最初的“皱眉”会改变。我觉得生产中的测试数据应该被视为需求/用户故事,并且应该减轻针对它的所有问题。该领域需要发展新的发展模式。

此讨论也与集成测试有关,本文重点介绍 it over unit testing 的好处

关于testing - 测试数据应该用于生产吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903576/

相关文章:

database - 如何通过数据库更新实现 Azure Web 应用程序的零停机部署?

javascript - 有没有一种工具可以在部署时自动缩小 html 文件中引用的所有 javascript 文件?

ruby-on-rails - 使用 sendgrid 在 rails 4 中获取 "OpenSSL::SSL::SSLError (hostname does not match the server certificate)"

java - TestNG 在@DataProvider 方法中引发异常后跳过测试

testing - Cypress 自定义查找命令

c# - 在 ASP.NET MVC 应用程序中使用 Web.config 而不是 app.config 进行集成测试

ruby-on-rails - Thin 很少会引发丢失的模板异常

javascript - 如何在 jasmine 中测试 $http 服务

iphone - 将 ios 应用程序部署到不同状态的 12-15 部 iPhone 的最快方法是什么?

javascript - Rails JavaScript View 在生产环境中不起作用