Automação de Teste Funcionais - Selenium

Preview:

DESCRIPTION

Automação de Teste Funcionais - Selenium

Citation preview

Automação de Testes Funcionais - Selenium

Israel Santiago, PMP

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

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

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]

Por que Testar ?

Automação de Testes Funcionais - Selenium5 / 28

Testando a refeição

Por que Testar ?

Automação de Testes Funcionais - Selenium6 / 28

Testando a nova casa

Por que Testar ?

Automação de Testes Funcionais - Selenium7 / 28

Testando os conhecimentos

Por que Testar ?

Automação de Testes Funcionais - Selenium8 / 28

Testando a nova roupa

Por que Testar ?

Automação de Testes Funcionais - Selenium9 / 28

Teste de colisão

Por que Testar ?

Automação de Testes Funcionais - Selenium10 / 28

Testando a paixão

Por que Testar ?

Automação de Testes Funcionais - Selenium11 / 28

Testando a gravidade

Por que Testar ?

Automação de Testes Funcionais - Selenium12 / 28

Testando a cerveja Belga

Por que Testar ?

Automação de Testes Funcionais - Selenium13 / 28

Testando a orquestra

Por que Testar ?

Automação de Testes Funcionais - Selenium14 / 28

Testando o futuro carro

Por que Testar ?

Automação de Testes Funcionais - Selenium15 / 28

Testando o novo brinquedo

Por que Testar ?

Automação de Testes Funcionais - Selenium16 / 28

Testar faz parte docotidiano

Como você se garante ?

Automação de Testes Funcionais - Selenium17 / 28

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

Automação de Testes Funcionais - Selenium19 / 28

Por que Testar ?

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

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

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

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

Automação de Testes Funcionais - Selenium24 / 28

Por que Testar - Casos Portal de notícias ClicRBS

Desafios do Teste de Software Manual

Automação de Testes Funcionais - Selenium25 / 28

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"

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.

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"

Forte dependência da estabilidade da interface gráfica

As ferramentas não são infalíveis

Automação de Testes Funcionais - Selenium29 / 28

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

Automação de Testes Funcionais - Selenium30 / 28

Testes manuais X Automação de testes

Automação de Testes Funcionais - Selenium31 / 28

Testes manuais X Automação de testes

Automação de Testes Funcionais - Selenium32 / 28

Testes candidatos (recomendados)

Automação de Testes Funcionais - Selenium33 / 28

Testes candidatos (não recomendados)

Automação de Testes Funcionais - Selenium34 / 28

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

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

Fornecedores comerciais mais importantes

Automação de Testes Funcionais - Selenium37 / 28

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

Fornecedores comerciais mais importantes

Automação de Testes Funcionais - Selenium38 / 28

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)

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)]

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

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

Automação de Testes Funcionais com o Selenium

Automação de Testes Funcionais - Selenium43 / 28

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

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

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:

Por que este nome ?

Automação de Testes Funcionais - Selenium47 / 28

Por que este nome ?

Automação de Testes Funcionais - Selenium48 / 28

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

Selenium IDE

28 / 50Automação de Testes 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

Alguns comandos ‘Selenese’

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

‘Locators’ de elementos

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

Como o Selenium funciona

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

Selenium Remote Control (RC)

28 / 55Automação de Testes 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.

Selenium Remote Control (RC)

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

Selenium Grid

28 / 58Automação de Testes 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

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

Resumo da ‘opera’

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

ou

Exemplo de um teste em Java

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

Exemplo de um teste em Java

28 / 63Automação de Testes 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

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

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

Dúvidas ?

Recommended