Experimentos (teste A/B)
Um experimento no Kilden não é um segundo divisor de tráfego. É uma lente sobre uma feature flag multivariante que você já tem: a flag continua decidindo quem vê o quê, exatamente como antes, e o experimento lê as exposições que seu SDK já está enviando e diz se a diferença é real.
Isso tem duas consequências que vale saber de antemão. Iniciar um experimento não muda nada do que seus usuários veem. E qualquer flag com duas ou mais variantes já é mensurável: você não precisa instrumentar nada novo.
Antes de começar
Seção intitulada “Antes de começar”Um experimento precisa de:
- Uma flag multivariante com pelo menos duas variantes, uma marcada como controle.
- Que seu código realmente consulte a flag. As exposições vêm de
getFeatureFlag()/isFeatureEnabled(). Se o código ramifica sem chamar nenhuma das duas, o experimento não mede nada — e avisa. - Um evento objetivo: aquilo de que você quer mais. Conversão (esta pessoa fez pelo menos uma vez?) ou um valor por pessoa (uma soma, ou uma contagem).
// Esta chamada é o que coloca a pessoa no experimento.const variant = await kilden.getFeatureFlag('checkout_flow');
if (variant === 'one_step') { renderOneStepCheckout();} else { renderClassicCheckout();}O SDK envia uma exposição por flag por sessão; a análise fica com a primeira variante que cada pessoa viu.
Criando um
Seção intitulada “Criando um”Experimentos → Novo experimento, em três passos: a hipótese, a flag e seu controle, e o que conta como sucesso.
O último passo estima quanto tempo o teste precisa, usando o tráfego recente da própria flag. Se a resposta for “oito meses”, ele diz antes de você começar, e não depois: a forma mais comum de um teste A/B fracassar é não conseguir detectar o efeito que procurava.
Enquanto um experimento roda, a divisão da flag fica congelada. Mudar pesos no meio do caminho mistura duas configurações de atribuição diferentes sob um único resultado, que é a forma mais silenciosa de arruinar um teste. Pause o experimento se precisar editar a flag.
Lendo os resultados
Seção intitulada “Lendo os resultados”A página abre com um veredito em palavras, e tudo abaixo dele existe para que você possa auditá-lo.
Por que uma probabilidade e não um p-valor
Seção intitulada “Por que uma probabilidade e não um p-valor”O Kilden reporta “B supera o controle com 91% de probabilidade”. Essa é uma afirmação bayesiana sobre este experimento, e significa exatamente o que parece significar.
Um p-valor não. Ele responde a outra pergunta (“quão surpreendentes seriam estes dados se não houvesse diferença nenhuma?”), é rotineiramente lido como a probabilidade de estar certo, e pune justamente o comportamento que todo time real tem: olhar os resultados todos os dias. Sob observação contínua, uma regra de decisão baseada em p-valor infla os falsos positivos de forma severa. A leitura bayesiana se degrada muito melhor.
Ao lado dela você tem:
- O intervalo credível — a faixa em que o efeito real plausivelmente vive. O Kilden nunca mostra um uplift sem um.
- A perda esperada — quanto você abre mão em média se escolher essa variante e estiver errado. Este é o número que de fato responde “é seguro lançar?”.
O gráfico de efeito
Seção intitulada “O gráfico de efeito”Uma linha por variante, com o uplift contra o controle e seu intervalo credível de 95%. O zero está sempre no enquadramento, e um intervalo que cruza o zero é desenhado em cinza neutro — porque um efeito que pode ser positivo e pode ser negativo ainda não é um resultado.
Deliberadamente não é um gráfico de barras de taxas de conversão: barras convidam ao eixo truncado que transforma 2,1% contra 2,3% em uma montanha.
As curvas posteriores
Seção intitulada “As curvas posteriores”As distribuições do que pode ser a taxa real de cada variante. A sobreposição é a incerteza: duas curvas em cima uma da outra significam que você ainda não consegue distingui-las, diga o que disser o número que está na frente.
Evolução
Seção intitulada “Evolução”A probabilidade de superar o controle, dia a dia, calculada apenas com o que se sabia em cada dia. Ver essa linha cruzar os 95% cedo e voltar a cair é o argumento mais claro que existe contra parar assim que o resultado parece bom.
Os diagnósticos de validade
Seção intitulada “Os diagnósticos de validade”Todo experimento roda três verificações. Um resultado que as falha é pior que nenhum resultado, porque parece igualmente convincente — então o Kilden não reporta um vencedor quando elas falham, ele não ameniza a leitura.
Divisão (SRM)
Seção intitulada “Divisão (SRM)”Compara o tráfego que cada braço realmente recebeu com o que a flag estava configurada para mandar. Uma divergência significa que algo quebrou a atribuição: um filtro de bots assimétrico, uma mudança de pesos no meio do caminho, ou uma integração que consulta a flag só em um ramo. Qualquer conclusão em cima disso é ruído.
Contaminação
Seção intitulada “Contaminação”Pessoas que viram mais de uma variante. Costuma acontecer quando visitantes anônimos se identificam no meio do teste: o bucket depende do ID, então mudar o ID pode movê-las de braço.
O Kilden as exclui da análise e reporta a taxa em vez de corrigir em silêncio. Acima de 2%, o resultado é marcado como comprometido. A exclusão tem um viés próprio — deixa de fora quem fez login durante o teste — e esse é um problema menor e visível, contra um invisível.
Amostra
Seção intitulada “Amostra”Cada braço precisa de pelo menos 100 pessoas antes de qualquer inferência ser reportada, e o veredito acompanha o progresso contra a amostra que seu MDE implica.
É aqui que você vai encontrar a diferença entre liderando e decisivo. Um braço pode cruzar os 95% no terceiro dia com um quarto da amostra: efeitos reais e ruído puro fazem os dois isso. O Kilden chama de liderando, diz quanta amostra falta, e ainda assim deixa você concluir — a decisão é sua, a ferramenta só se recusa a fingir que o teste acabou.
Concluindo
Seção intitulada “Concluindo”Concluir congela os resultados exatamente como estão, como a evidência por trás da decisão, junto com o que você escrever sobre por que decidiu. Esse snapshot nunca é recalculado: os dados por baixo se movem — merges, retenção, backfills — e um número que muda depois da decisão não é evidência.
Concluir não muda sua flag. Colocar o vencedor em 100% é uma ação separada e explícita, com a auditoria da própria flag. O Kilden nunca muda o que seu produto faz por conta própria.
Limites na v1
Seção intitulada “Limites na v1”- Apenas tráfego de navegador. Os SDKs server-side ainda não emitem eventos de exposição, por design.
- Um evento objetivo como métrica primária; funis multi-etapa são aproximados com a última etapa.
- Métricas de receita são winsorizadas no percentil 99 antes da comparação, para que um pedido enorme não mova a média. A página diz quantos valores isso tocou.