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.
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.
" Quando um usuário tenta fazer login e insere as credenciais válidas em 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
Fluxo de trabalho para gerar código compatível com pepino a partir da sintaxe Gherkin
Etapa 1: prompt para ser projetado
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
Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "//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