Blog > Automação de Testes - Parte I - Introdução

12/jun

Neste post levantaremos alguns tópicos que, não raramente, são negligenciados quando uma equipe decide aplicar automação de testes no dia a dia, e fazem uma diferença tremenda na hora de demonstrar os resultados obtidos. Veremos uma situação de exemplo e quais os principais problemas ao iniciar a implantação de automação de testes.

Olá pessoal!

O assunto do dia é automação de testes. A idéia neste post é levantar alguns tópicos que, não raramente, são negligenciados quando uma equipe decide aplicar automação de testes no dia a dia, e fazem uma diferença tremenda na hora de demonstrar os resultados obtidos.

Suponhamos que nós fazemos parte de uma equipe de testes que foi montada para testar o projeto QuickLoja, que é uma loja virtual. Esse projeto terá 15 entregas, que deverão ocorrer a cada 4 semanas. Cada uma das entregas terá quase a mesma quantidade de pontos de função, o que dá ao gestor do projeto um fluxo constante de atividades para gerir, correto? ERRADO! A equipe de testes deverá testar, além das funcionalidades que estão sendo entregues, as funcionalidades que foram entregues anteriormente, para garantir que a evolução do sistema não gerou impacto no que estava funcionando (o que é muito comum).

No contexto descrito acima, três possíveis medidas costumam ser adotadas:

  • Aumentar gradualmente a equipe de testes gerando custo adicional imenso; ou
  • Descartar os testes regressivos gerando custo decorrente da perda de qualidade; ou
  • Implantar automação de testes no decorrer do projeto gerando custo adicional catastrófico. GAME OVER

Se demorarmos 50 (cinquenta) minutos para automatizar um caso de teste que pode ser validado manualmente em 10 (dez) minutos, só teremos retorno financeiro se substituimos os testes manuais daquele caso de teste pelo script de teste mais de 5 vezes. Mas e se gastarmos 50 (cinquenta) minutos para automatizar um caso de teste e substituirmos o teste manual apenas uma vez durante todo o projeto? Então teremos causado prejuizo de 4 (quatro) testes manuais. Entende a catástrofe financeira que isso pode ocasionar no projeto?

Considerando os dados do projeto QuickLoja, eu automatizaria os testes até, no máximo, a oitava entrega. E automatizaria apenas os casos de teste os quais o tempo de criação do script não fosse ultrapassar 5 vezes o tempo de execução manual. Dessa forma eu reduziria o risco de custo catastrófico da automação, garantindo que boa parte dos testes regressivos fosse executado de forma automatizada, deixando apenas testes complexos não triviais para execução manual.

No final das contas, os testes manuais sempre serão necessários. A automação de testes não vai resolver os problemas decorrentes de um planejamento que não tenha considerado a qualidade do sistema como uma das principais metas a atingir desde o início.

Algumas verdades que não devem ser negligenciadas:

  • Automatizar testes é caro (muito, mas muito caro mesmo);
  • O retorno não virá da noite para o dia (e se não for feito direito, nunca virá);
  • Você não reduzirá sua equipe de testes (e é provavel que você aumente);
  • Será necessária uma arquitetura de testes;
  • Capacitar a equipe é indispensável;
  • Automatizar TUDO não é uma opção;
  • Nem sempre o objetivo da automação é reduzir custos;
  • A automação de testes verifica se o que ESTAVA funcionando CONTINUA funcionando;
  • Não é viável automatizar um teste que está falhando;
  • Já que falsos erros as vezes são lançados, uma análise manual é fundamental;

O que devemos saber antes de iniciar um projeto de automação de testes:

  • A equipe tem maturidade técnica e cultural para automatizar?
  • Quais tipos de testes serão automatizados?
  • O que minha arquitetura de testes deve cobrir?
  • Por que vou automatizar?

Está bem, mesmo depois de ler tudo o que eu escreví aqui em cima você ainda quer implantar automação de testes no seu projeto, né. Então vou dar uma dica pra você começar a aplicar automação de testes considerando o menor custo e o maior benefício.

  • Testes exploratórios são muito mais simples de automatizar do que testes que validam regras complexas;
  • Muitas vezes é possível identificar um erro decorrente de impacto na evolução do sistema simplesmente realizando uma operação básica na funcionalidade.

Ou seja, automatize testes de cadastro, consulta, alteração e exclusão como ponto de partida. Nos próximos testes eles vão te dar uma idéia geral se o sistema continua funcionando ou não e não vão consumir muito tempo. E para testes simples de aplicações web o Selenium IDE é uma mão na roda! Você já conhece o Selenium IDE? Não? Então agora é a hora!!!

O Selenium IDE é um plugin do Firefox do qual é possível gravar as ações e depois executá-las de forma automatizada. Com ele é possível criar grupos de scripts de testes, chamados de Suites de Teste, onde um conjunto de testes é executado de forma simples, bastando clicar em um botão. É uma ferramenta simples e prática e, além disso, é possível executar testes também em outros navegadores, bastando utilizar o Selenium RC.

E automação de testes usando o WebDriver?

E automação de testes em metodologias ágeis?

E automação de testes desktop?

E automação de testes ...?

Calma aí pequeno gafanhoto. Continuaremos esta série escrevendo um pouco mais sobre Selenium IDE, mas caso você tenha alguma dúvida, sugestão ou queira apenas trocar idéia sobre temas relacionados a automação de testes sinta-se a vontade para me mandar e-mails. Meus dados de contato estão no início deste post, juntamente com o mini curriculo.

Até a próxima!

POSTS RELACIONADOS

Workshop Gratuito de Selenium IDE (Online)

Automatize os testes do seu sistema WEB com essa fantástica ferramenta!

AGENDA

CURSOS RELACIONADOS