一个完整的A/B测试系统至少要有实验管理、分流模块、业务接入、数据采集和结果分析5个模块。
实验管理
试验管理是A/B实验配置后台,包括创建A/B测试实验、配置实验参数配置、增加新的A/B测试分组、调整A/B测试方案各个组的比例
分流模块
一个好的分流分流模块可以让流量分配的更均匀随机,同时需要具备根据用户、地域、时间、版本、系统、渠道、事件等各维度来对请求进行分组的能力,并且保证分组的均匀性和一致性。
目前在A/B测试中应用比较多的是通过Murmur算法将用户的唯一标识以及试验层layerid作为参数进行分组,这样既保证了用户分组的随机性,同时也保证了多个层之间的正交关系。
为了验证系统的随机算法,系统设计完成后,需要进行多次A/B测试。原则上通过分桶的随机算法,每一个桶中用户与全体用户的用户特征属性等保持一致,即统计中的样本与总体保持一致。
业务接入
一般通过提供一个A/B测试SDK或者Restful接口的形式供业务方使用。可以通过可视化试验在生成基础页面后,通过可视化页面编辑修改变量并保存后就可以生成不同试验版本,试验的参数通过URL参数带入。
数据采集
埋点采集数据
结果分析
将采集的数据通过报表或可视化的形式展示出来,包括进展情况、试验的基础信息、多少用户参与试验、各组占比、运行天数、开始时间、各组的指标、以及结论,结论中要给出效力、置信度区间等指标。
要让A/B测试得出可信服的结论,A/B测试需要经历一个足够长的时间段,让结果稳定下来。具体选用多长的时间需要根据行业及经验来定,并且在计算核心指标时,可以剔除掉初期的数据,避免初期的新鲜感影响最终评估结果。
最后,需要采用统计学方差分析或T检验等手段,对试验数据进行评估。这能够有效规避大部分由时间和分组随机性带来的数据波动,得到最准确的评估结果。