Pular para o conteúdo principal

Exemplo Mínimo Reproduzível (MRE)

June 27, 2026 ·

glossary programming debugging

Em resumo

Um exemplo mínimo reproduzível (MRE) é o menor trecho de código e dados completo e executável que reproduz o problema sobre o qual você está perguntando. Mínimo significa que você removeu tudo o que não tem relação; reproduzível significa que qualquer pessoa que executar verá o mesmo erro. É a forma mais rápida de conseguir uma resposta útil.

Também conhecido como reprex MCVE MWE SSCCE

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

  1. Comece do zero. Copie o código que está falhando para um arquivo novo e vazio.
  2. Apague tudo o que não tem relação até que remover mais uma linha faria o erro desaparecer.
  3. Coloque os dados inline. Substitua arquivos, bancos de dados e segredos por algumas linhas fixas no código.
  4. Execute você mesmo em um ambiente limpo para confirmar que ainda falha da mesma forma.
  5. 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.

Enviar Feedback