Passos para aprender Automação Web – Parte 4

Está vendo este post pela primeira vez sem ver os demais da série Passos para Aprender Automação Web?
Acesse esta página e leia os posts anteriores 🙂

Introdução

Em qualquer aplicação de automação de teste para web é necessário validar os resultados esperados, sejam eles um texto apresentado em uma mensagem, a apresentação de um campo, o desaparecimento de uma imagem, etc…

Se não inserirmos uma (ou mais) validação(ões) de resultado(s) nosso script de automação será meramente um script de navegação e nada mais. Um dos pontos principais da automação de teste, que é a validação automática dos resultados será perdida.

O que são Validações de Resultados?

Em um teste manual, por qualquer que seja a forma que testamos (com base informal [ad-hoc test], com base formal [casos de teste] ou com base mediana de formalidade [teste exploratório]) é extremamente necessário a validação de resultados. Ela nada mais é que a comparação entre o resultado esperado versus o resultado obtido.

Com um exemplo simples, podemos explicar os dois termos…

Digamos que temos um caso de teste bem simples escrito assim:

Você já notou que existem três resultados esperados, certo?

  1. A mensagem
  2. Visualizar a lista de fornecedores cadastrados
  3. Os dados do fornecedor cadastrado apresentado na primeira linha

Agora você executa o teste e a tela que você vê é a tela abaixo:

O resultado esperado é “Fornecedor cadastrado com sucesso!”
O resultado obtido foi “Registro duplicado!”

Em resumo o resultado esperado é aquele que esperamos previamente para a validação com sucesso. O resultado obtido é aquele apresentado e que devemos comparar para garantir que o sucesso da execução, neste caso o mesmo texto do do “Fornecedor cadastrado com sucesso!”

Aqui foi apresentado um erro na validação, pois as mensagens são diferentes.

asserções (assertions)

Para validar os resultados de forma automática existem ferramentas de teste, geralmente unitários, que provem a funcionalidade de asserções.

Nota: sempre utilizamos o suporte de uma ferramenta de teste unitário na escrita de qualquer script de automação de teste, mas não quer dizer que estamos desenvolvendo teste unitário. Apenas usamos as funcionalidades já existentes nestas ferramentas para facilitar diversos pontos, entre eles a validação dos resultados.

Existem, basicamente, três tipos de asserções:

  • igualdade: garante que um resultado obtido é igual ao resultado esperado
  • verdadeiro/falso: garante que o resultado esperado é igual a verdadeiro ou falso
  • nulo: garante que o resultado esperado é nulo

Neste três tipos existe sempre a palavra “não”, que quer negar o que ele vai garantir.
Por exemplo, um “garantirNaoNulo” seria garantir que um resultado não é nulo.

Existem vários frameworks de teste unitário para diferentes linguagens. Todos eles suportam as asserções.
Para saber a lista de frameworks de teste unitário existentes para cada linguagem de programação, que chamamos de xUnit, acesse: https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

Exemplo de asserção em Java

Para a linguagem Java existem dois frameworks muito conhecidos:

  • JUnit | http://junit.org/junit4/
  • TestNG | http://testng.org

Os exemplos de asserções abaixo foram escritos usando JUnit.
Na dúvida de qual você pode usar eu recomendo o JUnit por ter mais materiais informativos, exemplos e fácil aplicação.

asserção para garantia de valores iguais

Essa asserção no JUnit é chamada de assertEquals. Veja o exemplo abaixo.

Na linha 8 e 9 temos o resultadoEsperado e resultadoObtido como sendo o mesmo texto (simulando o que seria uma mensagem sendo apresentada).
Na linha  11 temos a função assertEquals, onde o primeiro parâmetro é referente ao resultado que esperados e o segundo parâmetro é o resultado obtido.

A execução deste teste tem o retorno como sucesso.

Na linha 16 e 17 temos o resultadoEsperado diferente do resultadoObtido.
Na linha 19 temos a validação (assertEquals) que mostrará um erro ao executar este teste, pois o resultado esperado é diferente do resultado obtido.

Na imagem é possível ver a primeira linha (com o fundo cinza) a apresentação do erro. No detalhe abaixo dessa linha há uma janela mostrando o que era esperado (Expected) e o que é o obtido (Actual).
Como os dois são diferentes, o erro foi apresentado.

 

Deixe uma resposta

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