Testing y Debugging en Python
Testing y Debugging en Python
python
Una introducción
“Program testing can be used to show the
presence of bugs, but never to show their
absence!”
― Edsger W. Dijkstra
Nosotros creemos que el programa hace algo (o queremos que haga algo)
En programación, una prueba unitaria es una La idea es que cada parte del código se pueda
forma de comprobar el correcto funcionamiento testear y no que se testee el programa final. Es
de una unidad de código. Por ejemplo en para poder localizar mejor donde esta el error si
diseño estructurado o en diseño funcional una es que existe.
función o un procedimiento, en
diseño orientado a objetos una clase.
max_min con unittest
Vimos que al principio del resultado aparece Otra forma de ejecutarlo como agregamos el main en
una “F” y un “.” esto nos muestra que se el archivo
ejecutaron dos tests, uno exitoso y uno que
falló. $ python test_minmax.py
Más abajo nos muestra información sobre cual Si queremos mas información sobre los test
test falló. debemos escribir
https://docs.python.org/3/library/unittest.html
https://docs.hektorprofe.net/python/documentacion-y-pruebas/unittest/
https://youtu.be/AgwF37Cdwq8
Houston, tenemos un
problema
Y ahora … ¿Quien podrá ayudarnos?
Aquí hay un bug
Debugging is like being the detective in a crime movie where you are also the
murderer……. and may be the victim also.
1) Print
2) Thonny
3) Pdb
Debuging con print
Si presionamos al lado del botón play, (el bichito verde) se activa el modo
depuración.
Comenzar depuración
Ejecutar la lineq actual del programa
Entrar a la ejecución de la actual del programa
Salir de la ejecución de la función o bloque actual
Seguir ejecutando normalmente
Parar la ejecución
https://docs.python.org/3/library/pdb.html
Formas de utilizar pdb
La idea es recorrer el código paso a paso, para entender lo que está haciendo.
Podemos:
● imprimir el valor de cualquier expresión
○ p min_
○ p len(elems)
○ p elem > max_
● imprimir el código para ubicarnos
● entrar a una función
● hacer que el código se ejecute normalmente, pero que frene si pasa algo especial
● entrar a una consola interactiva
● Mucho más (ver help)
Algunos editores de código como spyder o pycharm hacen uso de sus interfaces
gráficas para mostrar valores de muchas variables a la vez, poner puntos de
interrupción con el mouse, etc.