A/B测试是什么?面试官把我问懵了
什么是A/B测试A/B测试是为 web 或 app 界面或流程制作两个A/B或多个版本在同一时间维度分别让组成成分相同相似的访客群组目标人群随机的访问这些版本收集各群组的用户体验数据和业务数据最后分析、评估出最好版本正式采用。A/B测试目的消除客户体验UX设计中不同意见的纷争根据实际效果确定最佳方案通过对比试验找到问题的真正原因提高产品设计和运营水平建立数据驱动、持续不断优化的闭环过程通过A/B测试降低新产品或新特性的发布风险为产品创新提供保障。01 A/B测试基本步骤分析现状并建立假设分析业务数据确定当前最关键的改进点并作出优化的假设。提出优化的建议设定目标制定方案设置主要目标用来衡量各优化版本的优劣设置辅助目标用来评估优化版本对其他方面的影响设计与开发制作2个或多个优化版本的设计原型并完成技术实现分配流量确定每个线上测试版本的分流比例初始阶段优化方案的流量设置可以较小根据情况逐渐增加流量采集并分析数据收集实验数据进行有效性和效果判断统计显著性达到95%或以上并且维持一段时间实验可以结束如果在95%以下则可能需要延长测试时间如果很长时间统计显著性不能达到95%甚至90%则需要决定是否中止试验。做出决策根据试验结果确定发布新版本、调整分流比例继续测试或者在试验效果未达成的情况下继续优化迭代方案重新开发上线试验。北极星指标North Star Metric也叫作第一关键指标One Metric That Matters是指在产品的当前阶段与业务/战略相关的绝对核心指标一旦确立就像北极星一样闪耀在空中指引团队向同一个方向迈进。02 A/B测试原理和关键点原理——假设检验因为AB测试是检验来自两个组样本平均数的差异性从而判断它们各自代表的总体的差异是否显著因此使用的是两个总体均值之差的检验。即使用统计量Z。具体见假设检验假设检验。关键点目标KPIA/B测试中我们需要制定目标KPI指评判AB测试效果优劣的最终指标。例如提升多少点击率或者提升多少转化率。策略为了达到我们制定的目标KPI我们需要采取一定的策略AB组分别采取的策略的差异点。例如改变商品展示图片改变文案等等一般有多少个差异点就需要多少次测试A/B测试的作用目标KPI的最大化找到对KPI最优的策略保证目标KPI最大化后续分析沉淀诀窍由于人群中有差异通过研究不同子人群对于不同策略的响应程度可以获得每组人群在策略上的偏好帮助未来更好的个性化创新和设计。03 AB测试常见问题 应对方案01 如何分配流量零售行业的线下AB测试一般用于测试不同优惠券带来的业务指标的变化。基于优惠券的具体设置方式对流量分配有着不同的实施方法。多种优惠券设计相似流量均分4组策略每组20%对照组20%优惠券设计不确定性大最小化测试组10%测试90%对照优惠券效用过仅为追踪效果少量对照组10%对照90%测试常用的分流方法sql中的rand函数利用尾数的随机ID不管如何做分流用来做对照组和测试组的用户要做好标记方便之后进行分析和统计。02 如何确定测试的最小人数随机波动由于我们的测试样本不可能都一模一样所以我们设定的两个一模一样的对照组的结果也有可能出现不一样的结果这就是随机波动。随机波动会进一步影响测试的结果。最小样本量为了使测试结果显著有效的同时保证最小的成本我们首先要确保测试组里人数最少的一组达到验证效果有效性的最小样本数量。现在我们有很多网站可以帮我们计算最小样本量网站如下A/B测试样本量计算网站比例类目标KPI这里的α弃真错误也叫第一类 错误β取假错误也叫第二类错误。均值类目标KPI如果测试过程中比例和均值两个指标都要对比则选择数值大的那个。03 如何避免辛普森悖论辛普森悖论在某个条件下的两组数据分别讨论时都会满足某种性质可是一旦合并考虑却可能导致相反的结论。导致辛普森悖论的原因流量分割不均匀导致的实验组与对照组的用户特征不一致。如何避免辛普森悖论合理的进行正确的流量分割保证试验组和对照组里的用户特征是一致的并且都具有代表性可以代表总体用户特征。试验设计两个变量对试验结果都有影响就应该把这两个变量放在同一层进行互斥试验不要让一个变量的试验动态影响另一个变量的检验。例如我们觉得一个试验可能会对新老客户产生完全不同的影响那么就应该对新客户和老客户分别展开定向试验观察结论。试验实施要积极的进行多维度的细分分析除了总体对比也看一看对细分受众群体的试验结果不要以偏盖全也不要以全盖偏。例如一个试验版本提升了总体活跃度但是可能降低了年轻用户的活跃度那么这个试验版本是不是更好呢一个试验版本提升总营收0.1%似乎不起眼但是可能上海地区的年轻女性 iPhone 用户的购买率提升了20%这个试验经验就很有价值了。04 A/B测试案例项目背景公司给网站投放广告的时候一开始给用户看到的落地页是访问课程资料,现在公司又推出了开始免费试学这个落地页。目前的转化率全年平均在13%左右目标转化率达到15%。a) 提出假设原假设旧版的落地页好新版的不好用备择假设新的落地页好b) 制定方案选择变量对照组看到旧的页面实验组看到新的页面虽然我们已经知道了旧的设计的转化率(13%左右), 但是我们依然要需要设计两组, 原因是为了避免其他因素带来的误差, 比如季节因素, 促销因素。这两组人在其它条件都相同的只是页面设计不同的情况下进行实验 这样能保证两组间的差异是由于设计导致的。确定目标KPI转化率由13%提高到15%为此我们记录用户是否转化的标识。确定试验人数虽然人数越多结果越准确我们需要用到最小的成本来完成A/B测试并保证结果的有效性所以进行试验人数计算。可以通过上面的网站计算人数为4523人次。通过python计算人次4720。我们这里取4523。c) 分配流量通过对userid进行hash将用户分成两组old_page和new_paged) 采集数据准备和收集数据需要跟工程师团队配合这里我们根据已有的数据每组采集出4523条数据。删除重复用户。我们能够发现测试组合对照组的网页对应是一样的。采集试验组和对照组的数据查看数据情况e) 分析数据计算两组的转化率和标准差从上表可以看出两组的转化率很接近如下图所示我们的试验组比测试组的数据要好一些但是否能够说明我们的试验组达到了我们的目标呢这就需要我们用到假设检验。假设检验由于两种落地页的用户数据都大于30所以选择z统计量使用statsmodels.stats.weightstats完成z检验结论p-value 0.90505820549341480.05所以不能拒绝原假设即旧落地页更好则我们的新落地页并不能带来更好的转化。置信区间可以看到我们的对照组转化率在正常水平内而试验组转化率不在正常水平内。这意味着我们对照组和试验组的转化率很接近我们的新落地页并没有改进作用准备好开始真正的自动化测试项目实战了吗最后下方这份完整的软件测试 视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。