Um exemplo mínimo reproduzível é o equivalente, em código, a mostrar ao mecânico a única peça que faz barulho em vez de entregar o carro inteiro. Você remove tudo o que não é necessário para disparar o problema e, em seguida, confirma que o que sobrou ainda falha quando outra pessoa executa. Acerte essas duas coisas – mínimo e reproduzível – e a maioria das perguntas se responde sozinha.
A mesma ideia, quatro nomes
Você verá o conceito sob diferentes siglas dependendo da comunidade. Todas significam a mesma coisa:
- reprex – comum no mundo do R e do tidyverse (vem do pacote
reprex). - MCVE – Minimal, Complete, and Verifiable Example (exemplo mínimo, completo e verificável), o termo que o Stack Overflow popularizou.
- MWE – Minimal Working Example (exemplo mínimo funcional), muito usado nos círculos de LaTeX e TeX.
- SSCCE – Short, Self-Contained, Correct (Compilable) Example (exemplo curto, autocontido e correto/compilável), de longa tradição na comunidade Java.
Se alguém pedir qualquer uma dessas, quer a mesma coisa: o menor trecho executável que mostra o bug.
Antes
Meu pipeline de dados não para de quebrar. Aqui estão todas as 600 linhas do meu script. Funcionava ontem. O que está errado?
Ninguém consegue executar 600 linhas atreladas a dados e credenciais que não tem. Não há como ver a falha, então não há como ajudar.
Depois
Este script de 12 linhas reproduz a falha no Python 3.12. Ele cria um DataFrame de 3 linhas inline (sem arquivo externo) e lança
KeyError: 'price'na última linha. Eu esperava que imprimisse o total. O que estou deixando passar?import pandas as pd df = pd.DataFrame({"item": ["a", "b", "c"], "cost": [1, 2, 3]}) print(df["price"].sum()) # KeyError here
Agora qualquer pessoa pode colar, executar e ver o erro exato em segundos. A correção (a coluna é cost, não price) fica óbvia no instante em que o exemplo se torna executável.
Como criar um
- Comece do zero. Copie o código que está falhando para um arquivo novo e vazio.
- Apague tudo o que não tem relação até que remover mais uma linha faria o erro desaparecer.
- Coloque os dados inline. Substitua arquivos, bancos de dados e segredos por algumas linhas fixas no código.
- Execute você mesmo em um ambiente limpo para confirmar que ainda falha da mesma forma.
- Declare o comportamento esperado vs. o real e as suas versões.
Quando você está relatando um bug em vez de fazer uma pergunta do tipo “como eu faço”, coloque o seu MRE direto no template de relatório de bug – os campos “Passos para reproduzir” e “Ambiente” foram feitos exatamente para isso.
Para o passo a passo completo sobre perguntas técnicas, veja nosso guia sobre como fazer boas perguntas no Stack Overflow.