REVIT ARCHITECTURE (961) – PYTHON – Funciones (45) – Pruebas (1) 

Python,  es un lenguaje interpretado. Esto significa que el código fuente se analiza y ejecuta al mismo tiempo. En consecuencia, es posible que Python no tenga tiempo para analizar las líneas de código que no están sujetas a ejecución.

Es por este motivo que es tan importante pasar por todos los caminos de ejecución.

Error vs. depuración

La medida básica que un desarrollador puede usar contra los errores es un depurador, mientras que el proceso durante el cual se eliminan los errores del código se llama depuración.

Un depurador es un software especializado que puede controlar cómo se ejecuta tu programa. Usando el depurador, se puede ejecutar el código línea por línea, inspeccionar el estado de todas las variables y cambiar sus valores a demanda sin modificar el código fuente, detener la ejecución del programa cuando se cumplan o no ciertas condiciones, y realizar muchas otras tareas útiles.

Podemos decir que cada IDE está equipado con un depurador más o menos avanzado. Incluso IDLE tiene uno. Si se quiere utilizar el depurador integrado de IDLE, se debe activar usando la entrada «Depurar» en la barra de menú de la ventana principal de IDLE. Es el punto de partida para todas las funciones del depurador.

En el siguiente enlace se puede ver las capturas de pantalla que muestran el depurador de IDLE durante una sesión de depuración simple.

https://www.cs.uky.edu/~keen/help/debug-tutorial/debug.html

El depurador visualiza variables y valores de parámetros, y observar la pila de llamadas que muestra la cadena de invocaciones que llevan desde la función actualmente ejecutada hasta el nivel del intérprete.

Para saber más sobre el depurador de IDLE, se puede consultar la documentación de IDLE en el siguiente enlace:

https://docs.python.org/3/library/idle.html

Notas:

IDE significa Entorno de Desarrollo Integrado (Integrated Development Environment, en inglés). Es una aplicación que proporciona un conjunto de herramientas y funcionalidades para facilitar la programación de software. Un IDE normalmente incluye:

Editor de código: donde se escribe el código fuente.
Depurador: para encontrar y corregir errores (bugs) en el código.
Compilador o intérprete: para traducir el código fuente en un formato que la computadora pueda ejecutar.
Gestión de proyectos: para organizar archivos y dependencias.
Algunos IDEs populares son Visual Studio, IntelliJ IDEA, PyCharm, Eclipse y NetBeans.

IDLE significa Integrated Development and Learning Environment (Entorno de Desarrollo y Aprendizaje Integrado). Es el entorno de desarrollo que viene por defecto con Python, diseñado para facilitar la escritura y prueba de código Python. Ofrece las siguientes características:

Editor de código: para escribir scripts y programas.
Shell interactivo: donde puedes ejecutar código Python y ver resultados de inmediato.
Depurador básico: para detectar y corregir errores en el código.
Autocompletado: para facilitar la escritura de código.
IDLE es especialmente útil para principiantes debido a su simplicidad y accesibilidad.

Depuración con impresión

Este método de depuración, que se puede aplicar al código utilizando cualquier tipo de depurador, y a veces se llama depuración interactiva.

Sólo se necesita insertar varias llamadas adicionales a print() dentro del código para mostrar datos que ilustren el camino que el código está siguiendo actualmente. Se puede imprimir los valores de las variables que puedan afectar la ejecución.

Este tipo de depuración no es realmente interactivo, o solo cuando se ha de aplicar la función input() para detener o retrasar la ejecución del código.

Una vez que los errores han sido encontrados y eliminados, las impresiones adicionales pueden comentarse o eliminarse;  No se han de ejecutar en el código final, ya que pueden confundir tanto a los testers como a los usuarios, y traer malas consecuencias.

Consejos sencillos pero efectivos para encontrar los problemas de un código:

  • Utiliza la  Depuración con Pato de Gomapara hallar soluciones a los problemas de un código, en caso de que no consigas encontrar a una persona para explicar el funcionamiento de tu código (hablar con alguien activa zonas de tu cerebro que permanecen inactivas cuando está realizando el código).

©wikipedia

  • Intenta aislar el problema. Se puede extraer la parte de tu código que se sospecha es la responsable de tus problemas y ejecutarla por separado. Se puede comentar partes del código que ocultan el problema. Asignar valores concretos a las variables en lugar de leerlos desde la entrada. Probar las funciones aplicando valores de argumentos predecibles. Analizar el código cuidadosamente. Se ha de leer el código en voz alta.
  • Si el error ha aparecido recientemente y no se había mostrado antes, analizar todos los cambios que has introducido en el código; uno de ellos puede ser la causa.

Pruebas unitarias – un nivel superior de codificación

También existe una técnica de programación importante y ampliamente utilizada como son las pruebas unitarias. Éstas asumen que las pruebas son partes inseparables del código y que preparar los datos de prueba es una parte inseparable de la codificación. Esto significa que cuando escribes una función o un conjunto de funciones cooperativas, también estás obligado a crear un conjunto de datos para los cuales el comportamiento de tu código es predecible y conocido.

Además, debes equipar tu código con una interfaz que pueda ser utilizada por un entorno de pruebas automatizado. En este enfoque, cualquier modificación realizada en el código (incluso la menos significativa) debe ir acompañada de la ejecución de todas las pruebas unitarias relacionadas con tu código fuente.

Para estandarizar este enfoque y facilitar su aplicación, Python proporciona un módulo dedicado llamado unittest.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario