Passos para aprender Automação Web – Parte 2

Introdução

Utilizamos uma linguagem de programação para script de teste automatizado. Independente de usar uma ferramenta/API devemos saber o básico da linguagem que escolheremos para que possamos criar o scripts de teste. Depois de aprender o básico já alguns padrões de projeto que podemos entender e aplicar para que o nosso script fique cada vez mais robusto e menos suscetível a falhas e manutenções.

 

Linguagem de Programação: o básico

Como estamos trabalhando com automação de teste é necessário escrever código com alguma linguagem de programação. Você não precisa ter o mesmo conhecimento de um desenvolvedor na sua empresa (se tiver melhor 😛 ) mas isso não é um fator determinante para criar scripts de teste automatizado.

Mas você precisa conhecer o básico da linguagem de programação. Vou procurar explicar abaixo todos os pontos básicos que devemos aprender sobre uma linguagem, preferencialmente uma linguagem orientada a objetos.

Orientação a Objetos

Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. Fonte Wikipedia

Explicação bonita né? Mas não encontrei melhor explicação, por isso a cópia do Wikipedia 😛

O que eu precisa aprender sobre programação básica

De preferência, dentro da orientação a objetos, é necessário começar do básico:

  • Classes: vai representar um conjunto de objetos para serem utilizados. Um exemplo é que o nosso script de teste será uma classe, e você pode criar classes para apoiar em alguma ação dos scripts de teste
  • Tipos de Dados: Sabemos que existem tipos diferentes de dados, não é mesmo? Os mais comuns para a utilização da automação de teste são String (texto), int ou integre (números inteiros) e boolean (booleano)
  • Atributos: São as características do objeto que vão compor a estrutura de dados. Exemplo: Uma classe Pessoa poderia ter os atributos como nome, CPF, endereço, etc… No caso dos scripts de teste criamos atributos referentes a inicialização do browser (pensando em web) e atributos de suporte.
  • Métodos com retorno e sem retorno: Muitos criam seus scripts de teste no método de teste (quando usam algum framework de teste unitário como suporte), mas é necessário também para uma bola legibilidade ou mesmo como suporte ao teste criar métodos (funções) que irão fazer algo específico. Eles podem não ter retorno (somente executar algo) ou retornar uma informação (um tipo de dado)
  • Loops: existem diversos tipos de loops, que são códigos que executam N vezes. Os loops mais comuns são while (enquanto), for (para) e d0…while (faça… enquanto).
  • Condicionais: são fatores de tomada de decisão onde podemos desviar o código para um determinado trecho ou ação. Os mais utilizados são if-else (se-senão), switch-case (desvie-caso). Tome cuidado no uso de condicionais no seu teste. Se o caso de teste tem uma derivação (mais de um teste), tente criar um novo teste ao invés de utilizar um if no seu código.

 

Exemplo a aplicação da programação básica

O código abaixo mostra um exemplo de todos os tópicos básicos referente a programação. Pode ser que você não entenda no início, mas ao longo dos seus estudos você será capaz de escrevem um script assim. É isso que muitos entrevistadores técnicos vão te perguntar ou querer que você faça algo semelhante.

Este script foi escrito em Java, é é uma automação de teste para a página de cursos da Qualister.

Vou fazer o de-para de cada item:

  • Classe: todo o arquivo, iniciando na linha 1
  • Tipo de dados e atributo: linha 4, onde o tipo de dado é String (texto), criando o atributo chamado URL. Na verdade é uma constante por conta da palavra final static, mas se você não está familiarizado com a linguagem, trate-a como atributo (pelo menos por enquanto)
  • Método com retorno: linha 19 a 21, onde o método retorna todos os links existentes na página
  • Método sem retorno: linhas 27 a 33 e linhas 39 a 45, que são métodos que imprimem o texto dos links com uma determinada condição
  • Loops: linhas 28 a 32 e linhas 40 a 44 são loops que vão iterar (percorrer) cada link da página
  • Condicionais: linhas 29 a 31 e linhas 41 a 43 são condicionais verificando se o link tem determinado texto

 

O que posso aprender de forma mais avançada

Se você já sabe o básico de alguma linguagem de programação e quer tornar o seu teste ainda mais robusto, ou pretende depois de aprender o básico melhorar seu script ainda mais dê uma olhada nos três tópicos abaixo.

Page Objects

Page Objects é um padrão de projeto criado com foco em uma página web que concretiza uma página como uma classe e seus campos como atributos. Cada ação no atributo vira um método para utilização no script de teste. Há uma separação bem definida entre a classe criada (page objects) e seu teste. O seu teste irá utilizar os métodos do page object. Se alguma manutenção for necessária você não precisa alterar N testes, basta alterar diretamente no page objects.

Esse é um assunto muito importante para a automação de teste web e mobile, então, assim que possível tente estudar um pouco mais sobre este assunto. 🙂

Singleton

Singleton é um padrão de projeto que garante que uma classe tenha apenas uma instância e tenha um único ponto de acesso, que é global. Um exemplo concreto é a criação do browser. Seguidamente você precisará iniciar o browser web a todo momento, certo? Implementando o padrão Singleton para o browser você consegue além de iniciar apenas um browser para o seu teste (se assim você quiser) você pode inserir diversos browser diferentes para facilitar a execução e manutenção.

 

Recomendações de Curso e Estudo

A Loiane Groner tem um EXCELENTE curso gratuito de Java (a maioria dos testadores que eu conheço criam scripts de teste em Java) e eu recomendo fortemente, mesmo que você conheça um pouco sobre Java, fazer o curso ou aprender tópicos específicos.

http://loiane.training/curso/java-basico/
Também recomendo o site CodeCademy para aprender sobre outras linguagens também utilizadas para automação de teste, como Ruby ou Python. Eu fiz estes dois cursos e recomendo muito!

https://www.codecademy.com/pt-BR/learn/ruby

https://www.codecademy.com/pt-BR/learn/python

 

Infelizmente existem poucos materiais em Português referente a parte  Page Objects e aplicação do Singleton com Selenium, por exemplo, no caso de automação web. Minha recomendação neste sentido é pesquisar no google mesmo e, se você tiver dúvidas, pode deixar um comentário aqui.

Até o próximo post! 🙂

 

One thought to “Passos para aprender Automação Web – Parte 2”

  1. Elias antes de mais nada gostaria de parabeniza-lo pelo blog ótimo blog para o estudo de teste você está de parabéns continue nos ajudando sempre. Sem querer ser chato e te corrigir, mas é que essa parte do código
    private final static String URL = “http://www.qualister.com.br/cursos”; não é um atributo e sim uma constante pois a palavra reservada final a torna constante já a palavra reservada static significa que só uma alocação de memória será criada para esta variável, ou seja, ela vai ser uma variável pertencente a classe. Elias desculpa é só um detalhe desculpa pela correção e mais uma vez parabéns por esse fantástico blog por favor não pare de nos ensinar!!!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *