Skip to content
Programing

Pest 5: A Nova Era do Teste em PHP com a Tia Engine e IA

Published: Duration: 7:05
0:00 0:00

Transcript

Apresentadora: Juliana Santos Convidado: Rafael Mendes (Arquiteto de Software e especialista em ecossistema Laravel/PHP) Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e hoje o clima aqui no estúdio está elétrico, viu? Se você desenvolve em PHP, com certeza já ouviu falar do Pest. Ele chegou mudando a forma como a gente escreve testes, trocando aquela verbosidade do PHPUnit por uma sintaxe muito mais... digamos, elegante e divertida. Mas o que aconteceu recentemente foi um salto de outro nível. O lançamento do Pest 5 não é só uma "atualizaçãozinha" de rotina, tá? A gente está falando de uma mudança de paradigma. Apresentadora: E para desbravar essas novidades comigo, eu trouxe um cara que respira código e é uma referência quando o assunto é qualidade de software aqui no Brasil. Ele é Arquiteto de Software, contribuidor da comunidade e um entusiasta de longa data do ecossistema Laravel. Rafael Mendes, seja muito bem-vindo ao Allur, Rafa! Prazer enorme ter você aqui. Convidado: Valeu, Juliana! O prazer é todo meu. Sou fã do Allur e falar de Pest é sempre um privilégio, ainda mais agora que o Nuno Maduro e a galera do core realmente "chutaram o balde" com essa versão 5. Tem muita coisa massa pra gente comentar. Apresentadora: Cara, eu vi o anúncio e confesso que fiquei impressionada. O Pest já era rápido, já era bonito... mas agora parece que ele ficou inteligente de verdade, né? Vamos começar pelo que todo mundo tá comentando: a Tia Engine. O nome é curioso, mas o que ela faz na prática? É só marketing ou o negócio é bruto mesmo? Convidado: (Risos) Olha, o nome vem de *Test Intelligence Age*, mas pode chamar de "Tia" carinhosamente mesmo. E não, não é só marketing. Sabe aquele cenário clássico onde você muda uma linha de código num Controller e o seu CI, ou até sua máquina local, roda 500 testes que não têm nada a ver com aquela alteração? Apresentadora: Sei bem! Dá tempo de tomar um café, dar uma volta no quarteirão... Convidado: Exatamente. A Tia Engine resolve isso de um jeito muito inteligente. Ela faz um mapeamento das dependências. Ela entende que o Teste A depende da Classe B. Se você mexeu na Classe B, ela roda o Teste A. Se você mexeu na Classe C e ninguém usa ela naqueles testes específicos, ela simplesmente ignora. O feedback que antes levava 2, 3 minutos, agora vem em tipo... 2 segundos. É uma execução seletiva baseada em impacto real. Apresentadora: Massa! Mas vem cá, Rafa... como ela sabe o que foi alterado? Ela fica vigiando o Git ou é algo mais profundo dentro do código? Convidado: Ela usa uma combinação, mas o segredo tá no mapeamento estático e no rastreamento de arquivos. Quando você roda o Pest com a Tia habilitada, ele cria um grafo de dependências. É tipo um mapa da mina. Isso economiza um tempo absurdo no dia a dia. Pra quem faz TDD (Test Driven Development), isso é o paraíso, porque o ciclo de "escreve, falha, conserta, passa" fica instantâneo. Apresentadora: Nossa, isso no pipeline de CI/CD deve economizar uma grana de servidor também, né? Menos tempo de máquina rodando teste inútil. Convidado: Com certeza! O custo de infra cai e a produtividade do time sobe, porque ninguém mais fica "travado" esperando o build terminar pra dar o merge. Apresentadora: Sensacional. Agora, mudando um pouco de tópico, mas ainda falando de inteligência... o Pest 5 abraçou a IA de vez. Eu vi que tem plugins oficiais agora para agentes de codificação. Como que isso funciona? O Pest agora escreve o teste por mim? Convidado: Olha, a gente tá chegando perto disso! (Risos). A ideia dos plugins é integrar o Pest com ferramentas como o GitHub Copilot ou o Cursor, por exemplo. Em vez de você ficar brigando com o prompt pra ele entender como o Pest funciona, esses plugins fornecem o contexto ideal. Eles ajudam a gerar testes de borda que a gente, como humano, às vezes esquece. Tipo: "e se o usuário mandar um emoji no campo de CPF?". A IA sugere o teste, o Pest valida, e o workflow fica muito fluido. É como ter um parceiro de Pair Programming que conhece todos os métodos do Pest de cor. Apresentadora: Que massa! E tem um termo que eu vi no post de lançamento que me deixou bem curiosa: Evals. Pelo que eu entendi, é pra testar a saída de LLMs (modelos de linguagem). Explica pra gente: como você testa algo que, por definição, é imprevisível como uma resposta de chat? Convidado: Cara, essa é a "cereja do bolo" do Pest 5 pra quem tá construindo apps com IA. Testar IA é um desafio gigante porque não dá pra fazer um `assertEquals` exato, né? A IA nunca responde a mesma coisa duas vezes. Apresentadora: Pois é, tipo assim, a resposta pode ser "O céu é azul" ou "A cor do firmamento é azulada". As duas estão certas, mas o código ia quebrar se buscasse uma string exata. Convidado: Exato! Os Evals do Pest 5 permitem que você crie testes qualitativos. Você pode usar o Pest pra perguntar pra outra IA (ou pro próprio modelo) se a resposta gerada está dentro dos parâmetros esperados. Você consegue dar uma "nota" ou validar se o tom da resposta é agressivo, se contém informações confidenciais, ou se seguiu o formato JSON que você pediu. É o Pest ajudando a domar a incerteza da IA generativa. Se você tem um bot de atendimento, por exemplo, você pode rodar uma suíte de Evals toda noite pra garantir que ele não começou a dar respostas malucas depois de algum ajuste no modelo. Apresentadora: Cara, isso é muito disruptivo. É o teste saindo do "zero ou um" e entrando no campo da probabilidade e da qualidade semântica. Eu achei isso genial. Convidado: É um salto enorme. O PHP, que muita gente insiste em dizer que tá morrendo, tá entregando uma ferramenta de teste de IA que muito framework moderno em outras linguagens ainda nem sonhou em ter de forma nativa. Apresentadora: Pois é! O ecossistema PHP e Laravel continua dando aula de experiência do desenvolvedor. Rafa, pra quem tá ouvindo a gente e ainda tá no PHPUnit purista, ou tá numa versão antiga do Pest, qual o seu conselho pra migrar pro Pest 5? É muito dolorido? Convidado: Que nada, Juliana! O Pest sempre foi muito gentil na migração. Eles têm ferramentas de refatoração automática, o famoso `pest-plugin-drift`, que ajuda a converter. Minha dica é: comece habilitando a Tia Engine em um projeto pequeno. Sinta a velocidade. Depois que você vê seus testes rodando em milissegundos, não tem como voltar atrás. É um caminho sem volta, no melhor sentido possível. Apresentadora: Com certeza! Bom, papo bom passa rápido, né? Infelizmente nosso tempo tá acabando, mas a conclusão é clara: o Pest 5 não é apenas sobre testar código, é sobre agilidade e sobre estar pronto para o futuro com IA. Rafa, queria te agradecer demais por esse papo. Foi muito esclarecedor, cara! Convidado: Eu que agradeço, Juliana! Valeu pelo convite e parabéns pelo Allur, o conteúdo de vocês é essencial pra nossa comunidade. Quem quiser me achar, tô lá no LinkedIn ou no GitHub como Rafael Mendes. Vamos codar! Apresentadora: Com certeza! E pra você que ouviu a gente até aqui, se quiser saber mais sobre o Pest 5, corre no site oficial deles, o pestphp.com, a documentação tá impecável. Não esquece de seguir o Allur nas redes sociais e assinar o nosso feed pra não perder as próximas novidades desse mundo tech que não para nunca. Valeu por sintonizar o Allur, um abraço e até a próxima!

Tags

llms software engineering php testing artificial intelligence pest tia engine