Como medir a qualidade dos seus testes automatizados?

O que vou aprender ao final desse post?
Abordagem para avaliar a qualidade dos seus testes automatizados de interface.

O post de hoje aborda a proposta apresentada por Dave Haffner para avaliar a qualidade de seus testes automatizados de interface. O vídeo é excelente e nele Haeffner divide sua proposta para avaliar a qualidade dos testes em 3 etapas:

– Estrutura dos código de testes;

– aplicação do padrão page objects; e

– utilização dos locators.

 

Para facilitar o entendimento e aplicação iremos dividir em 3 posts. Nesse primeiro momento, abordaremos apenas a proposta para análise da estrutura do código de testes.

Haffner aborda inicialmente alguns indícios que ajudam a separar testes ruins de testes bons.

Indicativos de um teste RUIM:

  • Falha sem um bom motivo
  • Facilmente impactado por mudanças no software
  • Lento
  • Pouco confiável
  • Difícil de compreender e manter

Indicativos de um teste BOM:

  • Escrito para utilizar um framework existente (ex.: BDD ou xUnit)
  • Valida um único aspecto (atomico)
  • Pode ser executado isoladamente (autônomo)
  • Qualquer um pode compreender seu objetivo e estrutura
  • Testes similares agrupados (Estrutura de pastas e testes orgânica e fácil de compreender)
  • Inicialização(setup) e Encerramento(teardown) dos testes centralizados
  • Aplica o padrão page objects

Pontuação dos testes:
*Cada teste inicia com 100 pontos, a partir daí deduzimos os pontos de acordo com a tabela abaixo:

Item

Pertence aos testes?

Pontuação

Comandos selenium

Não

– 3 cada (max. -9)
Locators Não -2 cada (max. -8)
Selenium setup e teardown Não -20
Uso de Sleep Não -5 cada (max. -20)
Esperas implícitas Não -10
Esperas explícitas Não -3
Estruturas condicionais Não -5 cada (max. -20)
Chamadas a estruturas page objects Sim N:A
Verificações (Assertion(s)) Sim N:A

O código de testes, exibido abaixo, exemplifica alguns dos problemas mencionados:

Ficou interessado? No vídeo Haffner explica os motivos referentes a cada um dos elementos considerados importantes na análise. Concordar ou discordar com a proposta é irrelevante, o que importa é a reflexão em busca de formas de melhorar continuamente seus testes.

No próximo post trataremos da segunda parte do vídeo, que aborda a utilização do padrão page objects.

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

*