Saltar 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 pedaço de código e de dados mais pequeno, completo e executável que reproduz o problema sobre o qual está a perguntar. Mínimo significa que retirou tudo o que não é relevante; reproduzível significa que qualquer pessoa que o execute vê o mesmo erro. É a forma mais rápida de obter 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 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

  1. Comece do zero. Copie o seu código que falha para um ficheiro novo e vazio.
  2. Apague tudo o que não é relevante até que remover mais uma linha faça o erro desaparecer.
  3. Coloque os dados diretamente no código. Substitua ficheiros, bases de dados e segredos por algumas linhas fixas no próprio código.
  4. Execute-o você mesmo num ambiente limpo para confirmar que continua a falhar da mesma forma.
  5. 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.

Enviar Feedback