Pruebas en
aplicaciones
informáticas
Las pruebas de software son el proceso de evaluar y verificar que un producto
o aplicación de software hace lo que se supone que debe (IBM).
Los beneficios principales de unas buenas pruebas son:
 Concepto. Beneficios.
Prevención de errores Mejora del rendimiento
Caso 2
Playstation Network,
2025.
 ¿Por qué son importantes las pruebas de software?
Consecuencias:
- Pérdida de credibilidad
- Migración de usuarios a otras
plataformas
El mensaje de la muerte que bloque
a Whatsapp | La Gaceta de Salama
nca
Caso 1
Whatsapp, 2014.
Consecuencias:
- Pérdida de información de
usuarios
- Migración de usuarios a otras
Caso 3
Satélite Hitomi,
2016.
 ¿Por qué son importantes las pruebas de software?
¡Fatality! Error de software volteó a un s
atélite japonés - El Cronista
Hi
tomi Tumbling in Orbit
Consecuencias:
- Pérdida financiera de más de
$260M USD
- Pérdida de años de investigación
Las pruebas de software bien aplicadas permiten detectar problemas como:
 Beneficios
Problemas de escalabilidad
Defectos arquitectónicos Malas decisiones de diseño
Vulnerabilidades de seguridad
Dentro de la fase de pruebas del ciclo de desarrollo de software, existen dos
enfoques principales: Shift Left y Shift Right.
 Shift Left y Shift Right
Cada una de estas se enfoca en momentos diferentes del ciclo, pero se
complementan para lograr una evaluación integral de la aplicación o
sistema.
 Shift Left y Shift Right
Shift Left se basa en encontrar problemas de manera anticipada, realizando
pruebas rápidas y repetitivas para descubrir áreas de riesgo a lo largo de las
etapas críticas de diseño y desarrollo. Este enfoque trata de evitar problemas
antes de que estos sucedan.
Por otro lado, Shift Right testing implica monitorear el comportamiento del
usuario, las métricas comerciales, las métricas de rendimiento y seguridad, e
incluso realizar experimentos de fallas deliberadas (Chaos Engineering) para
ver qué tan resistente es el sistema a las fallas.
Shift Left y Shift Right
Shift Left Shift Right
Objetivo
Detectar y corregir errores de
manera temprana, reduciendo
costos y mejorando la calidad.
Validar la estabilidad, rendimiento y
experiencia del usuario en
condiciones reales.
Beneficios
• Reducción de defectos en
etapas avanzadas
• Feedback más rápido y continuo
• Menores costos de corrección
de errores
• Detección de problemas en
escenarios reales
• Mejora de la disponibilidad y
confiabilidad del sistema
• Mayor enfoque en la experiencia
del usuario
Ejemplos
• Pruebas unitarias y de
integración automatizadas
• Pruebas estáticas (revisión de
código, análisis de calidad)
• Pruebas de seguridad
tempranas
• Pruebas A/B
• Pruebas de rendimiento en
producción
• Monitoreo y observabilidad (logs,
métricas, alertas)
• Chaos Engineering (pruebas de
resiliencia)
Tipos de pruebas
Tipo Descripción
Prueba de conectividad
Verifica que todas las conexiones entre los elementos internos y
externos del sistema funcionen según lo previsto
Pruebas de integración
Asegura que los componentes o funciones del software operen
juntos
Pruebas de unidad
Valida que cada unidad de software funcione según lo esperado,
independientemente de su relación con los otros elementos.
Pruebas funcionales
Verifica funciones mediante la emulación de escenarios posibles,
creados en función de los requisitos funcionales
Pruebas de rendimiento
Prueba cómo funciona y responde el software bajo diferentes cargas
de trabajo
Pruebas de regresión
Verifica si las nuevas características rompen o degradan la
funcionalidad
Pruebas de estrés
Prueba cuánta tensión puede soportar el sistema antes de que
falle/colapse
Pruebas de usabilidad
Valida qué tan bien un usuario puede usar un sistema o una
aplicación para completar una tarea
Técnicas de prueba
El evaluador interactúa con la aplicación
sin conocer los elementos internos. Se
definen casos de prueba e interactúan con
el software como lo haría un usuario real
para validar que hace lo que debería, como
debería.
Por el contrario, las evaluaciones de caja
blanca se realizan con pleno conocimiento de
los elementos internos de una aplicación.
Ofrecen una mejor cobertura de prueba , ya
que se puede evaluar todo el código, pero se
requiere experiencia con el lenguaje en el que
se desarrolló el código.
Técnicas de prueba
Chaos Engineering es la práctica de
introducir intencionalmente fallas en
un sistema para probar su resiliencia.
El objetivo es identificar posibles
puntos de falla y corregirlos antes de
que provoquen una interrupción real
del servicio u otra interrupción.
Técnicas de prueba
Las pruebas de carga son la práctica de simular diferentes niveles
de uso de la aplicación o sistema en el mundo real para analizar e
identificar factores como la capacidad de respuesta, degradación y
escalabilidad.
Técnicas de prueba
Las pruebas de cordura son un tipo de prueba de software que se realizan para
verificar que los cambios en el código no introduzcan nuevos errores. También se
les conoce como pruebas de nivel superficial o Sanity Test.
Softwares para realizar pruebas

Pruebas en aplicaciones informáticas.pptx

  • 1.
  • 2.
    Las pruebas desoftware son el proceso de evaluar y verificar que un producto o aplicación de software hace lo que se supone que debe (IBM). Los beneficios principales de unas buenas pruebas son:  Concepto. Beneficios. Prevención de errores Mejora del rendimiento
  • 3.
    Caso 2 Playstation Network, 2025. ¿Por qué son importantes las pruebas de software? Consecuencias: - Pérdida de credibilidad - Migración de usuarios a otras plataformas El mensaje de la muerte que bloque a Whatsapp | La Gaceta de Salama nca Caso 1 Whatsapp, 2014. Consecuencias: - Pérdida de información de usuarios - Migración de usuarios a otras
  • 4.
    Caso 3 Satélite Hitomi, 2016. ¿Por qué son importantes las pruebas de software? ¡Fatality! Error de software volteó a un s atélite japonés - El Cronista Hi tomi Tumbling in Orbit Consecuencias: - Pérdida financiera de más de $260M USD - Pérdida de años de investigación
  • 5.
    Las pruebas desoftware bien aplicadas permiten detectar problemas como:  Beneficios Problemas de escalabilidad Defectos arquitectónicos Malas decisiones de diseño Vulnerabilidades de seguridad
  • 6.
    Dentro de lafase de pruebas del ciclo de desarrollo de software, existen dos enfoques principales: Shift Left y Shift Right.  Shift Left y Shift Right Cada una de estas se enfoca en momentos diferentes del ciclo, pero se complementan para lograr una evaluación integral de la aplicación o sistema.
  • 7.
     Shift Lefty Shift Right Shift Left se basa en encontrar problemas de manera anticipada, realizando pruebas rápidas y repetitivas para descubrir áreas de riesgo a lo largo de las etapas críticas de diseño y desarrollo. Este enfoque trata de evitar problemas antes de que estos sucedan. Por otro lado, Shift Right testing implica monitorear el comportamiento del usuario, las métricas comerciales, las métricas de rendimiento y seguridad, e incluso realizar experimentos de fallas deliberadas (Chaos Engineering) para ver qué tan resistente es el sistema a las fallas.
  • 8.
    Shift Left yShift Right Shift Left Shift Right Objetivo Detectar y corregir errores de manera temprana, reduciendo costos y mejorando la calidad. Validar la estabilidad, rendimiento y experiencia del usuario en condiciones reales. Beneficios • Reducción de defectos en etapas avanzadas • Feedback más rápido y continuo • Menores costos de corrección de errores • Detección de problemas en escenarios reales • Mejora de la disponibilidad y confiabilidad del sistema • Mayor enfoque en la experiencia del usuario Ejemplos • Pruebas unitarias y de integración automatizadas • Pruebas estáticas (revisión de código, análisis de calidad) • Pruebas de seguridad tempranas • Pruebas A/B • Pruebas de rendimiento en producción • Monitoreo y observabilidad (logs, métricas, alertas) • Chaos Engineering (pruebas de resiliencia)
  • 9.
    Tipos de pruebas TipoDescripción Prueba de conectividad Verifica que todas las conexiones entre los elementos internos y externos del sistema funcionen según lo previsto Pruebas de integración Asegura que los componentes o funciones del software operen juntos Pruebas de unidad Valida que cada unidad de software funcione según lo esperado, independientemente de su relación con los otros elementos. Pruebas funcionales Verifica funciones mediante la emulación de escenarios posibles, creados en función de los requisitos funcionales Pruebas de rendimiento Prueba cómo funciona y responde el software bajo diferentes cargas de trabajo Pruebas de regresión Verifica si las nuevas características rompen o degradan la funcionalidad Pruebas de estrés Prueba cuánta tensión puede soportar el sistema antes de que falle/colapse Pruebas de usabilidad Valida qué tan bien un usuario puede usar un sistema o una aplicación para completar una tarea
  • 10.
    Técnicas de prueba Elevaluador interactúa con la aplicación sin conocer los elementos internos. Se definen casos de prueba e interactúan con el software como lo haría un usuario real para validar que hace lo que debería, como debería. Por el contrario, las evaluaciones de caja blanca se realizan con pleno conocimiento de los elementos internos de una aplicación. Ofrecen una mejor cobertura de prueba , ya que se puede evaluar todo el código, pero se requiere experiencia con el lenguaje en el que se desarrolló el código.
  • 11.
    Técnicas de prueba ChaosEngineering es la práctica de introducir intencionalmente fallas en un sistema para probar su resiliencia. El objetivo es identificar posibles puntos de falla y corregirlos antes de que provoquen una interrupción real del servicio u otra interrupción.
  • 12.
    Técnicas de prueba Laspruebas de carga son la práctica de simular diferentes niveles de uso de la aplicación o sistema en el mundo real para analizar e identificar factores como la capacidad de respuesta, degradación y escalabilidad.
  • 13.
    Técnicas de prueba Laspruebas de cordura son un tipo de prueba de software que se realizan para verificar que los cambios en el código no introduzcan nuevos errores. También se les conoce como pruebas de nivel superficial o Sanity Test.
  • 14.