Aprenda mais sobre GeneXus
Wina Arambule |
7 Min.

Como automatizar testes unitários, de interface web e de interface móvel?

Neste
post, Mariana Falabrino, Customer Success da Abstracta, explica os passos para automatizar testes unitários, de interface web e de interface móvel com GXtest, o produto desenvolvido em conjunto pela Abstracta e GeneXus para projetar, implementar e executar testes funcionais em aplicações web e móveis.

Para isso, foi utilizado como exemplo um sistema bancário multiplataforma que gerencia contas, usuários, cartões de crédito e transferências.

“Vamos executar o teste de unitário após a etapa de construção do aplicativo. Executaremos os testes de interface quando implantarmos nosso aplicativo, para obter um feedback antecipado sobre o estado do aplicativo, corrigir bugs antecipadamente e, assim, poder entregar valor rapidamente ao cliente. Em primeira instância, vamos executar esses testes no nível do IDE depois de construir nosso aplicativo, para isso temos a propriedade de configurar a execução automática dos testes após o Build all de nossa KB. É fundamental considerar que o valor dos testes cresce exponencialmente quando os executamos de forma autônoma em um pipeline, após build e deploy, obtendo um feedback quase que imediato sobre cada implementação da aplicação”, detalha Falabrino.

Para entender os detalhes em profundidade, não deixe de assistir a sua palestra Teste de Software com GeneXus, criada no marco do GeneXus Live 2021.

A seguir, compartilhamos os diferentes tipos de testes que podem ser automatizados em GeneXus.
Neste
exemplo, a funcionalidade de criar uma nova transferência será automatizada, verificando os saldos das contas de origem e destino nas diferentes plataformas. A missão? Garantir que ao fazer alterações essa funcionalidade não seja rompida.

Essa funcionalidade será verificada em diferentes camadas de testes:

1- Teste unitário

Em primeiro lugar, será criado um teste unitário que verificará o comportamento de um procedimento que aprova ou rejeita a transferência dependendo do saldo da conta de origem.

2 – Teste de interface web

Em seguida, será executado um teste de interface do cenário, criando uma nova transferência e validando o saldo da conta de origem antes e após a confirmação dessa transferência.

3 – Teste de interface móvel

Por fim, será executado um teste de interface no aplicativo móvel, que verifica o saldo da conta de destino da transferência que foi realizada anteriormente.

Vamos ver como criar cada tipo de teste:

1 – Testes unitários

O objetivo destes testes é verificar a lógica principal do negócio, para realizar esta validação é recomendado encapsular a lógica do negócio em objetos de procedimento.

Fazemos isso em duas etapas:

Passo 1: Gerar o teste unitário

“Para verificar o comportamento do procedimento CheckBalanceForTransfer, com diferentes dados de entrada, é necessário criar um teste unitário automatizado. Para isso, deve-se selecionar a opção Create Unit Test, inserir os dados do teste com os quais se espera que o procedimento seja executado e assim é criado o objeto Unit Test com um template pronto para ser executado. O que este modelo faz é percorrer os diferentes conjuntos de testes, exercitando o procedimento a ser testado e validando o resultado esperado com o obtido por cada um dos dados de teste”.

Passo 2: Carregar dados de teste

“O que resta é definir os valores esperados, executando o Unit Test selecionando Run Test(s). O objeto Unit Test tem o mesmo poder de um procedimento. Eles podem adicionar validações ao banco de dados, chamar funções, adicionar variáveis e chamar outros procedimentos. Aqui os detalhes da execução são exibidos no painel de resultados. Eles também podem executar os testes novamente e ver informações detalhadas sobre a cobertura do teste e cada uma das asserções executadas.”

2 – Testes de interface web

O objetivo do teste de interface web é verificar um cenário em um aplicativo implantado. Para implementá-lo, você deve registrar o fluxo que deseja automatizar e executá-lo em um navegador.

“O que o teste de interface faz é simular a interação entre o usuário e o aplicativo, realizando as validações que são adicionadas. Pode ser executado em diferentes navegadores. Essas informações (navegador, versão, data e execução de cada um dos comandos junto com as assertivas adicionadas no fluxo) podem ser visualizadas no painel de resultados. É importante que os testes de interface sejam implementados nos fluxos de maior risco do nosso negócio para detectar bugs precocemente e assim agilizar nosso ciclo de desenvolvimento”, detalha Falabrino.

Passo 1: Abrir o GXtest Recorder

“A opção de teste Record Web UI deve ser selecionada. Isso abrirá o GXtest Recorder, que é um gravador que captura as diferentes ações executadas na aplicação para depois retornar o script do código GeneXus.

Passo 2: Gravar o fluxo

“Quando o gravador está ativo, você deve inserir a URL do aplicativo e implementar as ações que deseja automatizar.
Neste
caso (ver vídeo), crie uma nova transferência, adicione a validação do saldo da conta de origem antes de confirmar a transferência, confirme a transferência e adicione outra validação do saldo da conta de origem após ter confirmado a transferência”.

“Pararemos a gravação, copiaremos o script do código GeneXus e o levaremos ao IDE para poder executá-lo em diferentes navegadores”.

Passo 3: Levar o código GeneXus para o IDE

“Tendo o script de teste de interface web em código GeneXus pronto para ser executado em cada deploy de nossa aplicação, agora podemos executá-lo a partir do IDE clicando com o botão direito do mouse em Run Test(s). Este objeto web UI test tem o mesmo poder de um objeto de procedimento, pois você pode adicionar variáveis ​​para manipulação de dados, validações de banco de dados, chamadas para procedimentos e funções e tudo o que você precisa para enriquecer seu teste de interface”.

3 – Teste de interface móvel

O objetivo do teste de interface móvel é o mesmo da interface web, simular o fluxo do usuário no aplicativo. A ideia é poder executar esse mesmo fluxo em diferentes dispositivos e validar se funciona corretamente em todos eles.

“Para gerar um teste, você deve escrever o código no IDE e executá-lo. O que vou fazer aqui é apenas executá-lo, pois já tenho o código escrito.”

Passo 1


Neste
teste de interface móvel, o login é executado no aplicativo e verifica-se que existe o texto My Accounts e o saldo da conta de destino da transação que foi feita anteriormente, que neste caso deve ser de duzentos dólares. Para isso, deve-se selecionar a opção Run Test(s). Este objeto, como o objeto Web UI Test e o objeto Unit Test, tem o poder de um objeto de procedimento, permitindo adicionar as validações necessárias no banco de dados.

Passo 2

“Feito o processo anterior, o teste é executado no simulador reproduzindo o fluxo do usuário. Em seguida, ele efetua logout e encerra a execução do teste. Podemos ver no IDE informações de cada um dos comandos que foram executados. Temos o teste de interface móvel pronto para ser executado sempre que implantarmos nosso aplicativo.

 

Você também pode estar interessado em ler:

Como iniciar uma cultura DevOps?

O que há de novo no GXtest?

Leave a Reply

Your email address will not be published. Required fields are marked *

Voltar ao início