Executando verificação de segurança...
3

IA: Como cometer menos erros no desenvolvimento de software com IA ?

Olá desenvolvedores. Como vocês ensinam ou personalizam seus agentes de IA para que ele cometa menos erros ao gerar código ?

Carregando publicação patrocinada...
3

Testes. Testes. Testes!!!

A chave para um agente de IA mais eficaz não é tentar eliminar os erros (o que é impossível), mas sim personalizá-lo e supervisioná-lo para que os erros sejam identificados e corrigidos rapidamente.

A maneira mais eficaz de guiar a IA e garantir que o código gerado atenda às suas expectativas é através de testes baseados em requisitos.

  • Escrveva os requisitos: Comece fornecendo ao agente de IA uma descrição textual detalhada e precisa do comportamento que o código deve ter. É importante o desquisito não ter qualquer ambiguidade ou margem para intepretação. A forma mais simples é descrever a saida esperada em termos das condições de entrada.

  • Crie os casos de testes: antes de pedir para a IA escrever qualquer código-fonte, forneça a ela um conjunto de casos de testes contendo a entrada e a saida esperada, que cobrem todos os casos normais (o que esperamos que o código faça) e casos de robustez (o que não esperamos em situações extremas).

Se a sua IA está gerando mais código-fonte do que código de teste, você provavelmente está usando a ferramenta de forma incorreta.

Ao ter os testes automatizados como "contrato", você garante que qualquer código gerado, independentemente da fonte, seja validado imediatamente. Isso transforma o agente de IA de um gerador de código "caixa preta" para um assistente que trabalha sob uma validação clara e contínua, garantindo que os erros sejam detectados e corrigidos antes de se tornarem problemas.

1

Cara, achei excelente a sua resposta pra dúvida do autor. E até de uma profundidade que talvez eu ainda não consiga absorver kkkkk

Fazer isso eu já faço. Afinal, eu programo, então analiso tudo o que ela me fornece, assim como tento ser o mais preciso possível nos commandos e requisitos.

Mas eu faço isso muito de forma empírica. Sinto que talvez eu devesse ter uma forma mais estruturada de fazer isso (claro que não como uma receita de bolo (e é justamente por isso que faço de forma mais empírica)), mas confesso que não visualizo muito como.

Mas esse seu comentário sobre os testes me trouxe uma luz 🤔, embora eu não seja capaz, no momento, de assimilar essa informação como eu gostaria. Essa parte de QA eu não entendo nadinha.

Cê conseguiria me dar um norte sobre como modelar e aplicar esses testes automatizados (do ponto de vista de como cê já estrutura isso no seu processo de desenvolvimento com a IA)? Desde já, muito obrigado pelo seu comentário. Já foi agregador pra mim!

2
2

Não tem como, as técnicas são efeito placebo, o que realmente funciona é você saber exatamente o que está fazendo, ser detalhista e escrever em pseudocódigo o que você quer, mas isso não é técnica, hack ou afins, é fornecer informações relevantes

2

Voce pode tentar usar spec driven development. O github tem um kit disponível pra Linux e MacOs. Dá pra usar no wsl2 do Windows também. Escrevi um artigo aqui no tabnews sobre como usar com o gemini cli. Você pode ler o artigo clicando aqui