Padroes de Testes Automatizados com Django

1,002 views

Published on

Padroes de Testes Automatizados com Django

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,002
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for 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]

×