logo cosasdedevs

Artículos y tutoriales del mundo tech

Últimos artículos

¿Qué es el testing de software?

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 💪.

My Profile
Oct 05, 2022
1705 vistas

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 👇.

Descargar

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 👇.

Descargar

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

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 👋

My Profile
Ago 09, 2020
1567 vistas

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.

Saber más

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para recopilar y analizar datos sobre la interacción de los usuarios con cosasdedevs.com. Ver política de cookies.