产品设计方案犹豫不决?试一下A/B测试

发表于:2019-5-15 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:RiverLi    来源:掘金

分享:
  什么是A/B测试
  AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。[百度百科]
  举例例子来说:我们正在做一个活动,通过文案引导用户点击按钮跳转到活动页。这时产品和老板分别给出了一套文案A和B。他们两个各自有理,作为程序员的你当然不能站在那看"笑话",你要从技术的角度来平息这场争吵。那就可以引入A/B测试。
  A/B测试方案
  纯前端控制A/B桶内用户数,将结果汇总到统计服务器上。
  由后台控制A/B桶内用户数,结果汇总到后台。
  这两种方案都有各自的有缺点,我比较支持第二种做法,因为可以灵活的控制A/B桶内用户数。
  A/B测试库SkyLab
  SkyLab 是iOS端的一个A/B、多元测试框架。我们看一下使用方法:
  A/B测试
  - (void)viewDidLoad {
  [super viewDidLoad];
  [SkyLab abTestWithName:@"Title" A:^{
  self.tipLabel.text = @"我在使用方案A";
  } B:^{
  self.tipLabel.text = @"我在使用方案B";
  }];
  }
  - (IBAction)resetPlanButton:(id)sender {
  [SkyLab resetTestNamed:@"Title"];
  }
    多元测试 :可能命中一个或多个
   - (void)viewDidLoad {
  [super viewDidLoad];
  [SkyLab multivariateTestWithName:@"MTitle"
  variables:@{
  @"A" : @(0.5), //数字表示命中机率
  @"B" : @(0.5),
  @"C" : @(0.5)
  }
  block:^(NSSet *assignedVariables) {
  NSString *text = @"正在使用";
  if ([assignedVariables containsObject:@"A"]) {
  text = [text stringByAppendingString:@"A"];
  }
  if ([assignedVariables containsObject:@"B"]) {
  text = [text stringByAppendingString:@"B"];
  }
  if ([assignedVariables containsObject:@"C"]) {
  text = [text stringByAppendingString:@"C"];
  }
  self.tipLabel.text = text;
  }];
  }
  - (IBAction)resetPlanButton:(id)sender {
  [SkyLab resetTestNamed:@"MTitle"];
  }
  分割测试:只会命中一个
    - (void)viewDidLoad {
  [super viewDidLoad];
  [SkyLab splitTestWithName:@"STitle"
  conditions:@{
  @"A" : @(0.5), //数字表示命中机率
  @"B" : @(0.5),
  @"C" : @(0.5)
  }
  block:^(id condition) {
  NSString *text = @"正在使用";
  if ([condition isEqualToString:@"A"]) {
  text = [text stringByAppendingString:@"A"];
  } else if ([condition isEqualToString:@"B"]) {
  text = [text stringByAppendingString:@"B"];
  } else if ([condition isEqualToString:@"C"]) {
  text = [text stringByAppendingString:@"C"];
  }
  self.tipLabel.text = text;
  }];
  }
  - (IBAction)resetPlanButton:(id)sender {
  [SkyLab resetTestNamed:@"STitle"];
  }
  
     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号