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

什么是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"];
}
复制代码

交流讨论

欢迎你关注我的,一起讨论:算法、前端、iOS、Android、用户体验、架构、程序员发展等内容。

转载于:https://juejin.im/post/5cd368f4518825356e261eef

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用python实现:根据星座测试性格特点。创建两个字典,一个保存姓名和星座(自定义),另一个保存星座和性格特点,根据输入的姓名,输出其性格特点。 白羊座:有一种让人看见就觉得开心的感觉,阳光、乐观、坚强,性格直来直去,就是有点小脾气。 金牛座:很保守,喜欢稳定,一旦有什么变动就会觉得心里不踏实,性格比较慢热,是个理财高手。 双子座:喜欢追求新鲜感,有点小聪明,耐心不够,因你的可爱性格会让很多人喜欢和你做朋友。 巨蟹座:情绪容易敏感,缺乏安全感,做事情有坚持到底的毅力,为人重情重义,对朋友和家人特别忠实。 狮子座:有着远大的理想,总想靠自己的努力成为人上人,总是期待被仰慕被崇拜的感觉。 处女座:坚持追求自己的完美主义者。 天秤座:追求平等、和谐,交际能力强,因此朋友较多。最大的缺点就是面对选择总是犹豫不决。 天蝎座:精力旺盛,占有欲强,对于生活很有目标,不达目的誓不罢休,复仇心重。 射手座:崇尚自由,勇敢、果断、独立,身上有一股勇往直前的劲儿,只要想做,就能做。 摩羯座:是最有耐心的,做事最小心。做事脚踏实地,比较固执,不达目的不罢休,而且非常勤奋。 水瓶座:人很聪明,最大的特点是创新,追求独一无二的生活,个人主义色彩很浓重的星座。 双鱼座:集所有星座的优缺点于一身。最大的优点是有一颗善良的心,愿意帮助别人。
04-19

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值