Este documento presenta una charla sobre el desarrollo de aplicaciones web en Python con pruebas. La presentadora es Tati Al-Chueyr, ingeniera de software en Globo.com. La charla cubre conceptos como desarrollo guiado por pruebas, pruebas de comportamiento, y herramientas para pruebas como Lettuce, Splinter y Nose. También incluye ejemplos de cómo escribir pruebas para funciones de conversión de temperatura y respuestas a preguntas.
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
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
14. 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
15. ejemplo 1 – inventor dulce de leche
problema: tiene un programa de preguntas y respuestas, e debes implementar la
función
quien_fue_el_inventor_del_dulce_de_leche
que contesta la pregunta con la verdadeira
respuesta.
16. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
17. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
test_preguntas_y_respuestas.py
18. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
test_preguntas_y_respuestas.py
19. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
20. 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
21. ejemplo 1 – inventor dulce de leche
Moraleja del Ejemplo 1
La prueba no debe caberse al programa
El programa debe comprometerse con la
verdad
23. ejemplo 2 – pronóstico del tiempo
problema: la temperatura es originalmente en
farenheit y hay que convertela a grados
celcius
¿alguien recuerda la formula?
24. ejemplo 2 – pronóstico del tiempo
problema: la temperatura es originalmente en
farenheit y hay que convertela a grados
celcius
°F = °C x 9/5 + 32
°C = (°F - 32) x 5/9
25. ejemplo 2 – pronóstico del tiempo
°C = (°F - 32) x 5/9
utils_tiempo.py
2
¿esta listo? Respuestas
IZ
U
(a) 0
Q
(b) 0
(a) si (c) 0
(b) no
(c) quizas
26. ejemplo 2 – pronóstico del tiempo
°C = (°F - 32) x 5/9
utils_tiempo.py
2
¿esta listo? Respuestas
IZ
U
(a) 0
Q
(b) 0
(a) si (c) 0
(b) no
(c) quizas
27. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
fail
28. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
utils_tiempo.py
http://stackoverflow.com/questions/455612/python-limiting-floats-to-two-decimal-points
29. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
utils_tiempo.py
utils_tiempo.py
30. 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.
31. TDD Test Driven Development
1) Escribir pruebas que fallan
2) Escribir código para que pruebas pasen
33. 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
34. 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
41. 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
45. ¿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
49. 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