2. Agenda Introdução O que é Teste de Software Porquetestar Desafios O que é Automação de Testes Expectativas Engenheiro de Teste O quefaz um Engenheiro de Testes Qual o conhecimento necessário Fornecedores de Ferramentas de Teste Pagas Free/Open Source 2 / 28 Automação de Testes Funcionais - Selenium
3. Agenda TesteFuncional O que é TesteFuncional Tipos de falhasdetectá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
4. O que é Teste de Software: 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 é 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] 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] 4 / 28 Automação de Testes Funcionais - Selenium
20. PorqueTestar ? 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 melhorias nos 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 20 / 28 Automação de Testes Funcionais - Selenium
36. 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.
40. Morte de 30 pessoas23 / 28 Automação de Testes Funcionais - Selenium
41.
42. Desafios do Teste de Software Manual 25 / 28 Automação de Testes Funcionais - Selenium
43. O que é Automação de Testes "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 "LessonsLearned In Software Testing" 26 / 28 Automação de Testes Funcionais - Selenium
44. Falsas expectativas 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 o sistema? Testes automatizados é moleza. Basta gravar a digitação e os cliques do mouse e depois executar o script. Programador Aloprado Testador fora do contexto Gerente Sem-Noção 27 / 28 Automação de Testes Funcionais - Selenium
45. A ferramenta não é a solução de todos os problemas "UM TOLO COM UMA FERRAMENTA AINDA É UM TOLO" 28 / 28 Automação de Testes Funcionais - Selenium
46. Forte dependência da estabilidade da interface gráfica As ferramentas não são infalíveis 29 / 28 Automação de Testes Funcionais - Selenium
47. A automação de testes não exclui o fator humano Automação de Testes Funcionais - Selenium 30 / 28
48. Testes manuais X Automação de testes 31 / 28 Automação de Testes Funcionais - Selenium
49. Testes manuais X Automação de testes 32 / 28 Automação de Testes Funcionais - Selenium
52. 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 35 / 28 Automação de Testes Funcionais - Selenium
53. 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 36 / 28 Automação de Testes Funcionais - Selenium
54. Fornecedores comerciais mais importantes Fornecedores mais importantes segundo um estudo do ForresterResearch em 2008. 37 / 28 Automação de Testes Funcionais - Selenium
57. O que é Teste Funcional ? 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 TestingQualificationBoard)] O Teste Funcional procura, entre outras coisas, mostrar que os requisitos funcionais 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] 40 / 28 Automação de Testes Funcionais - Selenium
58. Tipos de Falhas Detectáveis 41 / 28 Automação de Testes Funcionais - Selenium 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
59. Casos de Testes para Testes Funcionais Os 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] 42 / 28 Automação de Testes Funcionais - Selenium
60. Automação de Testes Funcionais com o Selenium 43 / 28 Automação de Testes Funcionais - Selenium
61. O que é o Selenium http://seleniumhq.org 44 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
62.
63.
64. Por que este nome ? 48 / 28 Automação de Testes Funcionais - Selenium
65. Origem do Selenium A ThoughtWorksprecisava de umaferramentapatatestarumaaplicação de rastreamento de despesaspela 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). 49 / 28 INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB
66. Selenium IDE 28 / 50 Automação de Testes Funcionais - Selenium
78. SeleniumRemoteControl (RC) Nospermiteescrever testes automatizadosemváriaslinguagens: (Java, .NET, Perl, Python, Ruby, PHP) O servidor Selenium se comunicadiretamente com o browser através de AJAX O servidor selenium atuacomo um cliente proxy HTTP configurado, situando-se entre o browser o oseu site. Selenium Remote Control fornece um servidor Selenium quepodeautomaticamenteiniciar/finalizar/controlar, qualquer browser suportado 28 / 56 Automação de Testes Funcionais - Selenium
84. SeleniumGrid ”...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 28 / 60 Automação de Testes Funcionais - Selenium
85. Resumo da ‘opera’ ou 28 / 61 Automação de Testes Funcionais - Selenium
86. Exemplo de um teste em Java 28 / 62 Automação de Testes Funcionais - Selenium
87. Exemplo de um teste em Java 28 / 63 Automação de Testes Funcionais - Selenium
88. Referências [Beizer, 1990] - Beizer, B., "Software TestingTechniques", 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. "TheArtof 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 / 64 Automação de Testes Funcionais - Selenium
89. Referências Chef 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 / 65 Automação de Testes Funcionais - Selenium
Beck, K.; Test-Driven Development by Example; New York, NY: Addison-Wesley; 2003Mugridge R., Cunningham W.; Fit for Developing Software: Framework for Integrated Tests: Prentice Hall; 2005Fewster, M.; Graham, D.; Software Test Automation; Addison-Wesley; 1999Koskela, L; Test Driven: TDD and Acceptance TDD for Java Developers; Manning Publications; 2007Gold, Russel; Test-Driven Development: A J2EE Example; 2004Koomen, Tim; Pol, Martin; Test Process Improvement: A step-by-step guide to structured testing; ACM Press; 1999Black, Rex; Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional; 2007http://testobsessed.com/2008/04/29/agile-friendly-test-automation-toolsframeworks/http://testobsessed.com/2007/02/16/functional-test-tools-the-next-generation/http://testobsessed.com/2007/02/19/functional-test-tools-the-next-generation-part-2-of-2/