Curso Python. Volumen XIX: Framework Django. Parte XII

Escrito por Javier Ceballos Fernández

Bienvenidos un día más al curso de Python, en este capítulo vamos hacer una introducción a las pruebas automáticas que se pueden implementar con el framework Django. Estas pruebas automáticas nos ayudarán a asegurarnos que nuestra aplicación funciona de manera correcta. Así que pongámonos manos a la obra.

Introducción a la automatización de pruebas

Las pruebas (también son conocidas por “test”) son rutinas simples que comprueban el funcionamiento de nuestro código. Estas pruebas se pueden realizar a diferentes niveles del software. De modo que algunas pruebas se pueden centrar en un método en particular para comprobar que devuelve el valor esperado, mientras otras pruebas verifican el funcionamiento general del software, como puede ser una secuencia de entradas del usuario producen el resultado deseado.

Realmente, este procedimiento es muy parecido a lo que hicimos para probar al principio de estos capítulos sobre “Django” cuando, desde la consola de Python, comprobábamos el comportamiento de un método, o ejecutábamos la aplicación e insertábamos datos para comprobar cómo se comportaba.

Lo que diferencia a estas pruebas automáticas es que el trabajo de hacer las pruebas lo hace el sistema por nosotros. Por lo que tendremos que crear un conjunto de pruebas, y luego a medida que se hacen cambios a la aplicación, se puede comprobar que el código todavía funciona como estaba originalmente pensado, sin tener que emplear tiempo en hacer pruebas de manera manual.

Hay que decir que estas pruebas sólo las tendremos que definir una vez, y más adelante siempre podemos añadir nuevas pruebas o eliminar las que estén obsoletas.

¿Por qué es necesario tener pruebas (tests)?

Podríais pensar que ya tenéis suficiente con aprender Python y en este caso el framework “Django”, pero la verdad que si agregamos pruebas automatizadas a nuestra aplicación, nos ayudará a mantenerla mejor, ya que cada vez que mejoremos el código o agreguemos funcionalidad nos podremos asegurar de que nuestra aplicación siga funcionando. Quizás para todo aquel que su finalidad sea únicamente la de realizar este curso no le es tan útil aprender esto, pero todo aquel que quiera hacer aplicaciones tanto a nivel amateur como profesional le vendrá bien aprender a realizar estas pruebas automáticas.

Las pruebas nos ahorrarán tiempo

Hasta cierto punto, comprobar que todo parece funcionar es un test satisfactorio. En una aplicación más sofisticada, podríamos tener docenas de interacciones complejas entre componentes.

Un cambio en cualquiera de esos componentes podría tener consecuencias inesperadas en el comportamiento de la aplicación. Comprobar que todavía “parece funcionar” podría significar recorrer el funcionamiento del código con veinte variaciones diferentes de pruebas para estar seguros de que no se rompió nada. Y todo esto nos llevaría una gran inversión de tiempo.

Ahora bien, si usáramos pruebas automatizadas estas pruebas se podrían realizar en segundos lo que nos ayudaría a ahorrar tiempo, tiempo que podemos invertir en mejorar la aplicación. Además, si debido a los cambios realizados algo se rompió, estas pruebas también nos ayudarán a identificar donde se encuentra el error dentro del código para poder subsanarlo.

Esta tarea puede parecer que nos aparta de nuestro creativo trabajo de programación para dedicarnos al poco atractivo asunto de escribir pruebas, especialmente cuando sabemos que el código está funcionando correctamente. Sin embargo, realmente lo que estamos haciendo es ahorrar muchas horas de pruebas que estaríamos gastando tanto para verificar que sigue funcionando la aplicación como intentando identificar donde se encuentra el error.

Las pruebas no sólo identifican problemas, los previenen

Es un error pensar que las pruebas son un aspecto negativo del desarrollo.Sin pruebas, el propósito o comportamiento esperado de una aplicación podría ser poco claro. Incluso siendo código propio, algunas veces uno se encuentra tratando de adivinar qué es lo que hacía exactamente.Las pruebas cambian eso, ya que nos muestran el código desde dentro, y cuando algo va mal, muestran la parte que va mal, aunque no nos hayamos dado cuenta aún de que algo va mal.

Las pruebas hacen el código más atractivo

Podréis crear un software muy bueno, pero muchos desarrolladores pasarán de largo por el código si no ven que tiene ficheros de pruebas, ya que si no tienen pruebas automatizadas desconfiarán de que ese software funcione correctamente.El hecho de que otros desarrolladores quieran ver pruebas automatizadas en nuestro software, antes de ponerse a estudiarlo, es otra razón para empezar a escribir estas pruebas automatizadas.

Las pruebas ayudan a trabajar a un equipo

Hasta el momento os hemos hablado desde el punto de vista de un único desarrollador manteniendo la aplicación. Existen aplicaciones complejas que son mantenidas por equipos. Las pruebas garantizan que otros colegas no rompan nuestro código sin darse cuenta (y que nosotros no rompemos el de ellos sin saberlo). Si uno quiere vivir de la programación con “Django”, debe ser bueno escribiendo pruebas automáticas.

Estrategias de pruebas básicas

Existen varias maneras de aprender a escribir pruebas automáticas. Algunos programadores siguen una disciplina llamada “test-driven development” (desarrollo dirigido por tests); las pruebas se escriben antes de escribir el código. Puede parecer contra intuitivo, pero en realidad es similar a lo que la mayoría de la gente haría: describir un problema, luego crear el código que lo resuelve. “Test-driven development” simplemente formaliza el problema como un caso de prueba Python.

A menudo, alguien nuevo en pruebas va a crear código y más tarde va a decidir que debería tener algunas pruebas automáticas. Tal vez hubiera sido mejor escribir estas pruebas antes, pero nunca es tarde para empezar. A veces es difícil darse cuenta por dónde empezar a escribir las pruebas. Si uno escribió varias miles de líneas de Python, elegir qué hay que probar puede no ser fácil. En ese caso, es provechoso escribir la primera prueba automática la próxima vez que uno hace un cambio, ya sea una nueva funcionalidad o la corrección de error.

Esto es todo por hoy, os invitamos como siempre a que sigáis explorando este framework y probando. En el próximo capítulo seguiremos hablando de las pruebas automáticas y os enseñaremos cómo se implementan. Y para todos los que se acaban de incorporar indicarles que tenemos un índice con todos los capítulos del curso, ya que nunca es tarde para empezar.

Últimos análisis

Valoración RZ
10
Valoración RZ
8
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10
Valoración RZ
9
Valoración RZ
10
Valoración RZ
7
Valoración RZ
9