AB测试实战(一)

简介: AB测试是一种数据驱动的产品优化方法,用于比较不同版本的网页、应用界面或营销策略的效果。

AB测试实战


1、AB测试介绍🐾


AB测试是为Web或App界面、流程设定两个或多个(A/B/n)版本,在同一时间维度下,分别让类似的客户群体随机访问这些版本,收集各群组的用户体验数据和业务数据,最后通过显著性检验分析评估出最优版本,并正式采用。简而言之,就是通过同时进行多个方案的测试,选出最佳版本。

AB测试的核心原理是假设检验,通过检验我们提出的假设是否正确来做出决策。在AB测试中,就是检验实验组和对照组的指标是否有显著差异。


1.1 AB测试的关键点:目标KPI和策略


  • AB测试,作为一种数据驱动的产品优化方法,其核心在于通过对比不同版本的策略或设计(通常称为A版本和B版本),来评估它们对关键性能指标(KPI)的影响。这种方法的关键在于明确目标KPI,并制定具有针对性的策略,以测试哪些变更能够显著提升用户满意度、增加转化率、减少跳出率或达到其他预定的业务目标。
  • 通过精心设计的AB测试,企业可以系统地评估不同策略的有效性,从而做出基于数据的决策,优化产品体验和业务结果。这不仅有助于提高产品的竞争力,还能为企业的持续成长和创新提供有力支持。


1.2 AB测试的作用


  • 优化用户体验:通过比较不同版本的界面、布局、按钮设计、文本内容等,找出用户更喜欢的版本,从而提升用户体验。
  • 提高转化率:AB测试可以针对网站的特定页面(如着陆页、购物车页面、注册页面等)进行测试,找出哪些设计或策略能更有效地吸引用户完成目标操作(如购买、注册、下载等),从而提高转化率。
  • 验证假设:在产品开发和市场策略中,经常会有各种假设。通过AB测试,可以验证这些假设是否成立,为产品迭代和市场策略调整提供数据支持。
  • 降低风险:在推出新产品或新功能之前,通过AB测试可以预先了解用户对新特性的反应,从而降低产品失败的风险。
  • 个性化推荐:通过AB测试,可以了解不同用户群体对不同内容或功能的偏好,从而为用户提供更个性化的推荐和服务。
  • 提升品牌忠诚度:通过优化用户体验和提高转化率,AB测试有助于提升用户对品牌的满意度和忠诚度。


1.3 AB测试实施的一般步骤


明确目标(KPI):


  • 清晰地定义测试的目标,比如提升转化率、点击率、分享率等。


  • 确定需要改进的具体点,如策略、算法、界面调整或功能调整。

确定样本量:


  • 通过假设检验或统计学的知识,估算出为了达到一定置信水平和效果提升所需的实验人数。


  • 考虑用户群体的特性和行为模式,确保样本具有代表性。

    分组(圈人):


  • 将用户随机分配到实验组(B组)和对照组(A组)。


  • 确保两组用户在人口统计特征、历史行为等方面尽可能相似,以消除其他潜在影响。

     AA测试(基准测试):


  • 在进行真正的AB测试之前,先进行一次AA测试,即两组用户都展示相同的内容或版本。


  • 观察两组用户在AA测试期间的KPI表现,确保没有显著差异,从而验证分组和流量分配的有效性。

     实施AB测试:


  • 对照组(A组)继续展示原始产品或功能。


  • 实验组(B组)展示新的产品或功能调整。


  • 监控两组用户的行为和KPI表现。


2、AB测试常见问题和应对方案🐾

2.1 如何分配流量🐣


一般采用A组B组人数相等的方法进行流量分配


常用的分流方法


  • 利用随机数排序,例如My SQL中的 rand()函数


select a.*,case when rand()<0.1 then 'ctrl'
when rand() between 0.1 and 0.55 then 'test1' else 'test2' end as ab_group_tag
from (select distinct customerID from user_table) a
order by ab_group_tag;


  • 利用某些随机ID的尾数,例如case when ID like ‘%1’then ‘Ctrl’else ‘Test’end as AB_group
select a.*,case when customerID like '1%' then 'ctrl'
when customerID like '2%' or customerID like '3%' or customerID like '4%' or customerID like '5%' then 'test1'
else 'test2' end as ab_group_tag
from(select distinct customerID from user_table) a 
order by ab_group_tag;


  • 不管用哪种方法都要在人群身上留好标签以便事后分析


2.2 确定试验有效的最小参与人数🐣


  • AB测试的效果会一定程度上受到随机波动的影响


  • 完全随机的两组人不发优惠券,观察同一段时间的人均交易数,人均交易额这些KPI,都不会完全一样
  • 为了使测试结果显著有效,我们首先要确保测试组里人数最少的一组达到验证效果有效性的最小样本数量
  • 帮助计算样本量的网站:https://www.evanmiller.org/ab-testing/sample-size.html


  • Baseline conversion rate: 这里填写基准比率 10%
  • Minimum Detectable Effect:这里填写最低的可探知效果2%
  • Significance level α:显著性水平 一般选择5%
  • Statistical power 1−β:统计功效(statistical power )一般选择80%
  • 经过计算得知,我们想通过AB测试确定新的策略能够将KPI提升两个点参数实验的每组人数最少为7678人


2.3 AB测试中的假设检验🐾


为什么要计算参与AB测试的最少参与人数🐣


  • 我们做AB测试的目的是在尽量不影响用户体验的前提下,让少部分用户来验证新旧方案的优劣。这里就需要对用户进行抽样, 也就是抽取部分用户来代表全体用户来参与实验,并得出结论
  • 如果抽取的用户数量过少,不能代表所有用户的观点,结果没有意义
  • 如果抽取的用户过多,一旦我们的新方案与预期效果偏差较大则会对用户体验带来较大影响
  • 我们可以使用假设检验的理论帮助我们计算参与实验的最少人数


什么是假设检验?


假设检验(hypothesis testing)是一种统计推断方法,用于判断样本与样本、样本与总体的差异是由抽样误差引起还是本质差别造成的。假设检验是指从对总体参数所做的一个假设开始,然后搜集样本数据,计算出样本统计量,进而运用这些数据测定假设的总体参数在多大程度上是可靠的,并做出承认还是拒绝该假设的判断。


假设检验的基本思想


  • 假设检验的基本思想是“小概率事件”原理,其统计推断方法是带有某种概率性质的反证法。


  • 小概率思想是指小概率事件在一次试验中基本上不会发生。反证法思想是先提出检验假设,再用适当的统计方法,利用小概率原理,确定假设是否成立


  • 即为了检验一个假设H 0  是否正确,首先假定该假设H 0  正确,然后根据样本对假H 0 做出接受或拒绝的决策
  • 如果样本观察值导致了“小概率事件”发生,就应拒绝假设H 0 ,否则应接受假设H 0  。
  • 假设检验中所谓“小概率事件”,并非逻辑中的绝对矛盾,而是基于人们在实践中广泛采用的原则,即小概率事件在一次试验中是几乎不发生的


  • 概率小到什么程度才能算“小概率事件”,显然,“小概率事件”的概率越小,否定原假设H 0 就越有说服力,常记这个概率值为α(0<α<1),称为检验的显著性水平


  • 对于不同的问题,检验的显著性水平α不一定相同,一般认为,事件发生的概率小于0.1、0.05或0.01等,即“小概率事件” 。



AB测试中的假设检验


通过上面的例子我们对假设检验有了基本的了解, 接下来我们看一下如何在AB测试中应用假设检验


  • 原假设H 0 老的方案老的设计
  • 备择假设H 1 新的方案新的设计


在上面的例子中,实验的次数越多我们得到的结论就越准确,那么在AB测试中,实验的次数实际上就是参与实验的人数,我们可以通过设置显著性水平(Significance level) α来倒推参与实验的最少人数,具体计算可以通过上面给出的工具网站实现


显著性水平α : 依据实验结果做出推翻原假设(否定原方案) 选择备择假设(采用新方案) 的决定,犯错的概率, 一般设置为5%


统计功效(1−β): 依据实验结果做出保留原假设(保留原方案) 不选择备择假设(不采用新方案) 的决定,犯错的概率, 一般β设置为20% 那么1−β 为80%



2.4 AB测试与辛普森悖论


辛普森悖论为英国统计学家E.H.辛普森于1951年提出,即在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。



方案A(现有方案)转化率
方案B(新方案)转化率
Android 用户 70/800 = 8.75% 20/200 = 10%
iphone 用户 10/200 = 5% 50/800 = 6.25%
总用户 80/1000 = 8% 70/1000 = 7%


AB测试中产生辛普森悖论的原因:流量分割不均匀导致的实验组与对照组的用户特征不一致


AB测试中如何避免辛普森悖论


  • 要得到科学可信的 AB 测试试验结果,就必须合理的进行正确的流量分割,保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。



方案A(现有方案)转化率
方案B(新方案)转化率
Android 用户 70/800 = 8.75% 80/800 = 10%
iphone 用户 10/200 = 5% 12/200 = 6%
总用户 80/1000 = 8% 92/1000 = 9.2%


  • 在实验设计上,如果我们觉得某两个变量对试验结果都有影响,那我们就应该把这两个变量放在同一层进行互斥试验,不要让一个变量的试验动态影响另一个变量的检验。如果我们觉得一个试验可能会对新老客户产生完全不同的影响,那么就应该对新客户和老客户分别展开定向试验,观察结论


  • 在试验实施上,对试验结果我们要积极的进行多维度的细分分析,除了总体对比,也看一看对细分受众群体的试验结果,不要以偏盖全,也不要以全盖偏。一个试验版本提升了总体活跃度,但是可能降低了年轻用户的活跃度,那么这个试验版本是不是更好呢?一个试验版本提升总营收0.1%,似乎不起眼,但是可能上海地区的年轻女性 iPhone 用户的购买率提升了20%,这个试验经验就很有价值了。



AB测试实战(二)+https://developer.aliyun.com/article/1544771?spm=a2c6h.13148508.setting.33.22454f0eHFZZj3

相关文章
|
10月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
11月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
10月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
12月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
11月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
1290 11
|
12月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。
|
资源调度 前端开发 JavaScript
Jest 测试实战指南
本文系统讲解如何使用 Jest 进行高效的 JavaScript 函数测试,涵盖环境搭建、测试用例编写、模拟函数与快照测试等内容,帮助开发者提升代码质量与测试效率。
438 0
|
人工智能 缓存 监控
大模型性能测试实战指南:从原理到落地的全链路解析
本文系统解析大模型性能测试的核心方法,涵盖流式响应原理、五大关键指标(首Token延迟、吐字率等)及测试策略,提供基于Locust的压测实战方案,并深入性能瓶颈分析与优化技巧。针对多模态新挑战,探讨混合输入测试与资源优化