测试数据是否应该在生产环境中使用?

3
我们正在生产环境中部署主应用程序的更新。该更新在QA中进行了测试,看起来可以使用。我们的客户想在生产环境中进行测试。为此,我们将在生产环境中使用“测试数据”运行应用程序,并在测试完成后删除“测试数据”。
一些服务器管理员反对这一点,因为“测试数据不属于生产环境”。我认为这是可以接受的,因为QA服务器和生产服务器具有不同的硬件,并且数据库容纳不同的应用程序(QA具有更多的数据库,生产专用)。除此之外,还有其他事实可以用来支持我的观点吗?
编辑:添加上下文
该应用程序是一个自动化接收和验证数据的工具。我们通过电子邮件接收文件,该工具会自动验证并将其导入数据库。我们有一个BI系统,使用此信息创建报告(通过电子邮件接收Excel文件,然后验证,然后生成报告/视图,所有这些都是自动化的)。
“测试数据”将是旧文件(来自以前的努力的好文件和坏文件),代表真实数据(实际上是真实数据,但存在问题或过于陈旧)。

我不认为有足够的上下文。测试数据是什么?应用程序是什么?使用测试数据运行意味着什么? - MK.
1
仅凭“测试数据不应该出现在生产环境中”这句话并不足够。这个解释背后可能有一些潜在的原因,了解他们为什么这样感觉会更有帮助。 - William Walseth
谢谢,我刚刚添加了一些上下文。 - Jesús E. Santos
3个回答

3
是的!但在生产中手动使用测试数据对我来说不像一个好主意,因为它无法被控制或监视。下面的答案假定测试数据用于自动化测试。
生产中的测试数据是“今天”的需求。当时没有自动化测试的要求(或不存在)时,这不是一个要求。因此,一般情况下,这将受到谴责。安全性是主要原因。它在搞乱网站分析方面的影响是另一个原因。这些都是真正而好的理由。
不能决定某一天简单地将测试数据放入生产中,特别是在项目结束时。这需要从开发开始就成为要求。因此,测试数据需要从第一次部署开始就存在于生产环境中。并且其影响需要进行研究和记录。整个组织需要了解它的益处和影响。
测试数据需要根据其类型、需求或上下文进行划分。例如:可检索测试数据和可编辑测试数据。第一步应该是提供可检索(只读-永不更改)的测试数据。也许在许多情况下,这是我们能够走得最远的,仍然会提供良好的结果。并且这种只读测试数据的创建需要自动化,并且最好有文档记录。
在生产环境中拥有测试数据的好处是巨大的。应用程序的自动化测试比应用程序本身更加珍贵。如果管理层意识到这一点,至少最初的“皱眉”会改变。我认为,在生产中使用测试数据应该被视为一个要求/用户故事,并且所有反对它的问题都应该得到缓解。新的开发模式需要在这个领域发展出来。
这个讨论也涉及集成测试,本文重点介绍了它相对于单元测试的好处(链接1)

0

您的管理员是正确的。在生产环境中使用测试数据将使您面临风险(安全漏洞):

  • 生产环境中的测试数据可能会被用来对公司造成损害(有意或无意)。

例如,如果您在生产环境中有不存在的身份信息,您可以向其支付款项。如果它们与真实银行账户相关联,则会失去资金而无法检测到。

测试数据可能会改变您的管理报告。当存在虚假操作时,某些人可以影响报告并对所做决策产生影响。这将非常难以跟踪,甚至更难以纠正。

测试数据可能会与生产数据交互。如果有人犯了错误并建立了错误的关系,则基于测试数据可以更改生产数据。

没有好的方法可以检测您是否拥有测试数据,即使您标记它。所有数据都可以标记为测试数据。如果您在业务层中处理测试数据,则不会真正测试您的生产环境。


0
现在,拥有与生产环境相同的基础架构配置的阶段性环境是一种良好的实践,因此您可以执行渗透测试、负载测试以及任何您想要执行的操作,以确保生产环境的行为符合您的预期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接