Um exemplo mínimo reproduzível é o equivalente, em código, a mostrar ao mecânico a peça que chocalha em vez de lhe entregar o carro inteiro. Remove tudo o que não é necessário para desencadear o problema e, em seguida, confirma que o que resta continua a falhar quando outra pessoa o executa. Acerte nestas duas coisas – mínimo e reproduzível – e a maioria das perguntas responde-se a si própria.
A mesma ideia, quatro nomes
Vai encontrar este conceito sob diferentes siglas, consoante a comunidade. Todas significam o mesmo:
- reprex – comum no mundo do R e do tidyverse (vem do pacote
reprex). - MCVE – Minimal, Complete, and Verifiable Example, o termo que o Stack Overflow popularizou.
- MWE – Minimal Working Example, muito usado nos círculos do LaTeX e do TeX.
- SSCCE – Short, Self-Contained, Correct (Compilable) Example, de longa data na comunidade Java.
Se alguém lhe pedir qualquer uma destas, quer a mesma coisa: o trecho executável mais curto que demonstra o erro.
Antes
O meu pipeline de dados não para de rebentar. Aqui estão as 600 linhas todas do meu script. Ontem funcionava. O que é que está mal?
Ninguém consegue executar 600 linhas ligadas a dados e a credenciais que não tem. Não há forma de ver a falha, logo não há forma de ajudar.
Depois
Este script de 12 linhas reproduz a falha em Python 3.12. Constrói um DataFrame de 3 linhas diretamente no código (sem ficheiro externo) e lança
KeyError: 'price'na última linha. Esperava que imprimisse o total. O que é que me está a escapar?import pandas as pd df = pd.DataFrame({"item": ["a", "b", "c"], "cost": [1, 2, 3]}) print(df["price"].sum()) # KeyError here
Agora qualquer pessoa o pode colar, executar e ver o erro exato em segundos. A correção (a coluna chama-se cost, não price) torna-se óbvia no momento em que o exemplo é executável.
Como construir um
- Comece do zero. Copie o seu código que falha para um ficheiro novo e vazio.
- Apague tudo o que não é relevante até que remover mais uma linha faça o erro desaparecer.
- Coloque os dados diretamente no código. Substitua ficheiros, bases de dados e segredos por algumas linhas fixas no próprio código.
- Execute-o você mesmo num ambiente limpo para confirmar que continua a falhar da mesma forma.
- Indique o comportamento esperado vs. o real e as suas versões.
Quando está a reportar um erro em vez de fazer uma pergunta do tipo “como faço”, coloque o seu MRE diretamente no modelo de relatório de erro – os campos “Passos para reproduzir” e “Ambiente” foram feitos exatamente para isto.
Para o passo a passo completo sobre perguntas técnicas, veja o nosso guia sobre como fazer boas perguntas no Stack Overflow.