Automacão de Testes Funcionais com Selenium

  • 4,849 views
Uploaded on

Slides da palestra sobre Automação de Testes Funcionais de Software com Selenium, apresentada no 3o encontro do grupo XPCE

Slides da palestra sobre Automação de Testes Funcionais de Software com Selenium, apresentada no 3o encontro do grupo XPCE

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,849
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Automação de Testes Funcionais de Software com Selenium 3 ° Encontro do grupo XPCE 24 de outubro de 2009 Palestrante: Fabrício Lemos
  • 2. Testes
    • Desempenho
    • Segurança
    • Stress
    • Unidade
    • Usabilidade e Interface com o Usuário
    • Configuração
    • Integridade de Dados
    • Funcionais
  • 3. Testes Funcionais Verificam o correto funcionamento do sistema, em cenários específicos , através da simulação da interação deste com o usuário
  • 4. Testes Funcionais
    • São testes caixa preta
    • Testa a interação entre todos os componentes e camadas do sistema
      • Da GUI até o acesso a dados
    • Testa a interação do sistema com componentes externos
    • Servidor de Aplicação, Banco de Dados, Navegador, Sistema de Arquivos, etc...
  • 5. Aplicabilidade Todos os sistemas devem ter algum tipo de teste funcional
  • 6. Motivação
    • Seus testes não devem ser limitados aos testes de unidade
    • A interação entre os componentes e destes com o usuário deve ser testada
    • Maior facilidade em alcançar boa cobertura de testes
    • É abstraído de detalhes de implementação do sistema
    • São a melhor maneira de medir o progresso do projeto
  • 7. Automação de Testes Funcionais
    • A execução é muito mais rápida do que testes manuais
    • Permitem a realização efetiva de testes de regressão
    • Rápido feedback para os desenvolvedores
    • Testes são repetíveis
    • Testes manuais são entediantes
  • 8. Selenium
    • É um conjunto de ferramentas para automação de testes para aplicações Web
    • Bastante flexível
    • Provê um vasto conjunto de comandos
      • Simulação do comportamento do usuário
      • Verificação do comportamento do sistema
    • Suporta diversos navegadores
    • Open-source
  • 9. Selenium-IDE
    • Ambiente integrado para a elaboração de casos de teste
    • Opera como uma extensão do Firefox
    • Grava os casos de testes a medida que o sistema é usado
    • Os casos de testes podem ser convertidos para um grande número de linguagens
  • 10. Selenium-IDE
  • 11. Selenium Remote Control
    • Permite executar os testes em outros navegadores que não o Firefox
    • Provê APIs para construção de testes para uma série de linguagens
      • Java, Ruby, HTML, Python, C#, Perl e PHP
    • Permite a elaboração e execução de testes dentro do mesmo ambiente de desenvolvimento da aplicação
  • 12. Comandos selenium .open( "/aplicacao/home.seam" ); selenium .type( "login:username" , "gavin" ); selenium .click( "login:login" ); selenium .waitForPageToLoad( "30000" ); selenium .isTextPresent( "Texto" );
  • 13. Teste do Login selenium .open( "/jboss-seam-hibernate/" ); selenium .type( "login:username" , "fabricio" ); selenium .type( "login:password" , "senha123" ); selenium .click( "login:login" ); selenium .waitForPageToLoad( "30000" ); boolean mensagemSucessoPresente = selenium .isTextPresent( "Welcome, fabricio" ); assertTrue (mensagemSucessoPresente);
  • 14. Page Objects
    • São abstrações das páginas do sistema
    • Encapsulam toda a interação do Selenium com as páginas
    • Provêm uma API de acesso às páginas
  • 15. Uso de Page Objects @Test public void testReserva() { hotelBooking .findHotels(); hotelBooking .viewFirstHotel(); hotelBooking .bookHotel(); hotelBooking .setDate( "25/11/2009" , "26/12/2009" ); hotelBooking .setCreditCard( "7777" , "Fabricio" ); hotelBooking .proceed(); hotelBooking .confirm(); assertTrue ( hotelBooking .isTextPresent( "your confimation number is 9" )); }
  • 16. Page Objects
    • Single Responsibility Principle
      • Page Objects não fazem nenhum assert
      • Testes não conhecem os detalhes de implementação da página
    • Facilita o reuso de elementos da página
    • Reduz o impacto das mudanças de GUI
  • 17. Desafios
    • Falta de cultura em automação de testes funcionais
    • Tempo elevado para rodar toda a suite de testes
    • Dependências entre as funcionalidades
    • Dependência de componentes externos à aplicação
  • 18. Pontos a Considerar
    • Quem implementará os casos de testes?
    • Como será a documentação dos casos de testes?
    • Com que frequência devo rodar a suite de testes?
    • Devo perseguir 100% de cobertura?
  • 19. "Raising the level of professionalism in our industry is a slow process. But it's inevitable. The bar is heavy, but we're lifting it." - Uncle Bob
  • 20. Dúvidas???
  • 21. Obrigado! Contato: http://www.fabriciolemos.org/blog