Testing

Pruebas durante el desarrollo de aplicaciones web

1. Pruebas Unitarias

  • Descripción: Son pruebas que se centran en evaluar unidades individuales de código, como funciones o métodos, de manera aislada. El objetivo es asegurarse de que cada parte pequeña del sistema funcione como se espera.

  • Ejemplo: Verificar que una función de suma devuelva el resultado correcto cuando se le pasan dos números.

  • Ventaja: Al probar cada unidad por separado, puedes detectar errores desde el inicio, lo que facilita la identificación y resolución de problemas específicos.

  • Herramientas comunes: Jest, Mocha, Jasmine.

2. Pruebas de Integración

  • Descripción: Evalúan cómo interactúan diferentes unidades de código entre sí. Aseguran que los módulos o componentes funcionen correctamente juntos.

  • Ejemplo: Probar una función que depende de otra función para obtener datos y procesarlos; ambas funciones deben integrarse y funcionar correctamente en conjunto.

  • Ventaja: Permiten detectar problemas en las interacciones entre componentes que podrían pasar desapercibidos en las pruebas unitarias.

  • Herramientas comunes: Jest (con setup para integración), Cypress, Supertest.

3. Pruebas Funcionales (o de Sistema)

  • Descripción: Evalúan el sistema completo para asegurarse de que cumple con los requisitos funcionales, es decir, que hace lo que el usuario espera.

  • Ejemplo: Probar que un usuario puede iniciar sesión correctamente en el sistema.

  • Ventaja: Permiten verificar si el sistema se comporta según lo especificado en los requisitos. Estas pruebas ayudan a evaluar el sistema en su conjunto.

  • Herramientas comunes: Selenium, Cypress.

4. Pruebas de Aceptación del Usuario (UAT)

  • Descripción: Simulan el uso del software desde el punto de vista del usuario final. Normalmente se realizan antes de lanzar el producto y a menudo son realizadas por usuarios o testers externos.

  • Ejemplo: Probar que un usuario puede navegar por la tienda, seleccionar productos y completar la compra sin problemas.

  • Ventaja: Aseguran que el sistema esté listo para su uso real, validando que cumple con las expectativas y necesidades de los usuarios.

  • Herramientas comunes: No suelen necesitar herramientas específicas, ya que los usuarios prueban el sistema directamente; sin embargo, pueden incluir herramientas como TestRail para el seguimiento de pruebas.

5. Pruebas de Regresión

  • Descripción: Aseguran que las nuevas funcionalidades o cambios no rompan las funcionalidades existentes del sistema.

  • Ejemplo: Ejecutar todas las pruebas previas al agregar una nueva función de búsqueda en una tienda en línea para verificar que no afecte las funciones anteriores.

  • Ventaja: Ayudan a evitar que se introduzcan errores en el código existente cuando se realizan cambios.

  • Herramientas comunes: Generalmente son pruebas automatizadas y pueden ejecutarse con herramientas como Selenium, Cypress o Jest.

6. Pruebas de Rendimiento (Performance Testing)

  • Descripción: Miden cómo funciona el sistema bajo ciertas cargas y condiciones. Evalúan el tiempo de respuesta, el uso de memoria y el consumo de recursos, entre otros aspectos.

  • Ejemplo: Evaluar el tiempo de carga de la página principal cuando muchos usuarios acceden simultáneamente.

  • Ventaja: Ayudan a identificar cuellos de botella y a garantizar que el sistema mantenga el rendimiento esperado bajo diferentes condiciones.

  • Herramientas comunes: JMeter, Gatling, Apache Benchmark.

7. Pruebas de Seguridad

  • Descripción: Se enfocan en detectar vulnerabilidades o posibles amenazas de seguridad en el sistema. Incluyen la evaluación de autenticación, autorización y protección de datos.

  • Ejemplo: Probar que un usuario no autenticado no pueda acceder a áreas restringidas del sistema.

  • Ventaja: Ayudan a proteger el sistema de ataques y a asegurar la integridad de los datos.

  • Herramientas comunes: OWASP ZAP, Burp Suite.

Diferencias Principales

Tipo de PruebaEnfoqueEjecuciónHerramientas

Unitaria

Funciones/Métodos

Desarrollo

Jest, Mocha

Integración

Módulos/Componentes

Desarrollo

Cypress, Jest

Funcional

Sistema completo

Desarrollo

Playwright

Aceptación (UAT)

Usuario final

Preproducción

TestRail

Regresión

Código existente

Desarrollo

Cypress

Rendimiento

Carga y Escalabilidad

Testing en red

JMeter

Seguridad

Vulnerabilidades

Desarrollo

OWASP ZAP

Estas pruebas son esenciales en diferentes etapas del ciclo de desarrollo, ya que ayudan a asegurar que el software sea confiable, eficiente y seguro.

Last updated