Your SlideShare is downloading. ×
Desarollando aplicaciones web en python con pruebas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desarollando aplicaciones web en python con pruebas

1,396
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,396
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
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. Desarollando aplicaciones web en python Tati Al-Chueyr @globocomPyConAr – 23 Septiembre de 2011, Junín
  • 2. Desarollando aplicaciones web en python con pruebas Tati Al-Chueyr @globocomPyConAr – 23 Septiembre de 2011, Junín
  • 3. __intro__
  • 4. tati.__doc__● ingeniera en informática (Unicamp)● analista desarrolladora G1 (globo.com)● alumna maestria en informática PUC-Rio● entusiasta de software libre desde 2002● contribución más importante: InVesalius● pythonista y miembro de APyB● en el tiempo libre, juga de desarollar con #android y/o #arduino
  • 5. tati.__file__
  • 6. globo.com● crea y mantiene las tecnologías web de Globo● 5 areas: noticias deportes entretenimiento tecnología videos● 10 + anõs● 400.000 ++ subscriptores● 250 + profesionales de tecnología● 25 + equipos scrum
  • 7. globo.com● 45 millones de visitas diarias● 1.800.000 visitas por hora● 32.000 accesos por minuto
  • 8. globo.com● 110 Gbps de banda● 12.000.000+ líneas de código en producción● 1.000 + servidores● 100.000.000 + de vídeos servidos / mes● 500 + terabytes de tráfico sólo durante la transmisión de la Copa del Mundo 2010
  • 9. __main__
  • 10. 1 IZ U ¿qué sabes acerca de pruebas?Q(a) siempre hago desarollo basado en pruebas(b) cuándo tengo tiempo, lo hago(c) alguién ha mencionado eso, pero no practico(d) a mi no me gusta, muy aburrido(e) no conosco nada acerca pruebas Respuestas (a) 5 (b) 15 (c) 3 (d) 1 (e) 8
  • 11. ejemplo 1 – inventor dulce de lecheproblema: tiene un programa de preguntas y respuestas, e debes implementar lafunciónquien_fue_el_inventor_del_dulce_de_lecheque contesta la pregunta con la verdadeirarespuesta.
  • 12. ejemplo 1 – inventor dulce de leche preguntas_y_respuestas.py
  • 13. ejemplo 1 – inventor dulce de leche preguntas_y_respuestas.py test_preguntas_y_respuestas.py
  • 14. ejemplo 1 – inventor dulce de leche preguntas_y_respuestas.py test_preguntas_y_respuestas.py
  • 15. ejemplo 1 – inventor dulce de leche preguntas_y_respuestas.py
  • 16. observación● A seguir... vamos utilizar el software DojoTools un semáforo adaptado con Arduino desarrollado por @turicas y @ tati_alchueyr para soporte a Coding Dojos● Se interesó por Arduino? Veja la charla “Robótica con Python y Arduino”, a las 15:30, con Álvaro Justen, en la sala 35
  • 17. ejemplo 1 – inventor dulce de leche Moraleja del Ejemplo 1 La prueba no debe caberse al programa El programa debe comprometerse con la verdad
  • 18. ejemplo 2 – pronóstico del tiempo
  • 19. ejemplo 2 – pronóstico del tiempoproblema: la temperatura es originalmente enfarenheit y hay que convertela a gradoscelcius ¿alguien recuerda la formula?
  • 20. ejemplo 2 – pronóstico del tiempoproblema: la temperatura es originalmente enfarenheit y hay que convertela a gradoscelcius °F = °C x 9/5 + 32 °C = (°F - 32) x 5/9
  • 21. ejemplo 2 – pronóstico del tiempo °C = (°F - 32) x 5/9 utils_tiempo.py 2 ¿esta listo? Respuestas IZ U (a) 0Q (b) 0 (a) si (c) 0 (b) no (c) quizas
  • 22. ejemplo 2 – pronóstico del tiempo °C = (°F - 32) x 5/9 utils_tiempo.py 2 ¿esta listo? Respuestas IZ U (a) 0Q (b) 0 (a) si (c) 0 (b) no (c) quizas
  • 23. ejemplo 2 – pronóstico del tiempo¿que pasa? test_utils_tiempo.py fail
  • 24. ejemplo 2 – pronóstico del tiempo¿que pasa? test_utils_tiempo.py utils_tiempo.pyhttp://stackoverflow.com/questions/455612/python-limiting-floats-to-two-decimal-points
  • 25. ejemplo 2 – pronóstico del tiempo¿que pasa?test_utils_tiempo.pyutils_tiempo.pyutils_tiempo.py
  • 26. ejemplo 2 – pronóstico del tiempo Moraleja del Ejemplo 2 Es importante pruebar los posibles casos de error de su función. Si la función realizar operaciones con números, pueden ser útiles: valor nulo, número negativo y valores flotantes.
  • 27. TDD Test Driven Development1) Escribir pruebas que fallan2) Escribir código para que pruebas pasen
  • 28. TDD – Test Driven Development
  • 29. TDD suena muy simple, ¿verdad?Entonces ¿por qué no todos lo hacen el 100% del tiempo?Es complicado ...● Los plazos● Gestión no técnica● Obligaciones concurrentes● La mala planificación / estimaciones● Algunos códigos no se prestan fácilmente a TDD● En algunos casos, TDD no tiene sentid
  • 30. Tests are vivos "Si usted hace su análisis correcto, usted nunca se encontrará con un escenario en el que la producción de pruebas no había previsto.● No pensar en ellos como algo que tiene que "hacer llegar"● Independientemente de cómo / cuando llegue la prueba de escritura de hecho, se los revisa de manera regular
  • 31. BDD – Behavior Driven Dev
  • 32. BDD – Behavior Driven Dev● pruebas que simulan lo que los usuarios hagan● pruebas de browser● más complejos que un test de una función
  • 33. Lettuce: Pythons cucumber● Behaviour driven development● http://lettuce.it
  • 34. BDD in Python with Lettuce
  • 35. BDD in Python with Lettuce
  • 36. BDD in Python with Lettuce
  • 37. Splinter: automatizar acciones web ● http://splinter.cobrateam.info ● interfaz limpia par hacer cosas in web ● puede ser usado para pruebas ● o para automatización de cosas en general
  • 38. Splinter: automatizar acciones web
  • 39. Splinter: automatizar acciones web
  • 40. Splinter: automatizar acciones web
  • 41. ¿como vender pruebas?Hay muchas cosas que pueden hacer el mal en las pruebas● El error más grande no es invertir tiempo para escribir la prueba● "El código no probado se rompe por el diseño"Cómo vender a su jefe?● Ahorro de dinero● Ahorro de tiempo de desarrollo ($$$)● Los desarrolladores más felices● Ahorro de tiempo en el control de calidad ($$$)● confianza
  • 42. más herramientasNose: pypi.python.org/pypi/noseCoverage: pypi.python.org/pypi/coverageMock: pypi.python.org/pypi/mockJenkins: http://jenkins-ci.org/
  • 43. 1 IZ U ¿qué sabes acerca de pruebas?Q(a) siempre hago desarollo basado en pruebas(b) cuándo tengo tiempo, lo hago(c) alguién ha mencionado eso, pero no practico(d) a mi no me gusta, muy aburrido(e) no conosco nada acerca pruebas Respuestas (a) 0 (b) 0 (c) 0 (d) 0 (e) 0
  • 44. ¿conoces python y django?¿quieres trabajar con nosotros?
  • 45. ¿dudas?muchas gracias!identi.ca: @tatialchueyr twitter: @tati_alchueyr http://tatialchueyr.com