Nos últimos 2 anos, o avanço na IA, especialmente LLMs (Large Language Models), acabou por resolver problemas tradicionais de forma mais eficiente, e um desses impactos que os LLMs podem criar é através da assistência na automatização dos nossos testes de software. Para muitas equipes de software, a automação nunca foi um cidadão de primeira classe do ciclo SDLC e as equipes lutam para automatizar os casos de teste que criam a “ Dívida de Automação de Teste ”. Devido a essa lacuna na automação de testes, as equipes de qualidade gastam muito tempo verificando e escrevendo manualmente esses casos de teste, o que, como resultado, diminui a velocidade de envio da equipe de engenharia.
A única rota de fuga que existe para evitar tal trabalho é automatizar os casos de teste a uma velocidade superior, mas muitas vezes não conseguimos fazê-lo porque:
Embora todos os problemas mencionados acima precisem de um artigo separado sobre como as equipes de software devem enfrentá-los, nesta seção falaremos sobre como os engenheiros de controle de qualidade podem aproveitar o ChatGPT ou LLMs como co-piloto em BDD (testes orientados por comportamento).
O que é BDD?
O desenvolvimento orientado por comportamento (BDD) é uma metodologia ágil de desenvolvimento de software na qual um aplicativo é documentado e projetado em torno do comportamento que um usuário espera experimentar ao interagir com ele. Para o contexto desta discussão, vamos aplicar testes baseados em BDD em um site YC e considerar a página de login do YC hacker news como ponto de partida.
Para a página mencionada acima, o comportamento esperado é
" Quando um usuário tenta fazer login e insere as credenciais válidas em https://news.ycombinator.com/login?goto=news e pressiona login, ele deve redirecionar o usuário para o site de notícias de hackers ".
De acordo com as diretrizes do BDD, o comportamento acima pode ser escrito como sintaxe/etapas do Gherkin, que pode ser um possível caso de teste, e usando o pepino como estrutura, o mesmo Gherkin pode ser automatizado e esse comportamento não precisaria mais de intervenção humana . No entanto, devido ao problema que discutimos na seção acima, a equipe de controle de qualidade geralmente sofre ao automatizar o mesmo, mas podemos aproveitar o poder dos LLMs escrevendo alguns prompts e criando um fluxo de trabalho para nossas equipes de controle de qualidade para agitar as etapas do Gherkin e sua automação com velocidade mais rápida na estrutura do pepino.
Fluxo de trabalho para gerar sintaxe Gherkin
Na imagem abaixo, por exemplo, mostrei como você pode ajustar o modelo GPT usando o prompt para gerar a sintaxe gherkin para o comportamento apresentado em linguagem natural.
Fluxo de trabalho para gerar código compatível com pepino a partir da sintaxe Gherkin
Etapa 1: prompt para ser projetado
Abaixo está o prompt que você pode escrever no console ChatGPT para ajustá-lo e gerar a automação apropriada usando o código HTML e as etapas do Gherkin fornecidas. Como resultado final, pedimos para gerar o código na forma de definição de etapa conforme necessário pelo pepino, que pode ser copiado e colado como está pelos QAs.
Etapa 2: Injetar o HTML relevante que precisa ser usado como base para automação.
Conforme ilustrado abaixo, após o ajuste fino, o ChatGPT solicita as etapas relevantes de HTML e Gherkin que pode usar para gerar definições de etapas para o pepino.
Etapa 3: Gerando a definição da etapa
Como resultado disso, o GPT compreenderá a estrutura DOM do HTML fornecido e solicitará a sintaxe Gherkin relevante. Para o caso acima, já geramos o Gherkin que podemos passar como está:
Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website
Resultado final
Finalmente, de acordo com o fluxo de trabalho e o prompt mencionado, ele gera o arquivo de definição de etapa para as etapas e cenário do Gherkin acima mencionados, que podem ser copiados pelos QAs em sua estrutura de pepino após uma pequena verificação de qualidade para garantir a automação do comportamento que deveriam testar.
Com o advento da IA e o surgimento dos copilotos, os humanos verão um aumento na sua produtividade. Eles serão capazes de ampliar ainda mais os limites da inovação, transferindo as tarefas rudimentares e rotineiras para a IA. No entanto, ainda acho que deveríamos considerá-los apenas como assistentes de qualquer trabalho que fazemos e ainda assim a inteligência de usá-los residiria nos humanos, já que as equipes de tecnologia, marketing, vendas e sucesso do cliente estão tentando aproveitar o poder dos LLMs em seus fluxos de trabalho. o mesmo pode ser feito pelos engenheiros de controle de qualidade para que eles possam aumentar ainda mais sua produtividade e tornar emocionante seu trabalho de garantir a qualidade e estabilidade do software!