Pular para o conteúdo

Geração, revisão, documentação, depuração e testes com IA

Prioridade Média 15 min de leitura Status: Não visto Lido Praticado Dominado

Do zero

Pense na IA como um colega muito rápido, que escreve rascunhos em segundos, mas que às vezes erra com toda a segurança. Ele ajuda em cinco trabalhos do dia a dia:

  • Gerar código: escrever a função a partir do pedido.
  • Revisar código: ler uma mudança e apontar erros, riscos e trechos confusos.
  • Documentar: escrever comentários, explicações de funções e o README.
  • Depurar: ler a mensagem de erro, levantar hipóteses e achar a causa.
  • Gerar testes: propor os casos que provam que o código funciona, inclusive os de canto.

A regra de ouro vale para os cinco: a IA faz o rascunho, a pessoa é a editora responsável. Rascunho bom economiza tempo; rascunho aceito sem leitura vira defeito em produção.

Frase para guardar: IA gera, revisa, documenta, depura e testa; a pessoa confere, decide e responde pelo resultado.

Em 1 minuto

  • Geração: pedidos pequenos, com critério de pronto; ler o diff inteiro; desconfiar de bibliotecas e funções que você não conhece (podem não existir); conferir segurança (validação de entrada, consultas parametrizadas, segredos fora do código).
  • Revisão assistida: a IA faz uma primeira passada no pull request (defeitos, riscos, legibilidade), com o requisito e o padrão do projeto no contexto. Ela erra para os dois lados (aponta falsos problemas e deixa passar reais); a aprovação é humana.
  • Documentação: comentários que explicam o porquê (o como está no código), docstrings, README e registros de decisão de arquitetura (ADR). A documentação gerada precisa ser conferida contra o código: o modelo pode descrever o que parece plausível, e não o que o código faz.
  • Depuração: dar a mensagem de erro completa, a pilha de chamadas (stack trace), os passos para reproduzir e o que já se tentou; pedir hipóteses e um teste que reproduza o erro antes da correção; corrigir a causa, não o sintoma.
  • Testes: casos normais, valores-limite e erros; testes escritos a partir do requisito, não do código que se quer testar; testes de caracterização antes de refatorar código legado; teste de mutação para medir se os testes pegam defeitos. Cobertura alta não garante testes bons.

Exemplo concreto: a depuração do relatório de diárias

O sistema falha em produção:

Traceback (most recent call last):
  File "src/relatorios/diarias.py", line 42, in total_por_servidor
    total += diaria.valor
TypeError: unsupported operand type(s) for +=: 'float' and 'decimal.Decimal'

O pedido à IA, com tudo o que ela precisa: a mensagem completa acima, a função total_por_servidor, e a instrução “explique a causa provável, escreva um teste que reproduza o erro e só então proponha a correção”.

A resposta, conferida pela pessoa:

  1. Causa: a função começa com total = 0.0 (um float), e os valores das diárias são Decimal. Python não soma os dois tipos diretamente.
  2. Teste que reproduz: calcular o total de duas diárias de Decimal("800.00") e esperar Decimal("1600.00"). O teste falha com o mesmo erro: a causa está confirmada.
  3. Correção: total = Decimal("0"). O teste passa, e os outros continuam passando.

Repare que a correção “fácil” seria converter tudo para float. Isso faria o erro sumir (o sintoma), mas traria imprecisão de centavos, e o projeto exige Decimal para dinheiro. Por isso a pessoa revisa a proposta à luz das regras do projeto.

E os testes gerados, são bons? Na função de multa por atraso (0,33% ao dia, teto de 20%), a IA gerou testes para 0 e 10 dias de atraso, com cobertura de 100% das linhas. A equipe roda um teste de mutação: a ferramenta troca o teto de 0,20 por 0,25 e roda os testes de novo. Todos passam, ou seja, o mutante sobreviveu, porque nenhum teste chega ao teto. Falta o caso de 61 dias. Cobertura de 100%, e ainda assim um buraco.

Comparação: os usos e os cuidados

Uso A IA ajuda a O cuidado humano
Gerar código Escrever rapidamente a primeira versão Ler o diff, conferir requisitos, segurança e dependências
Revisar código Fazer a primeira passada no pull request Decidir; a aprovação é de quem revisa
Documentar Rascunhar docstrings, README e ADRs Conferir se a documentação bate com o código
Depurar Ler o erro, levantar hipóteses Exigir o teste que reproduz e corrigir a causa
Gerar testes Propor casos normais, de limite e de erro Derivar do requisito e medir com teste de mutação
Tipo de teste Para quê
Unitário Uma função ou classe isolada
De caracterização Registrar o comportamento atual de código legado antes de mexer nele
De valor-limite Os pontos onde a regra muda (60 e 61 dias de atraso)
Baseado em propriedades Gerar muitas entradas e conferir uma regra geral (a multa nunca passa de 20%)
De mutação Alterar o código de propósito e ver se os testes percebem
Métrica O que diz O que não diz
Cobertura de linhas Que linhas foram executadas pelos testes Se os testes conferem o resultado certo
Escore de mutação Quantos defeitos artificiais os testes pegaram Se o requisito foi entendido corretamente

Como a FCC cobra

O papel da IA como apoio (e não substituto) na revisão de código, as boas práticas de depuração assistida (erro completo, reprodução, causa) e a qualidade dos testes gerados (requisito, valores-limite, cobertura × mutação).

  • Documentação gerada e a necessidade de conferi-la.
  • Testes de caracterização antes de refatorar código legado.
  • Teste de mutação e cobertura de código.
  • Responsabilidade de quem aprova o código.

Pegadinhas

  • “Se a IA revisou o pull request, a revisão humana é dispensável.” Falso: a IA faz a primeira passada; a aprovação e a responsabilidade são humanas.
  • “Cobertura de 100% garante que os testes pegam qualquer defeito.” Falso: cobertura mede linhas executadas, não se o resultado foi conferido; o teste de mutação mostra isso melhor.
  • “Na depuração, basta aplicar a primeira correção que faz o erro sumir.” Falso: pode tratar só o sintoma; reproduza o erro com um teste e corrija a causa.
  • “Testes gerados a partir do próprio código conferem se ele atende ao requisito.” Falso: tendem a confirmar o que o código faz, inclusive os erros; derive-os do requisito.
  • “Documentação gerada por IA não precisa de revisão, porque não altera o sistema.” Falso: documentação errada induz a erros quem a lê; confira-a contra o código.

Explique com suas palavras

Explique a um colega por que testes com cobertura de 100% ainda podem deixar passar um erro, usando a função de multa e o teste de mutação.

  1. Escreva sem olhar a lição, com frases curtas e um exemplo seu.
  2. Onde travar ou precisar de jargão, há uma lacuna: releia só essa parte.
  3. Compare com a explicação-modelo e reescreva o que faltou.

Fica salva neste navegador.

Comparar com uma explicação-modelo

Cobertura de 100% quer dizer que os testes passaram por todas as linhas do código, não que conferiram todas as regras. Na multa, os testes de 0 e 10 dias de atraso passam pela linha do teto de 20%, mas nenhum deles chega perto do teto. Se alguém trocasse 20% por 25%, nenhum teste reclamaria.

O teste de mutação faz exatamente essa troca de propósito: muda pequenos pedaços do código e roda os testes de novo. Se os testes continuam passando com o código estragado, eles não estão protegendo aquele ponto. Aí se acrescenta o caso que faltava, como 61 dias de atraso, que precisa dar exatamente 20%.

Teste-se

Eng. de Software com IA e agentes · Código e testes com IA · Inédita, estilo FCC

Questão 1 de 3

Sobre o uso de ferramentas de IA na revisão de código, é correto afirmar que elas

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · Código e testes com IA · Inédita, estilo FCC

Questão 2 de 3

Para depurar com o apoio de IA um erro que ocorre em produção, o procedimento mais adequado é

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · Código e testes com IA · Inédita, estilo FCC

Questão 3 de 3

Para avaliar se os testes gerados por IA realmente detectam defeitos, a equipe passou a introduzir automaticamente pequenas alterações no código, como trocar < por <=, e a verificar se os testes falhavam. Essa técnica é o

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Mais duas questões deste tópico estão em Questões.

Flashcards gerados

FrenteVerso
Cobertura de código garante testes bons? Não. A cobertura mostra as linhas executadas, não se os testes conferem o resultado certo.
ADR (registro de decisão de arquitetura) Documento curto que registra uma decisão técnica, o contexto, as alternativas e as consequências.
O que um bom comentário explica? O porquê de uma decisão ou de uma regra; o como já está no código.
Teste baseado em propriedades Gera muitas entradas automaticamente e confere uma regra geral que deve valer para todas. Exemplo: A multa por atraso nunca passa de 20% do valor.
Causa × sintoma na depuração Fazer o erro sumir não basta; é preciso entender e corrigir a causa, confirmada por um teste que reproduz o problema.

Ligação com o estudo de caso

Num caso sobre a adoção de IA pela equipe de desenvolvimento, defina um fluxo: a IA gera e faz a primeira revisão, mas todo pull request tem revisão humana; depuração com reprodução por teste antes da correção; testes derivados dos requisitos, com casos de limite, e acompanhamento por teste de mutação, não só por cobertura; documentação gerada revisada junto com o código. A lição de riscos e qualidade complementa com segurança e responsabilidade.

Fontes da lição

  • Edital nº 01/2026, Anexo II, Engenharia de Software Assistida por IA e Sistemas Agentivos (fontes/edital-01-2026.txt).
  • Michael Feathers, Working Effectively with Legacy Code (testes de caracterização).
  • Yue Jia e Mark Harman, “An Analysis and Survey of the Development of Mutation Testing” (2011).
  • Documentação do Python: módulo decimal.

Claude explica

Tire dúvidas sobre este tema no Claude: o site copia o pedido com a lição e abre uma conversa nova, na sua conta. Confira na fonte qualquer fato de lei ou de norma.

Pratique fora do site

Faça questões da FCC sobre este tópico no QConcursos ou no Gran e registre aqui quantas fez: elas contam na meta da semana e no status do tópico.

Registrar questões feitas lá
Errei uma questão lá: criar flashcard