Concepto y Beneficios de las Pruebas
¿Por qué son importantes las pruebas de software?
Shift Left y Shift Right
Tipos de pruebas
Técnicas de prueba
Softwares para realizar pruebas
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.