Antes de abordar o assunto principal deste artigo (testes de Aceitação em Ruby), vamos entender melhor o porque é importante desenvolver testes de aceitação e quais as vantagens desta escolha.

Análise do seu produto:

  • O software que você acabou de desenvolver, está pronto para uso dos usuários finais?
  • Todas as possibilidades de usabilidade, nele foram implementadas?

Analisando os pontos acima, fica fácil de entender, o quão importante é ter seu software coberto por testes.

Entendendo o lado do cliente:

acordo Em um site de compras, a última coisa que o usuário quer, é tentar comprar algo e não conseguir. E não porque ele não sabe usar a ferramenta, mas sim porque um problema que poderia ter sido detectado com um teste, foi para Produção.
Certamente após isso, o seu cliente não voltará.

O que são Testes de Aceitação?

É um teste formal relacionado às necessidades dos usuários, requisitos e processos de negócios. É realizado para estabelecer se um sistema satisfaz ou não os critérios de aceitação e para possibilitar aos usuários, clientes e às outras entidades autorizadas decidir aceitar ou não determinado sistema.
Deve garantir a satisfação dos clientes.
Seus clientes não querem se comprometer com sistemas inadequados ou falhos.

Objetivo:

Confirmar se o sistema está funcionando conforme o esperado, ou seja, prover a confiabilidade de que esteja de acordo com o requisito.
Avaliar a qualidade do software, para prover informações sobre os riscos da implantação do sistema em um determinado momento aos gestores.
Procurar defeitos não é o principal foco do teste de aceitação.

Por onde começar?

como Primeira decisão a se tomar é definir qual ferramenta para execução e qual linguagem será usada na escrita dos testes. Esses são os pontos primordiais a se decidir nesse momento.
Atualmente, existem uma infinidade de ferramentas, que podem atender suas necessidades. Entre elas temos :

  • Sellenium WebDrive
  • Watir
  • Junit
  • Entre outros.

Nesse artigo, explicarei um pouco de como escrever testes usando Watir WebDrive como ferramenta de execução e Ruby como linguagem de escrita.

O que o Watir?

Watir (Web Application Testing In Ruby ) , é um projeto open-source da Família de Ruby de Bibliotecas para automatização de navegadores da Web. Atualmente ele da suporte ao seguintes: Internet Explorer, Firefox, Chrome, Opera e Safari e com ele é possível automatizar suas tarefas, a fim de facilitar seu dia-a-dia.
Com o Watir Web Drive, trabalhamos com duas pastas que centralizaram as informações dos testes:

  • Lib – Onde serão armazenadas as informações sobre itens da página que deseja testar. Exemplo:deve_logar.rb
  • Spec – Onde ficará o roteiro a ser executado pelo teste. Exemplo: deve_logar_spec.rb

Vamos entender isso na prática!

pratica Imagine que no produto em questão, você deve automatizar uma página de venda de livros. O objetivo do seu teste será entrar nessa página e fazer o login, assegurando que o usuário final possa fazer sua compra. Para isso, vamos definir qual será o roteiro do teste (pode ser algo simples):

  1. Deve instanciar uma página com o endereço do nosso site;
  2. Deve preencher os campos de usuário e senha;
  3. Deve clicar em entrar;
  4. Deve aparecer o botão “Compre Agora”, para nosso usuário.

Com o roteiro definido, podemos começar a escrita do nosso teste.
No arquivo deve_logar.rb , vamos mapear todo os elementos que serão usados em nosso teste:
develogarrb
Depois disso, no arquivo deve_logar_spec.rb , definiremos os passos executados por nosso teste:
develogarspec1
Após mapear os elementos da página no arquivo anterior, você precisará somente preencher os campos necessários para que o teste seja executado.

  • Como vemos acima no campo nick_usario, nosso teste preencherá o campo com a palavra “master“.
  • No campo senha_usario, nosso teste preencherá o campo com o texto “1234“.
  • Como nosso elemento entrar foi definido com um botão, não precisamos dizer ao teste “DEVE CLICAR“, basta invocar ele.
  • Conforme texto do comentário do teste, o botão comprar presente na página será o assert de que seu teste está funcionando corretamente.

Esse foi apenas um exemplo de como automatizar a ação de logar em seu sistema. Mas existe uma infinidade de cenários que podem ser cobertos por esses testes:

  • Você pode criar um teste que faça login no seu sistema;
  • Escolha um livro no site;
  • Clique em comprar;
  • Gere um boleto bancário;
  • Valide o valor do boleto.

Tudo depende da necessidade do seu teste e programa.
 
Gostou?
Tem alguma dúvida, sugestão ou critica? Por favor deixe seu comentário no final da página.
Até a próxima!
——————————————————————————————-
Este post é um oferecimento de Acelerato – Gestão de Projetos e Help Desk online para a sua empresa.
 

Autor

Adriano Silva é testador na Bluesoft há mais de 6 anos. Atualmente, ele coordena a equipe de Qualidade do sistema da Bluesoft.

3 Comentários

  1. Muito bom o artigo, Adriano! Parabéns! 🙂
    Testes de aceitação muitas vezes são subestimados ou deixados de lado por serem um pouco mais trabalhosos de desenvolver. Como desenvolvedores, temos sempre que nos lembrarmos de que os testes de aceitação nos fornecem feedbacks riquíssimos e evitam bugs críticos de irem direto para ambiente de produção.
    Digo isto pela experiência que nós mesmos já tivemos aqui na Bluesoft. Os testes de aceitação já nos salvaram diversas vezes. Nossos clientes agradecem 🙂

  2. Que bacana, Adriano.
    Parabéns pelo artigo!
    Muito bem explicado.
    Os testes de aceitação são geralmente caros de se manter, mas quando bem usados podem agregar muito valor na qualidade do produto.
    Abraços.

Deixe aqui o seu comentário