Padrão page objects – como avaliar sua implementação?

O que vou aprender ao final desse post?
Abordagem para avaliar a qualidade do padrão page objects aplicado nos seus testes automatizados de interface.

O post de hoje continua detalhando a proposta apresentada por Dave Haffner para avaliar a qualidade de seus testes automatizados de interface. Hoje apresentaremos mais detalhes da parte 2 do vídeo voltada à aplicação do padrão page objects.

A análise da parte 1, que discute os aspectos mais gerais dos testes automatizados encontra-se disponível no último post.

Resumindo em poucas palavras, o padrão page objects permite ao tester/desenvolvedor aplicar camadas de abstração com o principal objetivo de facilitar a criação e manutenção dos testes de interface, separando as ações realizadas pelo usuário do código responsável por interagir com a interface.

Seguindo a mesma dinâmica da parte 1, Haffner discute alguns dos pontos que atuam como indicativos de que a utilização do padrão page objects é boa ou ruim.

Indicativos de uma implementação Page Object RUIM:

  • Classes gigantescas (Tornam o entendimento e manutenção mais difícil)
  • Responsabilidade exagerada (Ex.: Realizam ações não relacionadas a sua abstração)
  • Lógica complexa (Código de testes deve ser simples)
  • Retorna pouca ou excessiva informação para o teste (Ex.: Não deve retornar um WebElement)
  • Verificações acontecendo na classe Page Object ao invés do teste.

Indicativos de uma implementação Page Object BOA:

  • Contém estados (ex.: locators)
  • Contém ações (métodos para interagir com a página)
  • Retorna alguma informação sobre a página (Ex.: Novo Page Object, texto de elemento da página, bool de alguma verificação, etc.)
  • Verifica que a página está num estado pronto para interagir, como parte de sua inicialização.

Pontuação Page Objects:
*Cada Page Object inicia com 100 pontos, a partir daí deduzimos os pontos de acordo com a tabela abaixo:

Um bom exemplo de como aplicar alguns dos conceitos discutidos no vídeo e listados acima está disponível no Utilizando o padrão page objects em que Dave Haffner exemplifica a utilização do padrão page objects.

Ainda não assistiu o vídeo? Assista e complemente seu entendimento sobre o padrão page objects, afinal quanto tempo você gasta dando manutenção nos seus testes?

No próximo post trataremos da terceira parte do vídeo, que aborda a escolha e utilização dos locators.

Deixar uma resposta

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

*