A/B测试是什么?面试官把我问懵了!

2023-11-05

什么是A/B测试?

A/B测试是为 web 或 app 界面或流程制作两个(A/B)或多个版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。

A/B测试目的

  • 消除客户体验(UX)设计中不同意见的纷争,根据实际效果确定最佳方案;
  • 通过对比试验,找到问题的真正原因,提高产品设计和运营水平;
  • 建立数据驱动、持续不断优化的闭环过程;
  • 通过A/B测试,降低新产品或新特性的发布风险,为产品创新提供保障。

01A/B测试基本步骤

  • 分析现状并建立假设
    分析业务数据,确定当前最关键的改进点,并作出优化的假设。提出优化的建议
  • 设定目标,制定方案
    设置主要目标,用来衡量各优化版本的优劣;设置辅助目标,用来评估优化版本对其他方面的影响
  • 设计与开发
    制作2个或多个优化版本的设计原型并完成技术实现
  • 分配流量
    确定每个线上测试版本的分流比例,初始阶段,优化方案的流量设置可以较小,根据情况逐渐增加流量

  • 采集并分析数据
    收集实验数据,进行有效性和效果判断:统计显著性达到95%或以上并且维持一段时间,实验可以结束;如果在95%以下,则可能需要延长测试时间;如果很长时间统计显著性不能达到95%甚至90%,则需要决定是否中止试验。
  • 做出决策
    根据试验结果确定发布新版本、调整分流比例继续测试或者在试验效果未达成的情况下继续优化迭代方案重新开发上线试验。
北极星指标(North Star Metric),也叫作第一关键指标(One Metric That Matters),是指在产品的当前阶段与业务/战略相关的绝对核心指标,一旦确立就像北极星一样闪耀在空中,指引团队向同一个方向迈进。

02A/B测试原理和关键点

原理——假设检验

因为AB测试是检验来自两个组样本平均数的差异性,从而判断它们各自代表的总体的差异是否显著,因此使用的是两个总体均值之差的检验。即使用统计量Z。具体见假设检验假设检验。

关键点

  • 目标KPI

A/B测试中我们需要制定目标KPI:指评判AB测试效果优劣的最终指标。

例如:提升多少点击率或者提升多少转化率。
  • 策略

为了达到我们制定的目标KPI,我们需要采取一定的策略:AB组分别采取的策略的差异点。

例如:改变商品展示图片,改变文案等等;一般有多少个差异点就需要多少次测试;
  • A/B测试的作用

目标KPI的最大化:找到对KPI最优的策略,保证目标KPI最大化;

后续分析,沉淀诀窍:由于人群中有差异,通过研究不同子人群对于不同策略的响应程度,可以获得每组人群在策略上的偏好,帮助未来更好的个性化创新和设计。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

 

03AB测试常见问题 应对方案

01如何分配流量

零售行业的线下AB测试,一般用于测试不同优惠券带来的业务指标的变化。基于优惠券的具体设置方式,对流量分配有着不同的实施方法。

  • 多种优惠券设计相似:流量均分,4组策略每组20%,对照组20%
  • 优惠券设计不确定性大:最小化测试组,10%测试,90%对照
  • 优惠券效用过,仅为追踪效果:少量对照组,10%对照,90%测试

常用的分流方法

  • sql中的rand函数
  • 利用尾数的随机ID

不管如何做分流,用来做对照组和测试组的用户要做好标记方便之后进行分析和统计

02如何确定测试的最小人数

随机波动:

由于我们的测试样本不可能都一模一样,所以我们设定的两个一模一样的对照组的结果也有可能出现不一样的结果,这就是随机波动。随机波动会进一步影响测试的结果。

最小样本量:

为了使测试结果显著有效的同时保证最小的成本,我们首先要确保测试组里人数最少的一组达到验证效果有效性的最小样本数量。现在我们有很多网站可以帮我们计算最小样本量,网站如下A/B测试样本量计算网站

  • 比例类目标KPI:

这里的α弃真错误也叫第一类错误,β取假错误也叫第二类错误。

  • 均值类目标KPI:

如果测试过程中比例和均值两个指标都要对比,则选择数值大的那个。

03如何避免辛普森悖论

辛普森悖论:

在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。

导致辛普森悖论的原因:

流量分割不均匀导致的实验组与对照组的用户特征不一致。

如何避免辛普森悖论:

  • 合理的进行正确的流量分割,保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。
  • 试验设计:两个变量对试验结果都有影响,就应该把这两个变量放在同一层进行互斥试验,不要让一个变量的试验动态影响另一个变量的检验。
例如:我们觉得一个试验可能会对新老客户产生完全不同的影响,那么就应该对新客户和老客户分别展开定向试验,观察结论。
  • 试验实施:要积极的进行多维度的细分分析,除了总体对比,也看一看对细分受众群体的试验结果,不要以偏盖全,也不要以全盖偏。
例如:一个试验版本提升了总体活跃度,但是可能降低了年轻用户的活跃度,那么这个试验版本是不是更好呢?一个试验版本提升总营收0.1%,似乎不起眼,但是可能上海地区的年轻女性 iPhone 用户的购买率提升了20%,这个试验经验就很有价值了。

04A/B测试案例

项目背景

公司给网站投放广告的时候,一开始给用户看到的落地页是访问课程资料,现在公司又推出了开始免费试学这个落地页。

  • 目前的转化率全年平均在13%左右
  • 目标转化率达到15%。

a) 提出假设

  • 原假设:旧版的落地页好,新版的不好用
  • 备择假设:新的落地页好

b) 制定方案

选择变量

对照组:看到旧的页面
实验组:看到新的页面

虽然我们已经知道了旧的设计的转化率(13%左右), 但是我们依然要需要设计两组, 原因是为了避免其他因素带来的误差, 比如季节因素, 促销因素。这两组人在其它条件都相同的只是页面设计不同的情况下进行实验, 这样能保证两组间的差异是由于设计导致的。

确定目标KPI

转化率由13%提高到15%,为此我们记录用户是否转化的标识。

确定试验人数

虽然人数越多结果越准确,我们需要用到最小的成本来完成A/B测试,并保证结果的有效性,所以进行试验人数计算。

可以通过上面的网站计算人数为4523人次。

通过python计算人次4720。

我们这里取4523。

c) 分配流量

通过对userid进行hash,将用户分成两组old_page和new_page

d) 采集数据

准备和收集数据需要跟工程师团队配合,这里我们根据已有的数据每组采集出4523条数据。

删除重复用户。

我们能够发现,测试组合对照组的网页对应是一样的。

采集试验组和对照组的数据

查看数据情况

e) 分析数据

计算两组的转化率和标准差

从上表可以看出两组的转化率很接近,如下图所示:

我们的试验组比测试组的数据要好一些,但是否能够说明我们的试验组达到了我们的目标呢?这就需要我们用到假设检验。

假设检验

由于两种落地页的用户数据都大于30,所以选择z统计量

  • 使用statsmodels.stats.weightstats完成z检验

结论

  • p-value = 0.9050582054934148>0.05,所以不能拒绝原假设,即旧落地页更好,则我们的新落地页并不能带来更好的转化。
  • 置信区间可以看到我们的对照组转化率在正常水平内,而试验组转化率不在正常水平内。这意味着我们对照组和试验组的转化率很接近,我们的新落地页并没有改进作用。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

A/B测试是什么?面试官把我问懵了! 的相关文章

  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • msyql 异常,别干着急,70%的问题都在这里!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 月薪2W的软件测试工程师,到底是做什么的?

    在生活中 我们常常会遇到以下几种窘迫时刻 准备骑共享单车出行 却发现扫码开锁半天 车子都没有反应 手机导航打车 却发现地图定位偏差很大 司机总是跑错地方 买个水 却遭遇自动售货机吐币 或者不找零钱 好不容易休息打个游戏 却一直出现卡顿 闪退
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 【计算机网络】OSI参考模型与TCP/IP分层模型对比(体系结构对比)

    笔记整理 协议 简单来说 协议就是计算机与计算机之间通过网络实现通信时事先达成的一种 约定 这种约定使得那些由不同厂商的设备 不同的操作系统组成的计算机之间 只要遵循相同的协议就能够实现通信 就好比两个人使用不同国家的语言就行对话 是无法相
  • Selenium(一)2.第一个自动化测试脚本

    前面我们可以成功启动浏览器啦 接下来我们完成第一个自动化测试的脚本 举例 验证打开的链接是Selenium官网页面 分析问题 我们输入了一个url 然后打开网页 那么怎么确定这个页面是我们想要的页面呢 获取页面的url是不是与输入的一致 获
  • QT调用linux echo命令无效的解决方法

    问题 Qt中使用 QProcess execute echo 1 gt myFile 写文件 执行成功后 不生效 但是把打印出的命令放在终端里执行可以生效 原因 网上说 因为echo 是shell内建命令 必须使用如下形式 QProcess
  • 利用Excel数组公式统计各班优秀人数

    期末考试期间 教导处的阿明忙得不亦乐乎 不时地发出感叹 现在各班编在一起考试 统计优秀 及格 低分人数 真让人头疼 我知道他在操什么心 却心不在焉地说 countif函数你不是会用吗 会啊 但是 你看看 全年级各科成绩都在同一个工作表中 比
  • UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might b

    UserWarning This figure includes Axes that are not compatible with tight layout so results might be incorrect self figur
  • 虚拟机实现远程桌面连接

    目录 一 操作方法 二 连接成功 一 操作方法 首先点击控制面板 点击系统 点击改变设置 点击远程 选择允许连接 就可以 启用远程桌面 然后再命令提示符窗口输入 netstat a 查看启用远程桌面后打开的端口3389 表明其他计算机可以连
  • DetNet: A Backbone network for Object Detection 笔记

    Face 的lizeming大神注意到了现有Detection Network的两大通病 借用原本为了class而设计的network 牵强地附加上其他辅助结构来实现Detection 下采样能带来大感受野 从而提升class任务精度 但下
  • 华夏相机开发/臻识相机开发/车牌识别器开发对接使用总结

    最近做了款自助洗车小程序项目 需要用到车牌识别 华夏 臻识这两家相机均有使用 特此记录开发中的问题 1 初次使用 购买途径 当地购买的华夏相机T83 价格贵 且显示屏语音均无法使用 遂只对接了开闸 开发方式 因为自助洗车项目需要保持双端的及
  • PTA天梯赛的赛场安排

    天梯赛使用 OMS 监考系统 需要将参赛队员安排到系统中的虚拟赛场里 并为每个赛场分配一位监考老师 每位监考老师需要联系自己赛场内队员对应的教练们 以便发放比赛账号 为了尽可能减少教练和监考的沟通负担 我们要求赛场的安排满足以下条件 每位监
  • python爬虫需求分析-序:Python爬虫开发与数据分析简介

    爬虫是获取数据一种方式 能够按照一定规则自动抓取某个网站或者万维网信息的程序 现实环境中很大一部分网络访问都是由爬虫造成的 我们来看一个常见应用场景 当我们使用百度或者其他搜索引擎搜索某个关键字的时候 搜索结果中会包含对应的内容 比如 搜索
  • 游戏笔记本电脑推荐 多功能游戏本你见过吗?

    本来安排了一个国庆假期旅游计划 但是计划往往赶不上变化 被好朋友给 放鸽子 了 想着刚好我新买的游戏本到了 作为一个游戏宅 所以就打算呆在家玩玩游戏算了 结果不玩不知道 一玩上就爱不释手 现在甚至想将这款游戏笔记本电脑推荐给大家 它的名字叫
  • Windows主机信息搜集

    注意 一切内容仅用于信息技术分享 切勿用于其他用途 一切后果与作者无关 前言 通过命令执行使用cs拿到了内网的一台主机 接下来我们进行内网的信息搜集 1 内网环境分析 内网渗透 在拿到webshell的时候 想办法获取系统信息拿到系统权限
  • 四个/24地址块,试进行最大可能的聚合

    由于四个地址块前两个字节都相同 只需将每个地址块的第三个字节转换为二进制 212 56 132 0 24 212 56 10000100 0 212 56 133 0 24 212 56 10000101 0 212 56 134 0 24
  • C#控件命名规范

    类 型 前 缀 示 例 Adrotator adrt adrtTopAd BulletedList blst blstCity Button btn btnSubmit Calendar cal calMettingDates CheckB
  • nginx: [emerg] could not build the server_names_hash

    手头有块板子 上面起了nginx配置了多个域名 启动的时候发现报错 nginx emerg could not build the server names hash you should increase server names has
  • pandas中的时间序列

    一 夯实基础 datetime 模块中的数据类型 date 以公历形式存储日历日期 年月日 time 将时间存储为时分秒毫秒 datetime 存储日期和时间 timedelta 表示两个datetime值之间的差 日 秒 毫秒 1 获取当
  • 无效数据处理攻略: 如何从源头开始预防无效数据带来的风险

    数据处理在现代社会中变得越来越重要 而对于数据的可靠性和准确性 我们始终非常关注 然而 即使在对数据进行了精心管理的情况下 无效数据依然可能存在 并可能对数据分析和决策带来不良影响 因此 处理无效数据变得愈发重要 一 什么是无效数据 在处理
  • app数据分析体系 - 用户粘性 DAU,MAU 和 月人均活跃天数

    用户粘性指标 DAU MAU 月均活跃天数 DAU 和 MAU 日活跃用户占月活跃用户的比例越高 表明用户对App的使用粘性越高 DAU 即 Daily Active User 指日活跃用户数 MAU 即 Monthly Active Us
  • 后端进阶之路——深入理解Spring Security配置(二)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 后端进阶之路 文章
  • A/B测试是什么?面试官把我问懵了!

    什么是A B测试 A B测试是为 web 或 app 界面或流程制作两个 A B 或多个版本 在同一时间维度 分别让组成成分相同 相似 的访客群组 目标人群 随机的访问这些版本 收集各群组的用户体验数据和业务数据 最后分析 评估出最好版本