Twitter A/B测试技术概览

发表于:2015-11-27 09:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:金灵杰    来源:51Testing软件测试网采编

分享:
  A/B测试在Twitter的整个产品流程中是着非常核心的一个环节,Twitter通过它来验证新功能是否有效。前段时间,Twitter发布了博客介绍了他们是如何实施A/B测试的。日前,他们又介绍了A/B测试背后的系统。
  概览
  Twitter从2010年开始使用他们的A/B测试工具DDG(Duck Duck Goose ),它已经成为聚合数据、记录用户行为、分析指标的系统性平台。
  下图为A/B测试工具概要数据流。
  A/B测试的基本流程
  通常来说,A/B测试需要事先设置一些参数和度量值。通过DDG,测试人员可以直接通过网页设置A/B测试的细节:
  实验范围,比如限定语言、国家、操作系统等参数;
  实验对照组,确定测试修改点和当前产品的区别;
  实验指标,设置需要追踪的指标,DDG默认会采集一些基础数据,其他指标可以自定义,或者从库中选取;
  通过上述设置,DDG会提供给实验人员一些代码,作为“需求开关”。然后,系统会开始记录实验过程中需要度量的数据。
  指标定义
  DDG提供三种指标类型:
  1、内置指标,大部分由实验团队定义和维护(例如登录次数、发推次数等),在实验中这些指标值会被自动追踪;
  2、实验者定义和配置的指标,实验者可以通过轻量级的领域专用语言(Domain Specific Language,DSL)定义需要记录的事件,DDG的管道会为实验者计算这些指标;
  3、导入的指标,这些指标完全由Twitter工程师创建,实验者可以创建自定义聚合方法,度量自定义内容;
  这些可以被聚合到“指标组”中,以方便实验人员选择。同时,每个指标组都由创建人维护,所有修改记录都会被记录。
  数据处理管道
  指标数据收集,都会通过管道进行运算。聚合数据也是整个系统中最大的挑战。一个指标源数据每天可能会产生非常大数量级的数据。
  实验平台使用Hadoop的Map-Reduce任务来解决运算的性能问题。为了尽可能提高性能,Twitter团队还和Hadoop团队共同合作,做了大量调优。
  另外有一些轻量级的流处理任务,会通过TSAR在Twitter的Heron平台进行实时计算。
  上图中的Scalding管道,可以被认为有三个不同的阶段。
  首先,将原始数据聚合成每个用户、每个小时的基础数据集。这些数据会被作为下一阶段的输入数据,同时也会被用作计算其他数据。
  然后,第一阶段生成的数据会加入A/B测试的表达式,并在实验过程中计算每个指标、每个用户的聚合数据。第二阶段的结果可以被用于深入挖掘结果。
  最后,第三阶段会汇总所有实验数据。这些实验数据会被加载到Manhattan中,产品团队可以在内部看板中进行浏览。
  总结
  支撑Twitter A/B测试平台的技术设施非常广泛,究其原因主要是因为庞大的数据量。平台需要对大量数据加以处理,以进行分析和实验。通过管道的设计,也使得平台可以对多粒度数据进行不同类型的分析。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号