Automação de teste

Origem: Wikipédia, a enciclopédia livre.

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 | editar código-fonte]

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 | editar código-fonte]

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 | editar código-fonte]

  • 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 | editar código-fonte]