introdução a automação de testes - 5º congresso online de ti

20
Introdução a Automação de Testes Rafael Amaral

Upload: rafael-amaral

Post on 22-Mar-2017

16 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Introdução a automação de testes - 5º Congresso Online de TI

Introdução a Automação de Testes

Rafael Amaral

Page 2: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesAgenda

ObjetivosDefiniçãoManual x AutomatizadoConceitos

Por que automatizar? x Por que não automatizar?Quando automatizar? x Quando não automatizar?Como automatizar? x Como não automatizar?Prós x ContrasMitos x Verdades

TécnicasPatternsAnti-PatternsFerramentas

Page 3: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesObjetivos

Objetivo geralApresentar de maneira introdutória a automação de testes, expondo os principais conceitos, técnicas e ferramentas utilizadas na automação

Objetivo específicoPermitir que os ouvintes entendam os conceitos básicos da automação de teste e a partir daí possam desenvolver seus estudos com melhor eficiência

Page 4: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesDefinições

Cem Kaner, autor do livro Lessons Learned in Software TestingAplicação de estratégias e ferramentas visando a redução do envolvimento humano em atividades manuais repetitivas

Outras definiçõesConjunto de atividades que incluem o desenvolvimento e execução de scripts de teste Técnica de testes que busca direcionar os esforços de execução de casos de teste para as máquinasUso de um software para controlar a execução do teste de outro software, pode permitir a comparação dos resultados, configurações de execução e outras funções de controle e geração de relatório e evidências da execução

Page 5: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesManual x Automatizado

Testes ManuaisRequerem muita atenção do testador pois são altamente propensos a errosPermitem que o testador utilize sua criatividade durante os testesRequerem maior tempo para execução (são mais lentos)Não permitem reutilização

Testes AutomatizadosDificultam a utilização de criatividade e exploração em diferentes situações de testeRequerem menos tempo de execução (são mais rápidos)Requerem grande esforço de criação e manutençãoMenos propensos a errosPermitem a reutilização

Page 6: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesConceitos

Por que automatizar?Porque é necessário garantir que as funcionalidades não foram afetadas com a manutenção do código (Regressão)Porque automatizar permite aumentar a cobertura dos testesPorque automatizar pode reduzir tempo e custo de execução

Por que não automatizar?Porque os projetos são “pequenos” ou de “curta duração”Porque as expectativas não estão alinhadasPorque não há tempo ou recursos

Page 7: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesConceitos

Quando automatizar?Quando o ROI para automação compensarQuando houver baixo risco de mudanças na documentação e layoutQuando há um processo bem definido e executadoQuando os testes estão "maduros"

Quando não automatizar?Quando o processo de desenvolvimento de software é "imaturo"Quando a AUT (Application Under Testing) está instávelQuando a automação não é encarada como um projetoQuando o processo de testes é informal

Page 8: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesConceitos

Como automatizar?Utilize a automação como um complemento aos testes manuais e outras técnicasDefina um escopo e objetivos para automaçãoEncare a automação como um projeto

Como não automatizar?Não confie "cegamente" na ferramenta escolhidaNão automatize “todo” o sistemaNão automatize o “caos”

Page 9: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesConceitos

Prós Permite escalar a execução (paralelizar) Permite eliminar o fator humano na etapa de execuçãoProvê velocidade na execução dos scriptsPermite reutilização

ContrasHá certa dificuldade para os Scripts não lidarem com situações inesperadasRequer muito retrabalho caso ocorra uma grande mudança no projetoRequer mão-de-obra especializadaRequer grande esforço inicial

Page 10: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesConceitos

MitosAutomatizar os testes vai garantir que o software não tem defeitosAutomatizar os testes vai desempregar os testadores manuaisAutomatizar os testes vai resolver os problemas de qualidadeAutomatizar os testes vai reduzir os custos

VerdadesA automação dos testes não dispensa a realização de testes manuaisNão é possível automatizar todos os testesAutomatizar testes é caroO ROI não é imediato

Page 11: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesTécnicas

Record and PlaybackGravação e reprodução de scriptsExige menor esforço inicial, difícil manutençãoNão há parametrização de variáveis

Data DrivenAdaptação do Record and PlaybackHá reutilização de código e parametrizaçãoMaior esforço inicial e de manutenção

KeyWord Driven“Framework de automação”Requer maior conhecimento e esforço inicial Auto reuso e facilidade de manutenção

Page 12: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesGerenciamento de expectativas

Garantir que todos os interessados estejam cientes dos resultados esperadosGarantir que todos os interessados estejam cientes dos custos envolvidosGarantir que a automação é vista como um projeto com características própriasGarantir que a ferramenta escolhida atende as necessidades da equipe e facilite extensão caso seja necessário

Page 13: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesPatterns - Pirâmide de automação

Mike Cohn Martin Fowler

Page 14: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesAnti-patterns

Sorvete de automaçãoMuitos testes manuais de interfaceMenos testes automatizados de interfaceMenos testes de serviçoPoucos testes unitários

Page 15: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesAnti-patterns

Cupcake de automaçãoQuantidades iguais de testes nas camadasReplicação de testes Grande retrabalho

Page 16: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesPatterns - Pirâmide ideal

Pirâmide idealTestes manuais "exploratórios"Testes automatizados de Interface GráficaTestes automatizados de API, Integração e componenteTestes automatizados unitários

Page 17: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesFerramentas

5º Congresso Online de TI

Page 18: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesFerramentas

Page 19: Introdução a automação de testes - 5º Congresso Online de TI

Automação de testesFerramentas

Page 20: Introdução a automação de testes - 5º Congresso Online de TI

Obrigado!!

https://github.com/amaralrfl

https://br.linkedin.com/in/amaralrfl

https://www.facebook.com/groups/testesoftwaresalvador/

[email protected]