Talking About TestingATT</>
Testes com Cypress na Era da IA

Acerte 100% do quiz para continuar

Aula
Prévia gratuita

Básico da engenharia de IA

Entenda LLMs, tools, prompts, skills, agentes, modos de agente, janelas de contexto, consumo de tokens e alucinações.

Antes de deixarmos a IA escrever uma única linha de código Cypress, precisamos entender os fundamentos de como essas ferramentas funcionam. Conhecer o básico da engenharia de IA é o que separa resultados frustrantes e imprevisíveis de resultados rápidos e de alta qualidade.

Esta aula é gratuita - ela é a base sobre a qual todo o resto do curso se apoia.

O que é um LLM?

Um LLM (Large Language Model, ou Grande Modelo de Linguagem) é um modelo de IA treinado em enormes quantidades de texto (e código) que prevê a continuação mais provável da entrada que recebe. Ferramentas como o Claude, usado pelo Claude Code, são movidas por LLMs.

👨‍🏫 Um LLM não "conhece" o seu projeto. Ele só conhece o que você coloca diante dele - o seu prompt, os seus arquivos e a conversa que você tem com ele.

Prompts

Um prompt é a instrução que você dá ao modelo. Quanto mais claro e específico for o seu prompt, melhor será o resultado.

Um bom prompt para testes normalmente inclui:

  • Contexto - qual aplicação, qual comportamento, qual arquivo.
  • Objetivo - o que você quer (por exemplo, "escreva um teste E2E para o fluxo de login").
  • Restrições - estratégia de seletores, estilo, versão do framework.
👨‍🏫 Compare "escreva um teste" com "escreva um teste E2E de Cypress que visita a aplicação de exemplo, preenche o formulário, o envia e faz asserção da mensagem de sucesso - use seletores data-testid." O segundo prompt produz resultados muito melhores do que o primeiro.

Ferramentas (tools)

Assistentes de IA modernos podem usar tools (ferramentas) - ações que o modelo pode executar além de gerar texto, como ler arquivos, executar comandos ou pesquisar na web. É isso que transforma um chatbot em um agente de código.

Agentes e modos de agente

Um agente é um assistente de IA capaz de planejar e executar múltiplos passos - lendo arquivos, editando código, rodando testes - para realizar uma tarefa de forma autônoma.

A maioria das ferramentas de código com IA expõe diferentes modos de agente que restringem como o assistente se comporta:

  • Ask - o assistente responde perguntas e explica, sem editar arquivos.
  • Plan - o assistente pesquisa e propõe um plano passo a passo para a sua aprovação antes de fazer mudanças.
  • Edit - o assistente faz mudanças no código diretamente (muitas vezes com a sua aprovação por mudança).
👨‍🏫 Use o modo plan para trabalhos não triviais, para que você possa revisar a abordagem antes de qualquer código ser escrito, e o modo ask quando você quiser apenas uma explicação. Reserve o modo edit para quando você estiver confiante sobre a mudança.

Skills

Uma skill é um conjunto reutilizável e empacotado de instruções e conhecimento que especializa o assistente para uma tarefa. As skills oficiais do Cypress (cypress-author, cypress-explain, cypress-docs) são exatamente isso - elas tornam o assistente muito melhor no trabalho com Cypress. Você vai instalá-las e usá-las nas próximas aulas.

👨‍🏫 Skills também são eficientes em tokens. O assistente carrega apenas um pequeno trecho de metadados (um nome e uma descrição) para cada skill instalada de antemão, e lê o arquivo completo da skill sob demanda - apenas quando a tarefa realmente exige. Dessa forma, muitas skills podem estar disponíveis sem lotar a janela de contexto.

Alucinações

LLMs podem gerar saídas que soam confiantes e plausíveis, mas que estão factualmente erradas. Isso é chamado de alucinação - o modelo inventa seletores que não existem, referencia métodos de API que não são reais ou descreve comportamentos que a aplicação não tem.

👨‍🏫 Isso não é um bug que você conserta reformulando o prompt. É uma propriedade fundamental de como os LLMs funcionam. A única salvaguarda confiável é sempre executar o código gerado e revisá-lo criticamente antes de fazer commit.

No contexto da automação de testes, um teste alucinado é aquele que passa pela razão errada ou falha porque mira em elementos que não existem. Skills como o cypress-author reduzem as alucinações ao embasar o assistente em conhecimento específico do Cypress, mas não as eliminam por completo - a sua revisão é sempre a última linha de defesa.

Alucinações também se tornam mais prováveis quando a janela de contexto (abordada logo abaixo) se enche. À medida que uma conversa fica longa e informações antigas são resumidas ou descartadas, o modelo perde o controle dos detalhes e começa a preencher as lacunas com invenções que soam plausíveis. Manter as conversas focadas e começar do zero para tarefas não relacionadas ajuda a reduzir esse risco.

Janela de contexto (context window)

A janela de contexto é a quantidade máxima de informação - medida em tokens - que o modelo consegue considerar de uma só vez. Ela inclui o seu prompt, os arquivos que você compartilha e o histórico da conversa.

👨‍🏫 Quando a janela de contexto se enche, informações antigas podem ser resumidas ou descartadas. Mantenha as conversas focadas e comece do zero para tarefas não relacionadas.

Consumo de tokens

Tokens são os pedaços de texto que o modelo lê e gera (aproximadamente fragmentos de palavras). Tanto a sua entrada quanto a saída do modelo consomem tokens, o que determina o custo e conta contra a janela de contexto.

👨‍🏫 Compartilhar um repositório inteiro quando você só precisa de um arquivo desperdiça tokens e dilui o foco do modelo. Seja deliberado sobre o que você inclui.

É também por isso que as skills são projetadas para serem eficientes em tokens. Em vez de carregar as instruções completas de cada skill no contexto, o assistente mantém em contexto apenas um pequeno trecho de metadados - o nome e a descrição da skill - para cada skill instalada. Ele lê o arquivo completo da skill somente sob demanda, quando a tarefa em questão realmente exige. Isso mantém a janela de contexto livre para o trabalho que importa, mesmo quando muitas skills estão instaladas.

Conteúdo sugerido 📚 e links da documentação 🔗

Exercício 🎯

Escolha qualquer ferramenta de código com IA à qual você tenha acesso (Claude Code, Cursor ou GitHub Copilot) e pratique a diferença que um bom prompt faz.

  1. Peça a ela um prompt vago: "escreva um teste Cypress".
  2. Depois peça um específico: "escreva um teste E2E de Cypress que visita https://tat-csc.s3.sa-east-1.amazonaws.com/index.html e faz asserção de que a página carregou com sucesso - use seletores resilientes e o padrão AAA".
  3. Compare as duas saídas e observe a diferença.
👨‍🏫 Experimente também alternar entre os modos ask, plan e edit para a mesma solicitação e observe como o comportamento do assistente muda.

O prompt específico deve produzir um teste executável com uma estrutura describe/it clara e uma asserção significativa, enquanto o vago provavelmente vai chutar como a aplicação funciona.

Mostre ao mundo o que você aprendeu 🌎

Para mostrar à sua rede profissional o que você aprendeu nesta aula, publique o seguinte no LinkedIn.

Comecei o curso "Testes com Cypress na Era da IA" com @Walmyr Lima e Silva Filho na @Talking About Testing School, onde aprendi o básico da engenharia de IA para automação de testes - LLMs, prompts, tools, agentes, modos de agente, skills, janelas de contexto, consumo de tokens e alucinações. #TalkingAboutTesting #TATSchool #CypressTestingInTheAIEra #Cypress #AI

👨‍🏫 Lembre-se de me marcar na sua publicação. Aqui está o meu perfil no LinkedIn.

Quiz

Pergunta 1 de 6
Pontuação: 0

O que significa a sigla LLM?

Acerte 100% do quiz para continuar