我们正在为生产中的主要应用程序部署更新。该更新已经过质量保证测试,看起来不错。我们的客户希望在生产中进行测试。对于这种情况,我们将在生产中使用“测试数据”运行应用程序,一旦测试完成,我们将删除“测试数据”。
一些服务器管理员反对这是因为“测试数据不属于生产”。我认为没关系,因为QA服务器和生产服务器有不同的硬件,数据库容纳不同的应用程序(QA有更多的数据库,生产是专用的)。除此之外,还有其他事实我可以用来支持我的观点吗?
编辑:添加上下文
该应用程序是一种自动接收和验证数据的工具。我们通过电子邮件接收文件,此工具会自动验证它们并将它们导入数据库。我们有一个BI系统,使用这些信息创建报告(excel文件通过电子邮件接收,然后验证,然后报告/视图出来,所有这些都是自动化的)。
“测试数据”将是表示真实数据的旧文件(来自先前努力的好文件和坏文件)(实际上它是真实数据但有问题或者太旧)。
答案 0 :(得分:3)
是的!但是在生产中手动使用测试数据对我来说听起来不是一个好主意,因为它无法控制或监控。我的答案是假设测试数据用于自动测试。
生产中的测试数据是"今天"需要。当自动化测试不是要求(或不存在)时,这不是一个要求。所以总的来说,这将是不受欢迎的。安全是主要原因。它在搞乱网站分析方面的影响是另一个原因。这些都是真实而充分的理由。
人们无法决定将测试数据简单地投入到生产中,特别是在项目结束时。这需要从开发时间开始。因此,从第一次部署开始,测试数据就必须在生产中。其影响需要研究和记录。整个组织需要了解它的好处和影响。
测试数据需要根据其类型,需求或背景进行划分。例如:可检索的测试数据和可编辑的测试数据。第一步是获得可检索的(只读 - 永不改变)测试数据。也许这是我们可以在很多情况下走得最远,仍然会提供良好的结果。并且创建这种只读测试数据需要自动化并且最好记录下来。
在生产中使用测试数据的好处是巨大的。对应用程序的自动测试比应用程序本身更宝贵。如果管理层意识到那至少是最初的"皱眉"我认为生产中的测试数据应该被视为一个要求/用户,并且应该减少所有针对它的问题。新的发展模式需要在这一领域发展。
此讨论还涉及集成测试,本文重点介绍it over unit testing
的优点答案 1 :(得分:1)
您的管理员是对的。将测试数据投入生产将使您面临风险(安全漏洞):
例如,如果您在制作中拥有非排他性身份,则可以向他们付款。如果它们与真实的银行账户相关联,则会在没有检测到能力的情况下赔钱。
测试数据可以更改您的管理报告。如果采取虚假行动,有些人可能会影响报告并对所做的决定产生影响。这很难跟踪甚至更难纠正。
测试数据可以与生产数据交互。如果有人犯了错误并且制造了错误的关系,可以根据测试数据更改生产数据。
如果要标记测试数据,没有好方法可以检测到测试数据。所有数据都可以标记为测试数据。如果您处理业务层中不同的测试数据,则不能对您的生产环境进行真正的测试。
答案 2 :(得分:0)
现在,Staging环境具有与生产相同的基础架构配置是一个很好的做法,因此您可以执行测试,加载测试,并执行您想要做的任何事情,以确保生产将按预期运行。