Padrões de Testes Automatizados com Django Paulo Cheque [email_address] pythonsmalltalk.blospot.com Daniel Vainsencher  [e...
Teste de Qualidade <ul><li>Automático
Repetitível
Útil
Único
Preciso
Profissional </li></ul><ul><li>Legível e Claro
Simples
Independente
Isolado
Rápido </li></ul>
Boa Estratégia http://lisacrispin.com/downloads/Beautiful_Testing_ch15.pdf
Péssima Estratégia
Django MVC? MTV Model – Template – View Regras de Negócio? <ul><li>Models
Managers
Signals
Class Utilitárias Django FAQ:  </li></ul>https://docs.djangoproject.com/en/1.3/faq/general
Objetos Dublês <ul>***  Orientação a Objetos  *** http://code.google.com/p/mockito-python </ul>
Testes de Integração com o BD <ul><li>Bancos de Dados </li><ul><li>Compartilhados
Próximos SlideShares
Carregando em…5
×

Padroes de Testes Automatizados com Django

989 visualizações

Publicada em

Padroes de Testes Automatizados com Django

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
989
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Padroes de Testes Automatizados com Django

  1. 1. Padrões de Testes Automatizados com Django Paulo Cheque [email_address] pythonsmalltalk.blospot.com Daniel Vainsencher [email_address] 1 de outubro de 2011
  2. 2. Teste de Qualidade <ul><li>Automático
  3. 3. Repetitível
  4. 4. Útil
  5. 5. Único
  6. 6. Preciso
  7. 7. Profissional </li></ul><ul><li>Legível e Claro
  8. 8. Simples
  9. 9. Independente
  10. 10. Isolado
  11. 11. Rápido </li></ul>
  12. 12. Boa Estratégia http://lisacrispin.com/downloads/Beautiful_Testing_ch15.pdf
  13. 13. Péssima Estratégia
  14. 14. Django MVC? MTV Model – Template – View Regras de Negócio? <ul><li>Models
  15. 15. Managers
  16. 16. Signals
  17. 17. Class Utilitárias Django FAQ: </li></ul>https://docs.djangoproject.com/en/1.3/faq/general
  18. 18. Objetos Dublês <ul>*** Orientação a Objetos *** http://code.google.com/p/mockito-python </ul>
  19. 19. Testes de Integração com o BD <ul><li>Bancos de Dados </li><ul><li>Compartilhados
  20. 20. Locais
  21. 21. Em memória (temporário) </li></ul><li>Problemas: </li><ul><li>Dados estáticos
  22. 22. Dados compartilhados criam dependências entre os testes
  23. 23. Performance </li></ul></ul>
  24. 24. PostgreSQL <ul><li>Como fazer seus testes rodarem 10x mais rápido? (MySQL mode) </li><ul><li>fsync = off
  25. 25. synchronous_commit = off
  26. 26. shared_buffers 768MB
  27. 27. work_mem = 10MB
  28. 28. max_fsm_pages = 262144
  29. 29. effective_cache_size = 2GB </li></ul></ul>
  30. 30. Teste com Dados Estáticos
  31. 31. Dados Estáticos Isolados <ul><li>Arquivos SQL, YAML, XML etc </li></ul>
  32. 32. Teste com Dados Estáticos
  33. 33. Geração Dinâmica de Dados <ul><li>Django Dynamic Fixture http://code.google.com/p/django-dynamic-fixture </li></ul>
  34. 34. BD - Decorators <ul><li>@ignore_for_sqlite
  35. 35. @only_in_sqlserver
  36. 36. settings.DATABASES['default']['ENGINE']
  37. 37. @skipIfDBFeature (Django 1.3) </li></ul>
  38. 38. Testes Fumaça para as Views https://bitbucket.org/canassa
  39. 39. Desempenho <ul><li>Número de queries por view </li><ul><li>Django Tool Bar </li></ul></ul>http://pypi.python.org/pypi/django-debug-toolbar/0.8.3 <ul><li>Decorators: </li><ul><li>@print_performance
  40. 40. @trace
  41. 41. @print_number_of_queries_executed
  42. 42. @print_queries_executed
  43. 43. @profiler </li></ul><li>Funk Load: http://funkload.nuxeo.org </li></ul>
  44. 44. Continuous Testing TDaemon http://pypi.python.org/pypi/tdaemon Bazinga https://github.com/jbochi/bazinga pip install Bazinga $ manage.py test --with-bazinga
  45. 45. Citações “A próxima funcionalidade desenvolvida é a que o cliente mais precisa.” (CHEQUE, 2011) “Faz certo que dá certo.” (VAINSENCHER, 2011)
  46. 46. Estamos Contratando
  47. 47. .!? Paulo Cheque [email_address] pythonsmalltalk.blospot.com Daniel Vainsencher [email_address]

×