Automação de Testes de Software com Selenium IDE e WebDriver

Este artigo apresenta a prática da automação de testes utilizando a Selenium IDE e WebDriver. Cada uma delas será analisada no contexto de um estudo de caso.

Fique por dentro
A necessidade de mudanças ao longo do desenvolvimento do software é algo que afeta muitas atividades do desenvolvimento, incluindo os testes: como garantir que algo que funcionava continua correto após uma modificação ser realizada? A resposta a esta pergunta pode ser obtida através da execução de testes de regressão. Contudo, o custo de retestar periodicamente o produto pode tornar a atividade de teste de regressão manual proibitiva. Neste cenário, este artigo discute a automação de testes. Em particular, serão analisadas duas possibilidades: Selenium IDE e WebDriver. A discussão deste tema é essencial para aqueles que tenham interesse em aprimorar a qualidade de seus projetos sem abrir mão de um custo reduzido na realização das atividades de garantia da qualidade.

A automação permite repetir testes que já foram executados manualmente, reduzindo assim o tempo de teste, esforços, custos e recursos. Traz também como consequência um aumento na produtividade do desenvolvimento e qualidade do produto de software.

O teste de software tem sido reconhecido cada vez mais por empresas de pequeno, médio e grande porte pelo simples fato de que a mentalidade dos clientes está mudando. Clientes estão menos tolerantes a falhas e entregas atrasadas. Com toda a competitividade de mercado, o custo, tempo e qualidade do software são fatores importantes na decisão dos clientes. Segundo Glenford Myers em seu livro “A arte do teste de software”, na regra 10, o custo de um bug ou defeito torna-se cada vez mais caro conforme vai se aproximando o final do ciclo de vida de desenvolvimento de software, ou seja, é mais barato corrigir um bug encontrado na análise do que no teste do software.

A automação do teste de software tem como objetivo principal simular a execução do software por um usuário real e auxiliar nos testes de regressão e de manutenção. Para este fim, ferramentas necessitam ser utilizadas. Um dos erros cometidos pelos desenvolvedores de scripts automatizados é a visão de que é necessário automatizar tudo e todos os caminhos possíveis do software. Entretanto, não é possível automatizar todos os passos e situações de um sistema. Antes de começar a automatizar é necessário analisar o contexto e pesquisar ferramentas e métodos.

Com o crescimento de organizações e consultorias de desenvolvimento de software no mercado, os clientes à procura de sistemas web aumentaram devido à facilidade de acesso, usabilidade, funcionalidade, confiabilidade e outras razões como a possibilidade de utilizar o sistema em diversos dispositivos como celulares, tablets e computadores.

Sistemas complexos e robustos que possuem alto risco de impacto para o usuário precisam ter uma taxa praticamente de 0% de falhas, uma meta impossível já que o software é feito por pessoas, que no momento do desenvolvimento podem cometer enganos e inserir erros no código, causando defeitos ou bugs no sistema que ao serem executados podem causar falhas gerando danos ao usuário. Após os testes manuais passarem numa funcionalidade ou módulo do sistema, é feito o desenvolvimento do script automatizado do mesmo, para que haja garantia de que o que foi automatizado continuará funcionando após mudanças no código, nos artefatos de requisitos, nos novos releases e versões e nas alterações no ambiente onde se encontra o sistema.

Muitas organizações estão utilizando a automação de teste de software como um recurso para apoiar a execução de testes de regressão do sistema. É comum deparar-se com situações em que um sistema foi homologado e depois de um tempo há uma correção a ser feita e, após a correção, funcionalidades de outros módulos simplesmente não funcionam mais. Em sistemas pequenos, pode ser viável um teste manual de regressão para validar se o sistema ainda se comporta conforme deveria ou conforme os requisitos. Todavia, em sistemas mais robustos, não é viável o teste manual de regressão. Por isso, a automação de teste é um recurso que faz toda a diferença no futuro do sistema e da empresa."

[...] continue lendo...

Artigos relacionados