View
22.678
Download
1
Category
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