Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Palestra TDD - TDC - 2016

109 views

Published on

Palestra de TDD apresentado no TDC POA 2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

Palestra TDD - TDC - 2016

  1. 1. TDD Automatizando Testes com Java TDC - POA - 2016
  2. 2. Bruno Maomeh Um grande aficionado pelo conhecimento, admirador do desenvolvimento de software e metodologias ágeis. Trabalhando por mais de 9 anos com desenvolvimento, eu também sou entusiasta por comunidades de desenvolvimento de sistemas, atuando como coordenador do Grupo de Usuários Java do Rio Grande do Sul (RSJug) e do JavaSF International Group (JavaSF).
  3. 3. O que é um teste?
  4. 4. O que é um teste? Um teste é tudo aquilo que assegura que alguma coisa está funcionando.
  5. 5. O que é um teste? "Afirma-se que o teste de software é um processo, ou uma série de processos, projetado para se certificar a respeito do código de computador, de fazer o que foi designado a cumprir, e sem realizar nada que não seja intencional.” (Myers - 2004)
  6. 6. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  7. 7. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  8. 8. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  9. 9. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  10. 10. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  11. 11. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  12. 12. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  13. 13. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  14. 14. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  15. 15. Testes Manuais Fazer testes manuais É LENTO!! Uma hora você vai esquecer ou errar algum passo!!
  16. 16. Testes automatizados
  17. 17. Testes automatizados
  18. 18. Tipos de testes Teste de unidade Teste de integração Teste de aceitação Teste de segurança Teste de performance Teste de configuração Teste de regressão
  19. 19. Tipos de testes Teste de unidade Teste de integração Teste de aceitação Teste de segurança Teste de performance Teste de configuração Teste de regressão
  20. 20. Teste de Unidade
  21. 21. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  22. 22. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do
  23. 23. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  24. 24. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  25. 25. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  26. 26. NÃO é Teste de Unidade Se ele conversa com o banco de dados; Se ele se comunica através da rede; Se ele toca o sistema de arquivos; Se ele não pode ser executado ao mesmo tempo de outros testes de unidade; Se for necessário configurar ou preparar o ambiente
  27. 27. Teste de Integração
  28. 28. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  29. 29. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  30. 30. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api;
  31. 31. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  32. 32. Teste de Aceitação
  33. 33. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  34. 34. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário
  35. 35. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  36. 36. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário
  37. 37. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  38. 38. Testes automatizados
  39. 39. Qual tipo de teste usar? Em regras gerais (isso não é uma estatística, apenas referência)
  40. 40. O que é TDD?
  41. 41. O que é TDD? TDD é uma prática de desenvolvimento de software onde todo o código do sistema é escrito depois de escrever testes automatizados. "We never have enough time for testing, so let's just write the test first." (Kent Beck)
  42. 42. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  43. 43. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  44. 44. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  45. 45. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  46. 46. O que é TDD? Muito além de técnicas de "test-first" Auxilia na detecção de falhas no design do sistema. Também deve ter informações sobre o código testado. Se um teste está ficando muito complicado, é um grande indício que exista problema com o design. É hora de refatorar!!
  47. 47. @brunomaomeh brunomaomeh@gmail.com https://github.com/brunomaomeh https://slideshare.net/brunomaomeh https://linkedin.com/in/brunomaomeh
  48. 48. Obrigado e

×