美文网首页产品经理能力模型
五分钟讲清楚 A/B 测试系统

五分钟讲清楚 A/B 测试系统

作者: 何处生才 | 来源:发表于2023-01-16 16:49 被阅读0次

A/B 测试是互联网行业比较热门的功能,通常是用于测试功能、页面样式、文案等的多版本优劣,并根据数据择优采纳。A/B 测试是一个相对比较复杂的系统,今天我来跟大家分享一下 A/B 测试系统的运作方式,方便有需要的朋友作为参考。

什么是 A/B测试

A/B 测试的本质是分离式组间实验,也叫分组对照实验。详细地来说,A/B 测试实际上是:在产品正式迭代发版之前,为同一个目标制定两个(或以上)可行方案,将用户流量分成几组,在保证每组流量在控制特征不同而其他特征相同的前提下,让用户分别看到不同的方案设计,根据几组用户的真实数据反馈,科学地帮助产品进行决策。简单理解地话,就是高中课本也提到过的控制变量对照实验。

A/B 测试通常由以下几个模块组成:

  • 分组模块(分流模块)
  • 实验管理模块
  • 业务接入模块
  • 行为记录分析模块

分组模块

分组模块,也叫分流模块,就是将流量分成多组。 好的 A/B 分组方案可以让流量分配得更均匀随机,同时需要具备根据用户、地域、时间、版本、系统、渠道、事件等各种维度来对请求进行分组的能力,并且保证分组的均匀性和一致性。

一般来说,通用分流服务的用户唯一 ID 会根据不同终端采用不同的用户标识,目前通用做法为 Web 端 ( 含 PC 以及 APP 端内的 H5 ) 采用 Cookieid,APP 端采用设备 ID ( 设备 ID 不同公司有各自生成算法,一般来说 iOS 会用 IDFA,安卓采用 Mac 地址 +AndroidID+IMEi ),小程序端采用 openID 作为唯一标识符。

如果需要做到多端联动,则需要通过用户的注册 ID 等其他信息进行 ID Mapping,建立平台真正的统一用户标识。

如果要设计分组模块,那么需要注意两个一致性:

①必须确保样本一致性:确保分配到不同实验方案的用户样本特征是一致的,在统计上控制单一变量原则,即所谓“随机均匀”;

②确保分流一致性:在分配到不同版本时应确保随机均匀分布,并且确保分流一致性(即同一客户多次进入同一个试验,访问的实验版本相同)。

实验管理模块

实验管理模块,主要就是指支持产品经理或运营等人员管理用户分组、变量、实验版本等的模块。

业务接入模块

接入模块的主要目的是方便在产品迭代优化的各个阶段整合 A/B 测试能力,对优化点做各种 A/B 测试。一般通过提供一个 A/B 测试 SDK 或者 A/B 测试 Restful 接口的形式供业务方使用。目前市面上对于业务接入模块有三种解决方案:

可行方案 1:通过定制的 A/B Test SDK 来处理 A/B 测试业务

该方案需要开发 A/B Test SDK,并将 SDK 整合到前端,A/B Test SDK 会根据用户标识将用户划分到某个组,然后带着分组标识和服务端进行交互,进而完成 A/B 测试相关服务。

具体 A/B 测试服务与业务接口的交互实现方式可以是如下两种之一:

∙ A/B 测试服务下发两个不同的接口给 A/B 测试 SDK,当用户请求时,根据用户的分组,分别调用不同的接口。

∙ A/B 测试服务下发同一个接口给 A/B 测试 SDK,但是不同的分组对应的参数不同,当用户请求时,根据用户所在的分组,选择不同的参数来访问该接口 (该接口会根据不同的参数获取不同的数据)。

可行方案 2:在后端业务层增加相关组件来做 A/B 测试

该方案通过在后端接口层增加相关组件来处理 A/B 测试需求,该组件通过与 A/B 测试服务交互来完成 A/B 测试的功能,目前采用该方式的公司有 Google,百度等,通过后端统一 Router 模块来处理 A/B 测试相关请求。相当于前端只需要把所有的数据传给后端,由后端的 Router 来统一划分组别,并根据组别去调用不同的接口服务。

这个方案的优点是模块化,Router 解决所有与 A/B 测试相关问题,对 A/B 测试业务做调整不需要前端版本升级,只需要升级后端服务即可。但是 Router 层是整个 A/B 测试的核心,需要具备高并发高可用的能力,否则出现问题会影响 A/B 测试能力的发挥。

可行方案 3:通过在算法业务层跟 A/B 测试服务交互来实现 A/B 测试能力,不需要前端和接口层做任何处理

这种方案比较适合算法类 (推荐算法、搜索算法、精准投放等) 相关业务做 A/B 测试,这里不展开细说。

行为记录分析模块

行为记录分析模块包含 A/B 测试行为数据打点、数据收集、数据分析和数据可视化展示等子模块。行为记录分析模块需要能够支持分组查看数据、对比数据,这样才能更方便看出哪个组的数据表现更好。

A/B 测试系统运行流程

用户首先会被分流模块划分到某个分组里,然后根据分组 ID 会获取到不同版本的服务,与此同时也会产生不同的数据。(变体:也就是要测试的变量+固定的不变量)

写在最后

A/B 测试系统对于很多企业来说都是非常好用的工具,虽说市面上也有很多现成的分组测试工具,但出于数据安全、使用成本等考虑,建设内部的 A/B 测试系统才是一个长期受益的方法。

相关文章

  • 五分钟讲清楚 A/B 测试系统

    A/B 测试是互联网行业比较热门的功能,通常是用于测试功能、页面样式、文案等的多版本优劣,并根据数据择优采纳。A/...

  • 2018-09-09京东测试开发工程师拾漏补遗

    选择题 1、在以下测试阶段中,( )主要依据是系统设计文档 A、单元测试 B、集成测试 C、系统测试 D、验收测试...

  • A/B测试系统设计

    1、什么是A/B测试 A/B 测试,简单来说,就是为同一个目标制定两个方案,让一部分用户使用 A 方案,另一部分用...

  • 连载|软件测试系列一

    以下软件测试描述以楼主目前测试的B/S架构为基础----银行理财系统 1、软件测试:顾名思义测试系统满足客户需求并...

  • Loadrunner性能测试--基础理论(一)

    一、性能测试理论知识 1.1、什么系统需要做性能测试 单机系统、C/S、B/S 这三类都应该进行性能测试 一般C/...

  • 机器学习面试题集 - 如何进行 A/B 测试

    什么是 A/B 测试? A/B 测试什么时候用? 如何应用 A/B 测试? 什么是A/B 测试 A/B 测试是最简...

  • 原来硅谷是这么做A/B测试的

    最近在学习优达学城Udacity的“数据分析师”的“A/B测试”部分,系统学习了硅谷的A/B测试的理念,流程,设计...

  • 抖音app产品体验报告

    一 体验环境 测试机型:荣耀V9 操作系统:EMUI8.0.0 测试网络:WIFI 测试版本:抖音v1.7.1 B...

  • 系统多点认证缺陷

    漏洞描述:系统允许多点认证 测试方法: 1. 在浏览器A中使用测试账号登录系统; 2. 同时在浏览器B中使用同一个...

  • 工作测试电路板所悟到的

    在测试一些电路板的过程中,我领悟出了一个道理。 有某个A规模系统,里面包含一些B规模的系统,B规模系统里又包含一些...

网友评论

    本文标题:五分钟讲清楚 A/B 测试系统

    本文链接:https://www.haomeiwen.com/subject/lqeacdtx.html