66
Automação de Testes Funcionais - Selenium Israel Santiago, PMP

Automação de Teste Funcionais - Selenium

Embed Size (px)

DESCRIPTION

Automação de Teste Funcionais - Selenium

Citation preview

Page 1: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium

Israel Santiago, PMP

Page 2: Automação de Teste Funcionais - Selenium

Agenda Introdução

O que é Teste de Software Por que testar Desafios O que é Automação de Testes Expectativas

Engenheiro de Teste O que faz um Engenheiro de Testes Qual o conhecimento necessário

Fornecedores de Ferramentas de Teste Pagas Free/Open Source

Automação de Testes Funcionais - Selenium2 / 28

Page 3: Automação de Teste Funcionais - Selenium

Agenda Teste Funcional

O que é Teste Funcional Tipos de falhas detectáveis Casos de testes para Testes Funcionais

Automação de Testes Funcionais com o Selenium O que é o Selenium Selenium IDE Selenium Remote Control (RC) Selenium Grid Exemplo de um teste em Java

Page 4: Automação de Teste Funcionais - Selenium

O que é Teste de Software:

Automação de Testes Funcionais - Selenium4 / 28

"Teste de software é o processo formal de avaliar um sistema ou componente de um sistema por meios manuais ou automáticos para verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre os resultados esperados e os obtidos“[IEEE 729 - Glossary of Software Engineering Terminology, 1983]

O teste consiste em executar o programa com a intenção de encontrar erros (bugs)”.[The Art of Software Testing – Glendford Myers, John Wiley & Son, 1979]

Teste de software consiste na verificação dinâmica do comportamento de um programa, através de um conjunto finito de casos de teste, adequadamente selecionado a partir de um conjunto infinito de possibilidades,contra um comportamento esperado especificado.[SWEBOK - Guide to the Software Engineering Body of Knowledge]

Page 5: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium5 / 28

Testando a refeição

Page 6: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium6 / 28

Testando a nova casa

Page 7: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium7 / 28

Testando os conhecimentos

Page 8: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium8 / 28

Testando a nova roupa

Page 9: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium9 / 28

Teste de colisão

Page 10: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium10 / 28

Testando a paixão

Page 11: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium11 / 28

Testando a gravidade

Page 12: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium12 / 28

Testando a cerveja Belga

Page 13: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium13 / 28

Testando a orquestra

Page 14: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium14 / 28

Testando o futuro carro

Page 15: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium15 / 28

Testando o novo brinquedo

Page 16: Automação de Teste Funcionais - Selenium

Por que Testar ?

Automação de Testes Funcionais - Selenium16 / 28

Testar faz parte docotidiano

Page 17: Automação de Teste Funcionais - Selenium

Como você se garante ?

Automação de Testes Funcionais - Selenium17 / 28

Page 18: Automação de Teste Funcionais - Selenium

INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB18 / 28

Page 19: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium19 / 28

Por que Testar ?

Page 20: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium20 / 28

Por que Testar ?A Economia norte-americana perde 60 bilhões de dólares por ano com erros de software, dos quais 20 bilhões poderiam ser economizados com melhoriasnos Testes. Fonte: Critical Testing Processes – Rex Black

Processos de teste inadequados aumentam o risco de atraso ou cancelamento de projetos entre 25% a 300%.Fonte:Critical Testing Processes – Rex Black

Mais de 1/3 das falhas poderiam ser evitadas com testes;Fonte: NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm

Cerca de 50% das falhas só são descobertas em produção; Fonte: NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm

Page 21: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium21 / 28

Por que Testar - Casos

Mars Climate Orbiter (http://mars.jpl.nasa.gov/msp98/orbiter/)

Desastre: Se perdeu no espaço no momento em que entrava na atmosfera

de Marte

Motivo: Misturou, em cálculos, valores com medidas de tamanho

diferentes Na revisão de código descobriram que parte do código usava unidades de medidas americanas e parte em medidas Inglêsas.

Prejuízo: 125 milhões de dólares

Page 22: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium22 / 28

Por que Testar - Casos AirBus 320 (http://en.wikipedia.org/wiki/Iran_Air_Flight_655) :

Desastre: USS Vicennes derrubou um airbus 320 em 1988

Motivo: Bug no software de reconhecimento, confundindo o avião com um

F-14

Prejuízo: 290 mortes

Page 23: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium23 / 28

Por que Testar - Casos London Ambulance Service (

http://en.wikipedia.org/wiki/London_Ambulance_Service)

Desastre: Serviço auxiliado por computador falhou em dois dias de

Novembro de 1992, gerando várias falhas, como o envio de 2 ambulâncias para o mesmo loval, envio de uma ambulância para um local onde outras estavam mais perto, etc.

Motivo: Tudo indica que o problema estava relacionado a alta carga de

emergências durante o período.

Prejuízo: Morte de 30 pessoas

Page 24: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais - Selenium24 / 28

Por que Testar - Casos Portal de notícias ClicRBS

Page 25: Automação de Teste Funcionais - Selenium

Desafios do Teste de Software Manual

Automação de Testes Funcionais - Selenium25 / 28

Page 26: Automação de Teste Funcionais - Selenium

O que é Automação de Testes

Automação de Testes Funcionais - Selenium26 / 28

"O propósito da automação de testes pode ser resumidamente descrito como a aplicação de estratégias e ferramentas tendo em vista a redução do envolvimento humano em atividades manuais repetitivas."

Cem Kaner, Autor do livro "Lessons Learned In Software Testing"

Page 27: Automação de Teste Funcionais - Selenium

Falsas expectativas

Automação de Testes Funcionais - Selenium27 / 28

Programador Aloprado

Gerente Sem-Noção

Testador fora do contexto

Uma ferramenta de testes automatizados é a solução de todos os problemas de qualidade.

Testabili-oquê?Você quer dizer que para criar testes automatizados será necessário modificar osistema?

Testes automatizados émoleza. Basta gravar a digitação e os cliques domouse e depois executar o script.

Page 28: Automação de Teste Funcionais - Selenium

A ferramenta não é a solução de todos os problemas

Automação de Testes Funcionais - Selenium28 / 28

"UM TOLO COM UMA FERRAMENTA AINDA É UM TOLO"

Page 29: Automação de Teste Funcionais - Selenium

Forte dependência da estabilidade da interface gráfica

As ferramentas não são infalíveis

Automação de Testes Funcionais - Selenium29 / 28

Page 30: Automação de Teste Funcionais - Selenium

A automação de testes não exclui o fator humano

Automação de Testes Funcionais - Selenium30 / 28

Page 31: Automação de Teste Funcionais - Selenium

Testes manuais X Automação de testes

Automação de Testes Funcionais - Selenium31 / 28

Page 32: Automação de Teste Funcionais - Selenium

Testes manuais X Automação de testes

Automação de Testes Funcionais - Selenium32 / 28

Page 33: Automação de Teste Funcionais - Selenium

Testes candidatos (recomendados)

Automação de Testes Funcionais - Selenium33 / 28

Page 34: Automação de Teste Funcionais - Selenium

Testes candidatos (não recomendados)

Automação de Testes Funcionais - Selenium34 / 28

Page 35: Automação de Teste Funcionais - Selenium

Quem automatiza os testes: Engenheiro de testes Sua função é criar estratégias de teste que serão utilizadas em produtos,

aplicando toda e qualquer técnica de teste em um produto em desenvolvimento.

Dentro da organização costuma:

• Criar e executar testes funcionais e não funcionais

• Estimar e preparar o ambiente necessário

• Automatizar os testes funcionais/não funcionais

• Criar cenários de teste mais abrangentes

Automação de Testes Funcionais - Selenium35 / 28

Page 36: Automação de Teste Funcionais - Selenium

O que um Engenheiro de Testes precisa saber? Linguagem de programação Sistemas Operacionais Conhecimento avançado das Técnicas de Teste Ferramentas de Automação Linguagem SQL Arquitetura de Software Configuração de Ambientes Execução de Testes não Funcionais Habilidade de comunicação com pessoas técnicas

Automação de Testes Funcionais - Selenium36 / 28

Page 37: Automação de Teste Funcionais - Selenium

Fornecedores comerciais mais importantes

Automação de Testes Funcionais - Selenium37 / 28

Fornecedores mais importantes segundo um estudo do Forrester Research em 2008.

Page 38: Automação de Teste Funcionais - Selenium

Fornecedores comerciais mais importantes

Automação de Testes Funcionais - Selenium38 / 28

Page 39: Automação de Teste Funcionais - Selenium

Ferramentas OpenSource Ferramentas de Automação Funcional

39 / 28

Nome BadBoy(Free até 5 licenças)

Selenium Watir

Site http://www.badboy.com.au/ http://seleniumhq.org/

http://wtr.rubyforge.org

Tecnologia Web Web Web

Finalidade Automação porcapture/replay naWeb com suporte aAjax

Suíte de ferramentaspara automação depáginas Web viacapture/replay

Automação detestes para páginasWeb viaprogramação(Ruby)

Page 40: Automação de Teste Funcionais - Selenium

O que é Teste Funcional ?

Automação de Testes Funcionais - Selenium40 / 28

O Teste Funcional procura, entre outras coisas, mostrar que os requisitosfuncionais do software são satisfeitos,que a entrada é adequadamente aceita, que a saída esperada é produzida e que a integridade das informações externas é mantida; por isso, não existe preocupação com a estrutura lógica interna do sistema.[Pressman, 2002]

Procedimento que deriva e/ou seleciona casos de testes com base em uma análise da especificação da funcionalidade de um componente ou sistema sem fazer referência à sua estrutura interna.[Glossário - ISTQB (International Software Testing Qualification Board)]

Page 41: Automação de Teste Funcionais - Selenium

Tipos de Falhas Detectáveis

Automação de Testes Funcionais - Selenium41 / 28

Com os testes funcionais, podemos detectar os seguintes tipos de falhas: Funções Incorretas Funções não implementadas Erros de Interfaces Erros de desempenho Erros de inicialização e finalização

Page 42: Automação de Teste Funcionais - Selenium

Casos de Testes para Testes FuncionaisOs Testes Funcionais são realizados através da execução de casos de

testes e seus fluxos de uso utilizando dados válidos e inválidos para

verificar se os resultados apresentados (comportamento e resposta da

aplicação) ocorrem conforme o esperado. Deve-se verificar se as

mensagens de erro apropriadas são indicadas quando dados ou ações

inválidas são utilizadas. Portanto deve-se verificar se cada regra de

negócio é corretamente aplicada.

[MOLINARI, 2008]

Automação de Testes Funcionais - Selenium42 / 28

Page 43: Automação de Teste Funcionais - Selenium

Automação de Testes Funcionais com o Selenium

Automação de Testes Funcionais - Selenium43 / 28

Page 44: Automação de Teste Funcionais - Selenium

O que é o Selenium

INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB44 / 28

http://seleniumhq.org

Page 45: Automação de Teste Funcionais - Selenium

O que é o Selenium

INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB45 / 28

Suíte de ferramentas open-source que auxiliam na execução de testes funcionais a partir da camada de apresentação de um sistema Web.

Selenium Suite

Selenium IDE Selenium Remote Control

Selenium Grid

Page 46: Automação de Teste Funcionais - Selenium

O que é o Selenium

INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB46 / 28

Funciona nos principais browser´s, plataformas e linguagens:

Page 47: Automação de Teste Funcionais - Selenium

Por que este nome ?

Automação de Testes Funcionais - Selenium47 / 28

Page 48: Automação de Teste Funcionais - Selenium

Por que este nome ?

Automação de Testes Funcionais - Selenium48 / 28

Page 49: Automação de Teste Funcionais - Selenium

Origem do Selenium A ThoughtWorks precisava de uma ferramenta pata testar uma aplicação de

rastreamento de despesas pela web;

Os desenvolvedores estavam familiarizados com a ferramenta de teste Mercury

(Agora uma empresa da HP);

Iniciaram então, o desenvolvimento da sua própria ferramenta, chamada Selenium.

Criadores: Jason Huggins (Selenium Core), Paul Hammat, Patrick Lightbody

(Selenium RC).

INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB49 / 28

Page 50: Automação de Teste Funcionais - Selenium

Selenium IDE

28 / 50Automação de Testes Funcionais - Selenium

Page 51: Automação de Teste Funcionais - Selenium

Selenium IDE

28 / 51Automação de Testes Funcionais - Selenium

Plugin do FireFox Ambiente integrado para o desenvolvimento de testes no Selenium Fornece funcionalidade de gravação e reprodução. Proporciona a capacidade de depurar scripts de teste. "Auto complete" dos comandos do Selenium Permite a exportação dos scripts de teste em diferentes formatos como

HTML, Java, Ruby, Python, etc. Suporta extensões do usuário

Page 52: Automação de Teste Funcionais - Selenium

Alguns comandos ‘Selenese’

28 / 52Automação de Testes Funcionais - Selenium

Page 53: Automação de Teste Funcionais - Selenium

‘Locators’ de elementos

28 / 53Automação de Testes Funcionais - Selenium

Page 54: Automação de Teste Funcionais - Selenium

Como o Selenium funciona

28 / 54Automação de Testes Funcionais - Selenium

Page 55: Automação de Teste Funcionais - Selenium

Selenium Remote Control (RC)

28 / 55Automação de Testes Funcionais - Selenium

Page 56: Automação de Teste Funcionais - Selenium

Selenium Remote Control (RC)

28 / 56Automação de Testes Funcionais - Selenium

Nos permite escrever testes automatizados em várias linguagens:

(Java,

.NET,

Perl,

Python,

Ruby,

PHP)

Selenium Remote Control fornece um servidor Selenium que pode automaticamente iniciar/finalizar/controlar, qualquer browser suportado

O servidor Selenium se comunica diretamente com o browser através de AJAX

O servidor selenium atua como um cliente proxy HTTP configurado, situando-se entre o browser o o seu site.

Page 57: Automação de Teste Funcionais - Selenium

Selenium Remote Control (RC)

28 / 57Automação de Testes Funcionais - Selenium

Page 58: Automação de Teste Funcionais - Selenium

Selenium Grid

28 / 58Automação de Testes Funcionais - Selenium

Page 59: Automação de Teste Funcionais - Selenium

Selenium Grid

28 / 59Automação de Testes Funcionais - Selenium

Executa os testes em múltiplas máquinas em paralelo

Resolve o grande problema do Selenium: Velocidade

Suporta EC2

Page 60: Automação de Teste Funcionais - Selenium

Selenium Grid

28 / 60Automação de Testes Funcionais - Selenium

”...Google has over 50 teams running over 51K tests per day on an internal Selenium Farm. 96% of these tests are handled by

Selenium RC and the Farm machines...”

http://raibledesigns.com/rd/entry/last_night_s_selenium_users

Page 61: Automação de Teste Funcionais - Selenium

Resumo da ‘opera’

28 / 61Automação de Testes Funcionais - Selenium

ou

Page 62: Automação de Teste Funcionais - Selenium

Exemplo de um teste em Java

28 / 62Automação de Testes Funcionais - Selenium

Page 63: Automação de Teste Funcionais - Selenium

Exemplo de um teste em Java

28 / 63Automação de Testes Funcionais - Selenium

Page 64: Automação de Teste Funcionais - Selenium

Referências[Beizer, 1990] - Beizer, B., "Software Testing Techniques", 2ª ed., New York: Van Nostrand Reinhold

Company, 1990.

[BSTQB] -http://www.bstqb.org.br/uploads/docs/syllabus_2007br.pdf

[Molinari, 2008] - Molinari, Leonardo “Testes Funcionais de Software", Florianópolis: Visual Books, 2008

[Myers, 1979] - Myers, G. J. "The Art of Software Test“.iley, New York, 1979.

[Pressman, 2002] - Pressman, R. S. "Engenharia de Software", 5 ed., Rio de Janeiro: Mc Graw Hill, 2002.

NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm

ImproveIt - http://www.improveit.com.br/xp/praticas/tdd

Caelum - http://blog.caelum.com.br/2006/09/08/voce-acredita-no-seu-codigo/

Fragmental - Shoes - http://blog.fragmental.com.br/2007/10/31/programadoresprofissionais-escrevem-testes-ponto-

final/

Marcos Pereira – http://marcospereira.wordpress.com/2007/11/27/desenvolvedoresodeiam-testar

Wikipedia – http://en.wikipedia.org/wiki/Test-driven_development

TDD - http://www.testdriven.com

Brod - http://www.brod.com.br

java.net - http://wiki.java.net/bin/view/People/SmellsToRefactorings

Palestra Desenvolvimento Guiado por Testes (TDD) – Guilherme Chapiewski

28 / 64Automação de Testes Funcionais - Selenium

Page 65: Automação de Teste Funcionais - Selenium

ReferênciasChef

http://galen-frysinger.com/cooking.htm

Zafira test

http://www.erdgasfahren.ch/50.html

Casal

http://www.lovepicturesoflove.net/love_picture_kissing_young_couple_teo.htm

Casa

http://www.nwvhfh.org/toc.htm

Prova

http://www.es.gov.br/site/noticias/show.aspx?noticiaId=99669869

Roupa

http://picasaweb.google.com/marlonequel/NEVE#5205792741253417650

Test drive http://speedcal.blogspot.com/2007_11_01_archive.html

Cerveja http://picasaweb.google.com/lh/view?q=provando&uname=marlonequel&psc=G&filter=1#5278697008293467122

Teste de sangue

http://pilandia.blogspot.com/2008/02/yellow-fever.html

Brinquedo

http://picasaweb.google.com/kendramail/CapeMayVisit2007#5109712086583443938

Orquestra

http://www.hardbrassmedia.com/about.html

Newton

http://www.geocities.com/CapeCanaveral/Hangar/6777/newton.html

Tela azul

http://www.frontlevel.com/art/

Source: - F.O.X.: http://www.flickr.com/photos/kv/499219/

28 / 65Automação de Testes Funcionais - Selenium

Page 66: Automação de Teste Funcionais - Selenium

28 / 66Automação de Testes Funcionais - Selenium

Dúvidas ?