
BLOG
¿Qué es el testing de software?
El testing en programación es una herramienta que se utiliza para validar el correcto funcionamiento de las distintas partes que contiene una aplicación y puede ayudar a localizar posibles errores en esta.
Por qué utilizar tests
- Nos ayuda a asegurarnos de que al realizar un cambio en un componente de nuestro proyecto, este sigue funcionando correctamente.
- Disminuyen los riesgos de cometer errores.
- Ayuda a la hora de encontrar problemas y errores.
- Mejora los tiempos a la hora de realizar subidas a producción, ya que las pruebas manuales se reducen o eliminan completamente.
Tipos de tests más comunes
Test unitarios
Los tests unitarios se encargan de validar el correcto funcionamiento de un componente de nuestra aplicación, como por ejemplo una función o un método de una clase.
Este tipo de tests son los que más podemos encontrar en un proyecto, ya que es el tipo de test más rápido y solo abarcan un caso de uso.
Mocks en test unitarios
Mockear una interacción o mocks significa crear una versión falsa de un servicio externo o interno y que pueda sustituir al real para ayudar a que las pruebas se ejecuten más rápidamente.
Pueden aparecer casos en los que al realizar un test unitario, estemos testando una funcionalidad que se conecte a una base de datos, API externa, etc. Esto puede ralentizar nuestros tests por lo que se recomienda en estos casos mockear esta interacción.
Por ejemplo, para ahorrarnos la conexión a una base de datos, podemos crear datos de prueba en un archivo con formato JSON y que nuestro método o función a testar interactúe con estos en vez de con la información de una base de datos.
Test de integración
Este tipo de tests se encargan de validar la integración con elementos externos a nuestra aplicación (bases de datos, APIs...) por lo que no se deberÃa mockear esta interacción.
En este caso, si por ejemplo queremos hacer pruebas con elementos que interactúen con la base de datos y para no comprometer los datos de la base de datos real, podemos crear una base de datos de prueba con la misma estructura que la original y generar datos o replicar datos de producción para confirmar su correcto funcionamiento.
Es recomendable crear al menos uno de estos tests para cada elemento externo que interactúe con nuestra aplicación.
Un ejemplo puede ser testar un método que se encargue de la creación de un usuario.
Test de aceptación
Los tests de aceptación son los que se encargan de testar un proceso completo en nuestra aplicación. Por ejemplo, en el caso de tener un formulario de contacto, el test deberÃa emular desde el punto en el que accedemos a la página de contacto, rellenamos los datos, los enviamos y realiza los pasos que podrÃan ser guardar la información en la base de datos y devolver la respuesta esperada al finalizar la acción.
Ya que estos tests deben emular esta iteración, lo ideal será que utilicemos la infraestructura más real y cercana posible a nuestro entorno de producción como conexiones a bases a datos, etc. Debemos tener en cuenta también las versiones de librerÃas y del lenguaje de programación.
Para mejorar su velocidad debemos evitar todas las dependencias que no necesitemos y si por ejemplo tenemos que comunicarnos con una API externa, tal vez puede ser mejor opción crear un entorno similar para evitar que un test falle porque esa API no esté funcionando en ese momento.
Este tipo de test tienen un tiempo de ejecución mucho más elevado que los demás tests, ya que cubren el flujo completo de la aplicación, por lo que se recomienda utilizar este tipo de tests para funcionalidades más crÃticas de nuestra aplicación.
Ejemplo de funcionalidad crÃtica vs. funcionalidad estándar
Para ver un ejemplo y clarificar donde podrÃamos usar estos tests, vamos a fijarnos en YouTube. Para mà una funcionalidad crÃtica puede ser que se pueda visualizar un vÃdeo sin problemas al acceder a él, ya que cuando se reproduce un vÃdeo se muestra la publicidad que es una de las partes por las que genera ingresos YouTube. Por lo tanto, serÃa interesante que al realizar una modificación en esta funcionalidad, tuviera un test de aceptación.
Por el contrario, una funcionalidad más estándar podrÃan ser los botones me gusta y no me gusta. En este caso, no serÃa crÃtico que estos botones no funcionasen hasta que se resolviera el problema.
Conclusiones
Los tests nos pueden salvar de más de un quebradero de cabeza y si además nos lo curramos para que sean los más claros posibles, se pueden convertir en una documentación adicional de nuestra aplicación, por lo que te recomiendo que los uses en todos tus proyectos 💪.

BLOG
GuÃa para aprender a trabajar con Web APIs
Hola 👋. He tardado un poquito más de lo que esperaba, pero ya está aquÃ. Por fin he terminado el libro que tantas ganas tenÃa de publicar, no si antes pasar por el covid y por unas semanas de mucho estrés por el trabajo 😅.
Si quieres saltarte el resto del post, te dejo el enlace para descargarla directamente 👇.
Gracias si sigues aquà :). La idea de crear este libro se me ocurrió mientras trabajaba en la serie de tutoriales para construir una API con FastAPI. TenÃa la sensación de que muchos términos podÃan verse confusos o no ser muy claros para las personas que están empezando, asà que me dije "¿Por qué no hacer un tocho post explicando estas cositas para que todo el que esté empezando tenga una buena base?".
Y lo que empezó como un tocho post se me fue de las manos y ha acabado convirtiéndose en un libro de más de 50 páginas 🙀.
En este libro no solo vamos a hablar de APIs, sino que vamos a ver todas las partes implicadas como la URL, el protocolo HTTP, el funcionamiento del ciclo desde que realizamos una petición hasta la respuesta, algo de arquitectura REST y al final aprenderemos como construir nuestra propia API.
No importa si eres Frontend, Backend o Fullstack, ya que entender todo el ciclo y su construcción te ayudará sea cual sea tu posición.
Y dicho esto, aquà os dejo en enlace para que lo descarguéis, si quieres darme feedback sobre la guÃa puedes escribirme en la caja de comentarios aquà abajo y mis MD en Twitter están abiertos 👇.
ACTUALIZACIÓN
Gracias al feedback recibido, he actualizado la guÃa a la versión 1.1. Las nuevas mejoras son:
- Explicación del uso de hipermedios.
- Singular o plural a la hora de nombrar nuestros recursos.
- JerarquÃa en la URI.
- Explicar el funcionamiento del cliente CURL.
- Actualización de la construcción de nuestra API para utilizar una API real.
- Página del autor.
Versión 1.2
- Redefinición del concepto de API.
- Ejemplo de API que no es un Web Service.
- Actualización de links de Twitter.

BLOG
¿Valen la pena los cursos de Platzi en 2022?
👋 ¡Hola! En este post vamos a salir un poco de la dinámica de tutoriales y os quiero hablar de mi experiencia con los cursos que he realizado en Platzi durante tres años y si valen la pena los cursos de Platzi en 2022.

BLOG
¡Cosasdedevs cumple un año! 🎉
Como dice el título, cosasdedevs cumple un año y para celebrarlo quiero contar un poquito como empezó este proyecto, como ha ido creciendo durante este año y hacia a donde avanzará próximamente 🚀.

BLOG
Cómo conseguir trabajo en casa en 2020
¡Hola! En el post de hoy quiero hablar de como conseguir trabajo en casa. Llevo trabajando unos meses desde casa por la pandemia, primero en Madrid hasta que se reestableció la movilidad y ahora en mi pueblo. Y aunque no es definitivo, por ahora parece que vamos a seguir teletrabajando dada la situación actual.
Desde que estoy aquÃ, son varias las personas que me han preguntado a que me dedico o como he conseguido trabajar desde casa y eso me ha dado la idea para este post 💡.
Los que ya conozcan el blog sabrán a que me dedico pero si es la primera vez que estás aquà puede que no tengas ni idea asà que os lo voy a contar, el trabajo que realizo desde casa y que tú también puedes hacer si te preparas es el de programación.
Situación de la programación en 2020
La situación de los puestos de trabajo relacionados con la programación sigue en auge incluso con la pandemia, solo hay que visitar páginas como LinkedIn, tecnoempleo o infojobs para verificar la alta demanda de estos puestos. Es uno de los pocos empleos que tiene desempleo negativo; eso quiere decir que actualmente hay más oferta que demanda, lo que también ayuda a que los salarios sean más altos.
Porqué estudiar programación
¿Por qué estudiar programación? Buena pregunta ¿Eh? Te voy a dar unas cuantas razones para intentar convencerte 💪.
- Estimula tu parte creativa. Parte del desarrollo se basa en resolver problemas, este trabajo estimulará la parte creativa de tu mente para llegar a solucionar ese tipo de problemas.
- Aprender a entender mejor el mundo que te rodea. Actualmente estamos rodeados de tecnologÃa pero no sabemos como funciona. Programar te acercará a ello.
- Pasas de consumidor a creador. Esta frase es muy potente para mà y la escuché en este vÃdeo, si os falta motivación os recomiendo que le echéis un vistazo. Al convertirte en programador podrás crear tus propias webs o aplicaciones ya sea para obtener más visibilidad como programador o para obtener beneficios e incluso quien sabe, crear la próxima aplicación que cambie el mundo.
- Multitud de ramas. Actualmente hay varios caminos dentro de la programación, puedes dirigir tu carrera hacia el diseño web, inteligencia artificial, Big Data, aplicaciones para móviles, juegos, etc.
Como conseguir trabajo en programación en casa
Actualmente puedes tomar varios caminos para conseguir trabajo como programador desde casa, estos son:
- Como freelancer: En este caso puedes trabajar como autónomo realizando desarrollos desde casa. Ten en cuenta que en este caso tienes que tener reuniones con clientes, tener un buen PC para tus desarrollos y saber calcular bien un presupuesto.
- Creando una flota de webs: Si encuentras nichos de mercados puedes crear webs que generen beneficios a partir de la publicidad que alojen tus sitios web o trabajando con programas de afiliación como el de Amazon, Ebay, Aliexpress...
- Trabajar para una empresa: Actualmente y debido a la pandemia, muchas son las empresas que están implementando el teletrabajo. Solo hay que echar un vistazo por las principales webs de empleo para encontrar varios trabajos de programación 100% remoto.
¿Por dónde empiezo?
Hay varios caminos; FP, Universidad, cursos online, bootcamps, etc. Por mi experiencia yo recomendarÃa los cursos online o un bootcamp. Yo realicé el grado superior de desarrollo de aplicaciones informáticas pero por lo menos en mi comunidad todo estaba bastante desactualizado. También he tenido compañeros en otras comunidades de España y sus experiencias no han sido mejores a la mÃa.
También está la opción de ir a la universidad pero ahà ya sabes que mÃnimo te tomará unos 4 años.
En cuanto cursos online, hoy en dÃa hay un montón de información en YouTube y en algunas plataformas. Si queréis empezar de forma gratuita os recomiendo el curso de programación básica de platzi, es una plataforma que tiene una gran cantidad de cursos online y lo bueno es que el curso de introducción a la programación es totalmente gratuito.
Si os gusta y queréis seguir aprendiendo con esta plataforma tienen planes mensuales y anuales a muy buen precio. Si después de realizar el curso gratuito os convence esta plataforma y queréis realizar una subscripción anual, podéis usar este link y tanto tú como yo obtendremos un mes adicional totalmente gratis.
También podéis acceder a un montón de cursos gratuitos desde Udemy, que es otra plataforma similar aunque en este caso solo existe la compra de cursos de forma individual.
Si después de realizar estos cursos os sigue picando el gusanillo de la programación os recomiendo la ruta de aprendizaje de Python que he creado en esta web totalmente gratuita. Actualmente Python es uno de los lenguajes más populares y con más demanda, a parte que está muy orientado al tema de inteligencia artificial y Big Data que es lo que más se está moviendo hoy en dÃa.
¡No esperes más!
¡Empieza ya, ahora es el momento! El trabajo en programación está en auge. Si tienes cualquier duda puedes consultarme a través de los comentarios o desde Twitter donde estaré encantado de ayudarte :)
Nos leemos 👋

Categorias
Sobre mi

👋 Soy Alberto, Back-end Developer con más de 12 años de experiencia en PHP, Python y TypeScript, aunque también disfruto del desarrollo Front-end. He realizado proyectos con Svelte y actualmente estoy aprendiendo React y Next.js.