Automação de teste

uso de software especial para controlar a execução de testes e comparar resultados reais com resultados previstos

Automação de teste é o uso de software para controlar a execução do teste de software, a comparação dos resultados esperados com os resultados reais, a configuração das pré-condições de teste e outras funções de controle e relatório de teste. De forma geral, a automação de teste pode iniciar a partir de um processo manual de teste já estabelecido e formalizado.

Visão geral editar

Apesar do teste manual de software permitir encontrar vários erros em uma aplicação, é um trabalho maçante e que demanda um grande esforço em tempo. Também, pode não ser efetivo na procura de classes específicas de defeitos. A automação é o processo de escrita de um programa de computador para realizar o teste. Uma vez automatizado, um grande número de casos de teste podem ser validados rapidamente. As vantagens da automação tornam-se mais evidentes para os casos de softwares que possuem longa vida no mercado, devido ao fato de que até mesmo pequenas correções no código da aplicação podem causar a quebra de funcionalidades que antes funcionavam.

A automação envolve testes de caixa-preta, em que o desenvolvedor não possui conhecimento sobre a estrutura interna do sistema, ou caixa-branca, em que há pleno conhecimento da estrutura interna. Para os dois casos, a cobertura de teste é determinada respectivamente pela experiência do desenvolvedor ou pela métrica de cobertura de código.

A automação de teste pode ser cara, e geralmente é usada em conjunto com técnicas manuais. Entretanto, pode cortar custos a longo prazo, especialmente na fase de teste de regressão. Uma forma de gerar casos de teste automaticamente é o teste baseado em modelo, em que um modelo do sistema é usado para a geração de casos de teste.

Abordagens editar

Há duas abordagens usadas na automação.

No teste de interface gráfica do utilizador, uma plataforma gera os eventos de entrada na interface de utilizador do sistema e observa as mudanças na saída. Várias ferramentas fornecem funcionalidades para gravar e reproduzir as ações do utilizador. Sendo aplicável a qualquer aplicação que use uma interface gráfica, esta técnica possui a vantagem de exigir menos codificação, mas implica dificuldades de manutenção do teste, como quando a interface gráfica é alterada.

Já no teste baseado em código, a interface pública das classes, módulos ou bibliotecas são testadas com uma variedade de argumentos de entrada, observando-se a saída. Uma tendência atual no desenvolvimento de software é o uso de plataformas xUnit, que permitem realizar testes de unidade para determinar se as seções do código estão processando de forma esperada em diversas circunstâncias. O teste baseado em código é uma funcionalidade chave no desenvolvimento ágil de software.

Referências editar

  • Dustin, Elfriede; et al (1999). Automated Software Testing. Addison Wesley. [S.l.: s.n.] ISBN 0-20143-287-0 
  • Savenkov, Roman. How to Become a Software Tester. Roman Savenkov Consulting. [S.l.: s.n.] ISBN 978-0-615-23372-7 

Ver também editar