有一些注意事项:
1. 用户所见的一致性: 张三始终看到的是A版本,李四始终看到的是B版本,否则用户会很疑惑,甚至感到被玩弄感情。关于一致性还要考虑一些边界情况:
a. 一个匿名用户在同一台机器上操作多次,应该看到同一个版本
b. 一个匿名用户看到A版本以后,再注册,仍然应该看到A版本
2. 系统应该有一个后门,随心所欲地在A/B间互切,以方便在测试阶段进行测试。
3. 使用框架,尽量减少对业务代码的侵入性,要终止A/B测试时,可以轻松搞定。框架应该重点解决一个问题:封装一个接口,返回当前请求应该对应的版本号,业务执行代码自己不应该做这个判断; 这个接口的实现可以是框架内置的通用逻辑,也可以由使用者根据特定业务实现。
4. 一次分桶测试结束后,应该清理这次测试在业务代码中的残留点,否则随着测试越来越多,这些残留点会使代码的可读性越来越多。
部分参考了:
http://www.slideshare.net/patio11/ab-testing-framework-design-3296257