paint-brush
Aproveitando o ChatGPT para testes de softwarepor@ratikeshmisra
4,466 leituras
4,466 leituras

Aproveitando o ChatGPT para testes de software

por Ratikesh4m2023/09/16
Read on Terminal Reader

Muito longo; Para ler

Nos últimos 2 anos, o avanço em IA, especialmente LLMs (Large Language Models), acabou resolvendo problemas tradicionais de forma mais eficiente. Um desses impactos que os LLMs podem criar é através da assistência na automatização de 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.
featured image - Aproveitando o ChatGPT para testes de software
Ratikesh HackerNoon profile picture
0-item
1-item

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.


Variação de tempo para Testes Manuais com complexidade de código


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:


  • Falta de experiência em automação entre as equipes de controle de qualidade manual para escrever o código escalonável.
  • O custo de iniciar a automação ( em termos de largura de banda necessária para gerenciamento de engenharia e controle de qualidade ) é muito alto devido ao enorme acúmulo de casos de teste que precisam ser automatizados.
  • Má qualidade da documentação para casos de teste e nenhuma manutenção adequada do conjunto de regressão e sanidade.
  • Devido à maioria das empresas de produtos focadas no desenvolvimento de recursos e, portanto, a estabilidade e a qualidade são colocadas em segundo plano.
  • A avaliação humana de casos de teste é preferível à avaliação de máquina.


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).

Usando GPT3.5 para BDD e sua automação


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.


Página de login do YC Hacker News


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

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.


ChatGPT gera a sintaxe Gherkin relevante para um comportamento apresentado



Fluxo de trabalho para gerar código compatível com pepino a partir da sintaxe Gherkin

Gerando código compatível com Cucumber com etapas Gherkin usando GPT


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.



Solicitação para ajustar o GPT para gerar a automação baseada em pepino


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.


Feed HTML que precisa ser usado para automação


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.


A definição da etapa do pepino gerada

Era dos co-pilotos

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!