Skip to content

A/B Testing: "Decide bằng data"

Core

Verify thay đổi product khoa học thế nào? Tình huống quen: team làm feature mới 1 tháng, launch, data tăng vọt! Team vui, 3 tuần sau data lại rớt về cũ. Do feature mới thực sự tốt, hay đúng holiday traffic? A/B testing loại noise, để data nói sự thật.


0. Toàn cảnh: vũ khí khoa học chống "đoán mò"

Bạn cân nhắc 2 màu button: blue ổn định vs red nổi bật. Decision-maker thường dựa kinh nghiệm, trực giác, hoặc HiPPO (Highest Paid Person's Opinion).

Nhưng user feedback thật vượt tưởng tượng. Có thể red quá chói gây giảm conversion, hoặc blue không đủ nổi... Sao chắc chắn 1 change tốt hơn?

Đáp án: Controlled experiment — như y học verify thuốc mới.

Bản chất A/B

A/B = compare + observe Như "double-blind test" y học:

  • Control (A): uống placebo giống thuốc (xem version cũ)
  • Treatment (B): uống thuốc mới (xem version mới) Chỉ khi Treatment conversion rate ổn định + rõ ràng > Control, mới claim thuốc mới (change) hiệu quả.

1. Traffic split: cắt "parallel universe"

Rule sắt: đồng thời, random, isolate.

Không được: "Nửa tháng đầu mọi user xem blue, nửa tháng sau red". Time span = vô số biến số — không biết tăng conversion do red hay do đến 12.12 sale.

Phải tạo "parallel universe" cùng thời điểm. Mỗi user vào, system flip coin → vào universe A hoặc B.

A/B 测试演示

流量分配可视化

观察用户如何被随机分配到对照组(A组)和实验组(B组)

A组 (对照组)
50%
B组 (实验组)
50%
总用户数1000
A组用户500
B组用户500
50/50分配能最快检测出差异,确保两组样本量足够大以获得统计显著性

1.1 Sao random quan trọng?

Chỉ random 100% mới abolish mọi feature khác. Sample đủ lớn + random hoàn hảo → tỷ lệ user trẻ, thu nhập, vùng địa lý ở A và B sẽ giống nhau.

Lúc đó nếu data khác, chỉ có thể do bạn đổi button đỏ.


2. Sample + test: math logic thắng ảo tưởng

OK chia nhóm rồi, lấy 10 user xem được không? Đụng rule lạnh lùng nhất A/B: Law of Large Numbers + Sample Size.

Flip coin 10 lần, 7 head 3 tail — coin gian lận? Không, base quá nhỏ, 7:3 là noise. Nếu flip 100k lần thấy 70k head, mới claim coin gian lận.

Tương tự, 100 user test, 1 user click nhiều thêm = 1% spike. Cần công thức tính sample size trước experiment.

A/B 测试演示

样本量计算器

计算达到统计显著性所需的最小样本量

%
当前版本的转化率
%
希望检测到的最小相对提升(相对值)
犯第一类错误的概率
检测到真实效应的概率
提升目标越小,所需样本量越大。5%的提升比20%的提升需要更多样本

2.1 2 thần hộ mệnh statistics

  • Statistical Power (thường yêu cầu 80%): nếu change thực sự effective, bạn có bao nhiêu % chắc chắn detect được. (Chống false negative)
  • Significance level (P-value) (thường <0.05): "P<0.05" — diff giữa 2 nhóm có thể do luck là <5%. Lucky <5% → admit statistically significant. (Chống false positive)

3. Result showdown

Sau collect đủ data, professional funnel model:

A/B 测试演示

A/B组结果对比

比较两组的转化率和统计显著性

%
%
A组(对照组)
转化率5%
转化数500
样本量10000
VS
B组(实验组)
转化率6%
转化数600
样本量10000
相对提升+20.00%
Z值3.102
P值0.00192
统计显著性显著
95%置信区间
0.37%← 真实差异 →1.63%
我们有95%的信心认为,真实差异在这个区间内
P值 < 0.05 表示结果统计显著,说明差异不太可能是随机产生的

Thấy "Significant " → tự hào claim với cả công ty: bỏ tranh luận chủ quan, full launch B! Có math principle backed.


4. Pit tối: misanalysis

A/B testing tự thân rational + scientific, nhưng người làm bị weakness của con người. Hay chỉ thấy kết quả mong → test distort:

A/B 测试演示

A/B测试常见误区

过早停止实验
看到结果"显著"就立即停止实验,实际上只是随机波动
示例:运行2天后发现B组领先,立即宣布胜利。但继续运行一周后,差异消失。
解决方案:预先计算所需样本量,运行完整周期(至少2周)后再做决策
频繁窥探结果
每天查看数据,一旦"显著"就停止,这会大幅增加假阳性率
示例:每天检查p值,看到<0.05就停止。这种做法会让假阳性率从5%飙升到30%+。
解决方案:使用序贯检验方法,或预先设定唯一的检查点
辛普森悖论
分组看B组更差,但合并后B组反而更好(或相反)
示例:移动端转化率B>A,桌面端也是B>A,但合并后却A>B。原因:流量分配不均。
解决方案:按流量来源、设备、用户群体等维度分别分析,验证随机化是否正确
P值操纵(P-hacking)
通过尝试不同指标、不同子群体,直到找到"显著"结果
示例:主指标不显著,就按年龄、地区、设备细分,发现某个子群显著就宣称成功。
解决方案:预先注册假设和指标,只分析预先设定的指标
新奇效应
用户因好奇点击新功能,导致短期数据虚高
示例:新按钮上线首周点击率提升30%,但三周后回落到原水平甚至更低。
解决方案:运行足够长的时间(至少2-4周),让新奇效应消退
样本量不足
样本量太小,即使有真实差异也检测不出来
示例:预期提升5%,但只运行了1000样本,结果"不显著"就放弃,实际上需要30000样本。
解决方案:实验前计算所需样本量,确保统计功效≥80%

4.1 "Novelty effect"

Thứ mới ra, user click vì curiosity → conversion rate vọt 3 ngày đầu.

Nhiều PM stop experiment ngày thứ 3 với "data hoàn hảo" + báo cáo. Nhưng đợi 2 tuần → user hết mới mẻ, data rớt dưới line cũ. Đó là sao experiment duration quan trọng — đừng bị short-term spike đánh lừa.


5. Tổng kết: dũng cảm phục data

Từ "đoán mò trực giác" → "A/B" = mental shift lớn:

  1. Đưa hypothesis thận trọng: observation kỹ user, hypothesis quantifiable
  2. Cắt parallel universe: random thuần, loại noise
  3. Chịu sample baptism: chờ LLN, đủ time + sample giảm volatility
  4. Math judgment: P-value declare good/bad, strict significance

Là software creator, trí tuệ lớn nhất = dũng cảm phục sự thật. Không cần cãi nhau giờ trong meeting room về blue vs red; chỉ cần đợi 2 tuần, click rate sẽ chứng minh user thích ai.

2026 cho VN dev

  • Tool:
    • Optimizely: enterprise, no-code A/B
    • GrowthBook (open-source): self-host, dev-friendly
    • Vercel Edge Config + Statsig: serverless A/B
    • PostHog: all-in-one (analytics + A/B + feature flag)
  • VN context: Shopee, Tiki, Grab dùng A/B extensively
  • AI scenario: A/B test prompt khác nhau, model khác nhau (GPT-4o vs Claude vs Gemini), embedding model
  • Caveat: sample size, novelty effect, holiday confounder, segment analysis quan trọng