Dados Sintéticos
Qualidade de Software
Testes
Privacidade
Dados

用于测试和质量保证的合成数据:无需复制生产的真实质量

如何使用合成数据进行测试、质量保证和审批:无需复制生产数据即可实现真实质量,同时为工程团队带来安全性和速度提升。

用于测试和质量保证的合成数据:无需复制生产的真实质量

询问任何工程团队审批环境中的大量数据来自哪里。在许多公司中,诚实的答案是:来自生产副本。有人在某个时候复制了测试环境的真实基础,因为这是让它看起来像真实的东西的最快方法。那个副本留在那里,一个学期又一个学期地被使用和复制。

这个习惯解决了一个问题,却造成了一个更大的问题。它解决了现实主义问题,因为根据定义,生产数据是现实的。但这造成了巨大的隐私暴露,因为来自真实客户的个人数据现在在受保护较少的环境中流通,更多的人可以访问,有更多的副本,但控制权却更少。这是我遇到的最常见和最被低估的风险之一。

合成数据以一种干净的方式解决了这个方程:您生成的质量就像生产一样,但其中不包含任何真正的客户。

为什么复制生产是一个问题

值得指出的是这些风险,因为它们通常被视为隐形成本,直到它们成为事件的那一天。

隐私风险是最明显的。根据[LGPD0],审批环境中的个人数据是受相同义务约束的个人数据。每个有权访问的开发人员、该环境的每个备份、涉及该基础的每个测试集成,所有这些都是暴露表面。审批过程中的泄密所带来的伤害与生产过程中的泄密所带来的伤害一样大,而且还有一个额外的好处,那就是没有人注意到。

安全风险也随之而来。测试环境通常具有较宽松的控制、共享凭据和较少的监控。在这种情况下放置真实数据就是在门未锁的情况下将有价值的东西保留在房间里。

还存在操作风险。生产副本包含生产中拥有的内容,而生产中很少有您需要测试的边缘情况。对于最重要的场景,您最终会得到一个庞大、敏感但不完整的基础。

合成质量提供什么

生成测试数据而不是复制它在多个方面改变了游戏规则。

首先是建设安全。如果数据从来都不是来自真实的人,就不会泄露任何个人数据。审批环境不再是风险存储库,而是成为其应有的样子:一个运行软件的空间。这就是我在[合成数据和隐私1]中深入研究的隐私角度。

二是场景把控。通过合成质量,您可以故意生成需要测试的内容:具有破坏布局的大名称的客户、负值、无效日期、包含一千个项目的订单、没有历史记录的用户。这些边缘情况是错误存在的地方,而生产很少将它们放在盘子上。

三是按需量。负载测试需要一千万条记录?产生。您是否需要精益基础来快速运行该套件?生成更小。您不再依赖于生产规模,而是开始定义测试所需的规模。

四是稳定。生产数据一直在变化,这使得测试变得脆弱且难以重现。根据已知规则生成的合成质量在您想要的时候是确定性的,这使得测试因正确的原因而失败,而不是因为在它们下面的骰子发生了变化。

真实性是不能错过的要求

合成质量只有在执行与真实数据相同的代码路径时才有用。朴素的合成数据,每个人都称为“测试测试”,具有相同的无效 CPF,几乎没有测试任何内容。它会验证真实数据是否会失败,并隐藏仅在各种情况下出现的错误。

在这里,现实主义意味着尊重领域的结构和规则。通过数字验证的 CPF。存在的邮政编码。日期彼此一致,并在首次购买前进行注册。真实的分布,具有活跃和不活跃客户、大订单和小订单、常见案例和罕见案例的正确组合。关系是持续的,订单指向现有的客户和现有的产品。

您的系统越依赖这些规则,人群就越需要尊重它们才能使测试有效。对于 QA,所需的保真度级别通常更多地涉及结构和规则,而不是再现精细的统计分布。您需要数据有效且多样化,而不是以科学精度复制数据库的聚合行为。

如何采用而不成为永恒的项目

人们倾向于将合成数据生成视为一个大平台。对于 QA,我建议采取相反的路径:从小事做起,快速证明价值。

选择一个具有明显痛苦的系统,最好是当前依赖于生产复制并生成大部分主流的系统。在真实案例中感受到收获比任何长期规划都更有说服力。

与了解业务的人员一起对域规则进行建模。质量质量来自于很好地捕获数据约束,因此 QA、开发和业务之间的对话才是价值所在。

版本生成器作为代码。生产面团的配方是项目的一部分,它必须像任何其他组件一样进行审查、测试和发展。这将数据策略与测试策略联系起来,这是我在[自动化测试2]中介绍的主题。

故意包括边缘情况。合成质量相对于生产复制的真正优势是能够生成困难的场景。不要仅仅通过复制快乐的案例来浪费这一点。

集成到管道中。在持续集成流程中按需生成的批量数据使测试具有可重复性且运行成本低廉。共享静态数据库中的测试数据会变得陈旧且具有破坏性。

领导者看到的收获

对于那些做出决定的人来说,争论很简单。将生产副本替换为合成质量消除了公司最大的隐私暴露之一,减少了测试环境的安全面,同时加快了 QA 速度,因为团队开始生成所需的场景,而不是在可能没有该场景的数据库中查找它。

这是安全与速度齐头并进的罕见案例之一。一般来说,更多的控制是以更慢的代价为代价的。在这里,通过停止到处携带真实数据,您可以同时变得更安全、更敏捷。

这是采用回报最快、风险最低的合成数据。所需的忠诚度是可控的,隐私的获得是立竿见影的,对团队日常生活的影响在最初几周内就会显现出来。

如果您的公司仍然复制生产进行测试,那么这里就是起点。选择一个流程,生成质量,淘汰副本。今天解除的审批环境明天就不会发生。

另请阅读

  • [合成数据和隐私:在不暴露个人数据的情况下进行训练和测试3
  • [什么是合成数据以及为什么它对领导者很重要4
  • [综合数据:没有人在销售幻灯片上提出的风险和限制5
  • 【数字产品中的大数据:实践中的良好实践6
  • [训练人工智能的合成数据:实际收益和模型崩溃的风险7
  • [数据加密8