AULA 33 / 61 · ACESSO GRATUITO

Revisão de código produzido por IA

Graciliano TolentinoEngenharia Caracol · Edição 2.0
Nesta aula
  1. Revisar é tentar contrariar a solução
  2. Uma revisão preenchida da correção de inativos
  3. Independência em três dimensões
  4. Procedimento de revisão
  5. Quando a revisão bloqueia
  6. Exercício com resolução
  7. Leitura técnica relacionada

Revisar é tentar contrariar a solução

A revisão começa com uma pergunta: que observação mostraria que esta mudança está errada? Se o revisor apenas lê a explicação da IA e procura palavras familiares, ele acompanha a narrativa da solução sem testar seus pressupostos. Uma alteração pode parecer elegante e ainda divulgar registros inativos, mudar uma resposta pública ou transformar uma falha em lista vazia. O objeto da revisão é o comportamento e o artefato alterado, confrontados com o contrato.

Comece pelo diff, mas leia o contexto necessário. Um import novo pode introduzir uma dependência não prevista; uma mudança pequena em uma função pode afetar várias rotas; a remoção de um teste pode reduzir a proteção que fazia a suíte passar antes. O tamanho do diff indica o volume de alteração, não a dimensão do risco. Na Oficina, dependências externas zero é uma preservação verificável: um novo pacote não se justifica apenas porque a ferramenta o escolheu.

Uma revisão preenchida da correção de inativos

PerguntaVerificação requerida
O teste captura o defeito?A implementação isolada anterior falha porque inclui rascunho-interno.
A correção fica no escopo?Seleção pública e teste correspondente; outras alterações têm decisão separada.
O formato foi preservado?Cada item público contém id, titulo e descricao; ativo não é enviado.
O erro virou vazio?Dado inválido continua sendo rejeitado, não convertido em [].
Há efeito não solicitado?Nenhum pacote, rota ou escrita de arquivo acrescentado.
O consumidor continua funcionando?Teste HTTP e roteiro da página conforme o contrato.

Um teste negativo fornece uma entrada que deve ser recusada ou uma condição que deve permanecer ausente. Para REQ-002, verificar que um identificador inativo não aparece na resposta é tão importante quanto verificar que o ativo aparece. Para o formato público, confira as chaves dos objetos, não apenas a quantidade de cartões. Um total correto pode esconder o registro errado.

Independência em três dimensões

Independência de critério significa escrever a expectativa sem copiar a decisão implementada. Independência de execução significa obter o resultado diretamente do ambiente, sem depender do relato de quem propôs o código. Independência de julgamento pode incluir outra pessoa, outra ferramenta ou uma inspeção separada por um procedimento definido. Essas dimensões ajudam a reduzir pontos cegos, mas não são equivalentes entre si.

Em uma atividade individual de baixo impacto, reexecutar o teste de regressão, conferir o diff e exercitar uma entrada adversa fornece uma verificação proporcional. Descreva-a como verificação técnica independente do relato da IA, e não como revisão humana independente. Em um contexto crítico, a autoridade do projeto pode exigir um revisor distinto com competência e responsabilidade definidas. Uma segunda resposta do mesmo modelo, alimentada pela mesma explicação, não demonstra por si só esse requisito.

Procedimento de revisão

  • Leia o requisito, o contrato e as preservações antes de ler a justificativa da alteração.
  • Compare arquivos alterados, imports e dependências com o escopo autorizado.
  • Inspecione a regra e os consumidores. Procure mudanças de formato, caminhos de erro, vazamento de campos e mutações de entrada.
  • Execute npm run exercicio:antes para observar a falha intencional isolada e npm run exercicio:depois para a versão corrigida. Não classifique a falha esperada como defeito da versão final.
  • Execute npm test e npm run validate dentro de pratica; inspecione falhas, testes omitidos e limites das verificações.
  • Repita o caminho crítico pelo servidor e registre pendências manuais ou necessidade de revisor distinto.

Quando a revisão bloqueia

Sinal encontradoAção antes da liberação
A IA diz que testou, mas não há execução verificávelExecutar diretamente e registrar o resultado, ou manter a evidência pendente.
O teste só verifica a presença do ativoAcrescentar expectativa de exclusão do inativo e do formato público.
Uma biblioteca foi adicionada para uma mudança de filtroRemover a dependência alheia ou justificar e autorizar uma unidade separada.
A revisão humana exigida ainda não ocorreuManter o gate correspondente bloqueado; testes automáticos não substituem a responsabilidade exigida.

A condição de avanço é uma decisão apoiada em resultados aceitáveis: requisito atendido, preservações confirmadas, provas aplicáveis aprovadas e riscos não impeditivos aceitos pela autoridade definida. O registro deve dizer qual independência foi obtida e qual permanece pendente. Uma checklist marcada sem referência ao artefato e ao resultado não basta.

Exercício com resolução

Dados fornecidos: a resposta contém um único caso ativo, porém inclui a propriedade ativo; todos os testes existentes verificam somente o número de itens. A IA afirma que a revisão passou. O contrato público permite apenas id, titulo e descricao. Escreva a decisão e a nova expectativa de teste.

Ver solução comentada

Resolução: bloquear essa versão por violar o contrato de projeção pública. O teste deve comparar o objeto completo esperado ou as chaves autorizadas e verificar a exclusão do inativo. Após a correção, reexecutar a suíte e o caminho HTTP. A rubrica exige perceber que quantidade não prova conteúdo, identificar a propriedade extra e manter a mesma exigência tanto para código humano quanto para código de IA. Não é necessário alegar que o campo ativo seja um segredo para reconhecer a quebra de contrato.

Leitura técnica relacionada

S07: Pro Git, seção 2.2 Recording Changes to the Repository, especialmente Viewing Your Staged and Unstaged Changes, para alterações e contexto. S19: Node.js test runner para execução e resultados. Os níveis proporcionais de revisão aqui descritos são decisões de processo, e não uma certificação concedida por essas fontes.

Fontes relacionadas

Consulte os limites e as seções de apoio de cada referência.

S07 S19
Conseguiu explicar o que aprendeu?

Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.

A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.