O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Esteroides JEE

882 visualizações

Publicada em

Palestra ministrada no Javaneiros 2009 (www.javaneiros.com.br) por Saulo Arruda e Jefferson Moreira falando sobre técnicas de testes de integração em ambientes JEE.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Esteroides JEE

  1. 1. Esteróides JEE Cuidando de softwares doentes
  2. 2. Apresentação Quem somos nós? • Jefferson Moreira (www.jeffmor.com) • Ciência da Computação / Engenharia de Software OO. • Desenvolvedor e Coordenador da Agence • Desenvolvedor desde 2002 • Com java desde 2003 • Instrutor do SENAC • Coordenador do JUGMS
  3. 3. Apresentação Quem somos nós? • Saulo Arruda (http://sauloarruda.eti.br) • Especialista em Melhoria do Processo de Software pela UFLA; • Diretor de TI da Agence Consultoria; • Diretor Pedagógico da Agence Educacional; • 10 anos de experiência em projetos de software; • Coordenador do JUG-MS
  4. 4. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 4
  5. 5. Diagnóstico Importância • Gerar software funcionando • Confiança no produto • Diagnosticar problemas • Qualidade do software • Redução de riscos 5
  6. 6. Diagnóstico Conceitos • Teste: é a atividade de executar um software com o objetivo de revelar falhas • Falha: desvio do comportamento especificado • Erro: origem da falha 6
  7. 7. Diagnóstico Conceitos • Validação – Estamos fazendo o sistema certo? – Ponto de vista do usuário 7
  8. 8. Diagnóstico Conceitos • Verificação – Estamos fazendo certo o sistema? – Ponto de vista do desenvolvedor 8
  9. 9. Diagnóstico Quando eu começo a testar? • Na fase inicial: especificação de requisitos 9
  10. 10. Diagnóstico Técnicas de Teste • Caixa Branca 10
  11. 11. Diagnóstico Técnicas de Teste • Caixa Preta 11
  12. 12. Diagnóstico Técnicas de Teste • Caixa-cinza • Regressão • Não funcionais – Desempenho – Carga – Usabilidade) 12
  13. 13. Diagnóstico Fases • Unitário – Evita bug com código mal feito – Confiança no sistema – Alterações sem medo – Testa a falha e o sucesso – Utilização de Mocks – Serve como métrica 13
  14. 14. Diagnóstico Fases • Integração – É essencial – Difícil de testar todas as situações. – Massa de Dados – Integração de serviços – Integração != Interface 14
  15. 15. Diagnóstico Fases • Funcional – Funcionalidades – Requisitos – Regra de Negócios – Tem tela, mas não é tela. 15
  16. 16. Diagnóstico Dificuldades do dia-a-dia 16
  17. 17. Diagnóstico 17
  18. 18. Diagnóstico Caso de Teste • Curto • Fácil de ler • Rápido de executar • Auto-explicativo • Redução de risco • Medir Qualidade 18
  19. 19. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 19
  20. 20. Tratamento “Comecem com esteróides” 20
  21. 21. Agenda Estudo de Caso • Aplicação JEE que usa EJB e JPA • Testes unitários e de integração (usando openejb) • Classes base utilitárias para implementação de testes de integração; • Uso de fixtures em arquivos XML; • Projeto de exemplo para uma folha de pagamento de desenvolvedores; 21
  22. 22. Ferramentas Ferramentas • JUnit • OpenEJ B • Maven 22
  23. 23. Tratamento 23
  24. 24. Agenda Agenda • Diagnóstico • Tratamento (Internação) • Alta 24
  25. 25. Alta Conclusão • Dificuldades com testes: – Massa de dados: resolvemos com a criação de fixtures. Temos projetos com mais de 10.000 registros inseridos por fixtures geradas. – Teste no container: openejb tem se mostrado uma boa solução, sendo muito mais leve para testes de integração que JBoss, Glassfish, etc. – Independência: usar um banco de 25
  26. 26. Alta Extensões futuras • Gerador de fixtures a partir de planilhas (estamos testando a versão beta); • Auto-teste a partir de condições pré- estabelecidas (versão alfa); • Integração com JUnitPerf para testes de performance; • Isto é um Pattern ou um Framework? 26
  27. 27. Dúvidas Perguntas? 27
  28. 28. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? 27
  29. 29. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ 27
  30. 30. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? 27
  31. 31. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! 27
  32. 32. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! • Vocês já usaram DBUnit? 27
  33. 33. Dúvidas Perguntas? • Vocês vão disponibilizar o código- fonte? – http://esteroides.agence.com.br/ • Posso colaborar com essa “idéia”? – Deve! Quanto mais melhor! • Vocês já usaram DBUnit? – Sim, é um saco! 27
  34. 34. 28

×