Pergunta de entrevista para Engenheiro de Software

Você herda um serviço sem testes e precisa mudar a lógica central dele. Como você aborda isso?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Fixe o comportamento atual antes de mudar. Escreva testes de caracterização numa fronteira estável, alimentando entradas reais e afirmando o que o código faz hoje, bugs incluídos, para você ter uma rede que detecta mudança. Depois refatore em passos pequenos com esses testes verdes, extraindo a lógica que você precisa tocar para algo testável. Só quando a costura existir é que você muda comportamento, e cada mudança ganha o próprio teste.

Por que os entrevistadores perguntam isso

A maior parte da engenharia acontece em código que você não escreveu, e isso revela se você entra atropelando ou constrói segurança primeiro. Os entrevistadores escutam por testes de caracterização, por testar numa fronteira estável em vez de testar unitariamente uma implementação que você vai deletar, e por separar refatoração de mudança de comportamento para que, quando algo quebrar, você saiba na hora qual das duas causou.

Como estruturar sua resposta

  • Recuse mudar lógica sem testes e sem uma rede.
  • Escreva testes de caracterização na fronteira da API primeiro.
  • Separe refatoração de mudança de comportamento.
  • Use dados reais de produção para validar.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Eu não mudo lógica que não consigo verificar, então o passo um é uma rede. Eu escrevo testes de caracterização na fronteira estável mais alta, geralmente o handler HTTP ou um ponto de entrada do serviço, e afirmo o que o código faz agora, incluindo coisas que eu suspeito serem bugs. O objetivo não é correção, é detectar mudança. Se eu tenho acesso a produção eu capturo algumas centenas de pares reais de request e resposta, porque entradas feitas à mão perdem as esquisitas e são justamente as esquisitas que quebram. Depois eu refatoro em passos pequenos com os testes verdes o caminho inteiro, puxando a lógica que eu de fato preciso tocar para uma função que eu consigo chamar direto. Só então eu mudo comportamento, e cada mudança vem com um teste de verdade mais uma decisão sobre se o comportamento antigo era intencional. Num serviço legado de precificação eu fiz exatamente isso e o tráfego capturado expôs dois caminhos de arredondamento que discordavam, o que ninguém sabia. É o tipo de coisa que você acha com uma rede e destrói sem uma.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você lida com um bug do qual os clientes agora dependem?
  • Você rodaria o caminho antigo e o novo em paralelo?
  • Como você impede a refatoração de inchar em escopo?

Mais perguntas para Engenheiro de Software

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot