Title: Guia de la exposicion
Course: 2025 - LI - Pruebas de Software 3-1 y 3-2 > Section: Unidad 4 - Pruebas funcionales y de sistema

🎯 Objetivo de la exposición

Comprender cómo se aplican las pruebas funcionales y de sistema dentro del proceso de aseguramiento de calidad del software, analizando su importancia, tipos, herramientas y relación con la experiencia del usuario.

📘 Subtemas a desarrollar

Cada equipo deberá dividirse en los siguientes cinco subtemas, de modo que cada integrante explique uno con claridad y ejemplos.

🧠 1. Pruebas funcionales y de sistema (visión general)

Explica los conceptos base:

- ¿Qué son las pruebas funcionales y cómo se diferencian de las pruebas unitarias o de integración?
- ¿Qué son las pruebas de sistema y qué validan?
- ¿En qué etapa del ciclo de vida del software se aplican?
- ¿Qué papel tienen los requerimientos funcionales en el diseño de las pruebas?

Puntos clave a incluir:

- Las pruebas funcionales verifican que el sistema haga lo que debe hacer.
- Las pruebas de sistema se enfocan en validar el comportamiento completo del software integrado.
- Se basan en entradas, salidas y resultados esperados, no en el código interno.

Ejemplo sugerido:
Probar un sistema de registro: ingresar usuario, contraseña y verificar si el sistema permite o rechaza el acceso según los datos.

⚙️ 2. Validación de funcionalidades completas

Explica cómo las pruebas permiten asegurar que todo el sistema funcione correctamente de principio a fin.
Incluye:

- Qué significa “validar el flujo completo del sistema”.
- Cómo se construyen casos de prueba para validar procesos interconectados (por ejemplo, registro → inicio de sesión → compra → confirmación).
- La importancia de la trazabilidad de los requerimientos.
- Ejemplo de un escenario real completo validado con pruebas funcionales.

Ejemplo sugerido:
En una app de e-commerce: agregar un producto al carrito, realizar el pago y verificar que el pedido se registre correctamente.

👥 3. Pruebas desde la perspectiva del usuario

En este apartado deben enfocarse en la experiencia y expectativas del usuario final.
Explicar:

- Qué significa probar desde la perspectiva del usuario.
- Cómo se diseñan casos de prueba basados en la experiencia de uso.
- Importancia de entender el comportamiento del usuario real.
- Diferencia entre validar funcionalidad técnica y usabilidad o flujo lógico.

Ejemplo sugerido:
Evaluar si el proceso de registro de usuario es intuitivo, rápido y sin errores, más allá de si técnicamente funciona.

🖥️ 4. Pruebas de la interfaz gráfica (GUI)

Deben explicar qué son las pruebas GUI, cómo se realizan y qué herramientas existen para automatizarlas.
Incluye:

- Qué elementos se prueban en una interfaz gráfica (botones, formularios, menús, etc.).
- Qué buscan detectar (errores visuales, flujos incorrectos, botones que no funcionan).
- Herramientas comunes:
  - Selenium (multiplataforma, navegador real).
  - Cypress (rápido y moderno para aplicaciones web).
  - TestComplete (entorno profesional para GUI complejas).
- Ventajas y limitaciones de automatizar pruebas de interfaz.

Ejemplo sugerido:
Una prueba automatizada que verifica si un botón “Enviar” realmente ejecuta la acción esperada.

🌐 5. Pruebas basadas en comandos/API

Este tema aborda las pruebas que se realizan sin interfaz gráfica, directamente sobre las API o endpoints del sistema.
Deben explicar:

- Qué es una API (Application Programming Interface) y su rol en las aplicaciones modernas.
- Qué son las pruebas basadas en API o comandos.
- Qué herramientas se usan (por ejemplo, Postman, Newman, Insomnia, JMeter).
- Qué se valida: códigos de respuesta (200, 404, 500), tiempos de respuesta, autenticación, formato del JSON, etc.
- Cómo estas pruebas ayudan a detectar errores antes de integrar la interfaz gráfica.

Ejemplo sugerido:
Usar Postman para enviar una petición POST de registro de usuario y validar si responde con un mensaje de éxito y código 201.

📋 Recomendaciones para la exposición

- Todos los integrantes deben participar, sin leer las diapositivas.
- Las diapositivas deben ser visuales, con ejemplos o capturas, no solo texto.
- Es recomendable incluir diagramas o capturas de herramientas reales (Selenium, Postman, etc.).
- Terminar con una conclusión del equipo sobre la importancia de las pruebas funcionales y de sistema para garantizar la calidad del software.

🎯 Objetivo de la exposición

Comprender cómo se aplican las pruebas funcionales y de sistema dentro del proceso de aseguramiento de calidad del software, analizando su importancia, tipos, herramientas y relación con la experiencia del usuario.

📘 Subtemas a desarrollar

Cada equipo deberá dividirse en los siguientes cinco subtemas, de modo que cada integrante explique uno con claridad y ejemplos.

🧠 1. Pruebas funcionales y de sistema (visión general)

Explica los conceptos base:

- ¿Qué son las pruebas funcionales y cómo se diferencian de las pruebas unitarias o de integración?
- ¿Qué son las pruebas de sistema y qué validan?
- ¿En qué etapa del ciclo de vida del software se aplican?
- ¿Qué papel tienen los requerimientos funcionales en el diseño de las pruebas?

Puntos clave a incluir:

- Las pruebas funcionales verifican que el sistema haga lo que debe hacer.
- Las pruebas de sistema se enfocan en validar el comportamiento completo del software integrado.
- Se basan en entradas, salidas y resultados esperados, no en el código interno.

Ejemplo sugerido:
Probar un sistema de registro: ingresar usuario, contraseña y verificar si el sistema permite o rechaza el acceso según los datos.

⚙️ 2. Validación de funcionalidades completas

Explica cómo las pruebas permiten asegurar que todo el sistema funcione correctamente de principio a fin.
Incluye:

- Qué significa “validar el flujo completo del sistema”.
- Cómo se construyen casos de prueba para validar procesos interconectados (por ejemplo, registro → inicio de sesión → compra → confirmación).
- La importancia de la trazabilidad de los requerimientos.
- Ejemplo de un escenario real completo validado con pruebas funcionales.

Ejemplo sugerido:
En una app de e-commerce: agregar un producto al carrito, realizar el pago y verificar que el pedido se registre correctamente.

👥 3. Pruebas desde la perspectiva del usuario

En este apartado deben enfocarse en la experiencia y expectativas del usuario final.
Explicar:

- Qué significa probar desde la perspectiva del usuario.
- Cómo se diseñan casos de prueba basados en la experiencia de uso.
- Importancia de entender el comportamiento del usuario real.
- Diferencia entre validar funcionalidad técnica y usabilidad o flujo lógico.

Ejemplo sugerido:
Evaluar si el proceso de registro de usuario es intuitivo, rápido y sin errores, más allá de si técnicamente funciona.

🖥️ 4. Pruebas de la interfaz gráfica (GUI)

Deben explicar qué son las pruebas GUI, cómo se realizan y qué herramientas existen para automatizarlas.
Incluye:

- Qué elementos se prueban en una interfaz gráfica (botones, formularios, menús, etc.).
- Qué buscan detectar (errores visuales, flujos incorrectos, botones que no funcionan).
- Herramientas comunes:
  - Selenium (multiplataforma, navegador real).
  - Cypress (rápido y moderno para aplicaciones web).
  - TestComplete (entorno profesional para GUI complejas).
- Ventajas y limitaciones de automatizar pruebas de interfaz.

Ejemplo sugerido:
Una prueba automatizada que verifica si un botón “Enviar” realmente ejecuta la acción esperada.

🌐 5. Pruebas basadas en comandos/API

Este tema aborda las pruebas que se realizan sin interfaz gráfica, directamente sobre las API o endpoints del sistema.
Deben explicar:

- Qué es una API (Application Programming Interface) y su rol en las aplicaciones modernas.
- Qué son las pruebas basadas en API o comandos.
- Qué herramientas se usan (por ejemplo, Postman, Newman, Insomnia, JMeter).
- Qué se valida: códigos de respuesta (200, 404, 500), tiempos de respuesta, autenticación, formato del JSON, etc.
- Cómo estas pruebas ayudan a detectar errores antes de integrar la interfaz gráfica.

Ejemplo sugerido:
Usar Postman para enviar una petición POST de registro de usuario y validar si responde con un mensaje de éxito y código 201.

📋 Recomendaciones para la exposición

- Todos los integrantes deben participar, sin leer las diapositivas.
- Las diapositivas deben ser visuales, con ejemplos o capturas, no solo texto.
- Es recomendable incluir diagramas o capturas de herramientas reales (Selenium, Postman, etc.).
- Terminar con una conclusión del equipo sobre la importancia de las pruebas funcionales y de sistema para garantizar la calidad del software.