Unidad 1

Fundamentos de pruebas y aseguramiento de calidad

Pruebas de software

Facultad de Informática Culiacán · Universidad Autónoma de Sinaloa

UAS - Pruebas de software

Al finalizar esta unidad podrás

1.1 Calidad y sus comprobaciones

Explicar la calidad de software y distinguir garantía, aseguramiento, verificación y validación.

1.2 Propósito de las pruebas

Explicar para qué se prueba y cómo las pruebas reducen el riesgo dentro del ciclo de vida.

1.3 Principios generales

Aplicar los principios generales de las pruebas para decidir cuándo y cómo probar.

1.4 Cobertura y métricas

Relacionar cobertura y métricas básicas con la suficiencia de un proceso de pruebas.

UAS - Pruebas de software

Antes de empezar

¿Alguna vez usaste una aplicación que falló justo después de que el equipo que la desarrolla aseguró que "ya estaba probada"?

¿Cómo sabes, en realidad, si algo "ya se probó lo suficiente"?

Esta unidad te da el vocabulario y los principios para responder esa pregunta con precisión.

UAS - Pruebas de software

Una situación

Un equipo entrega una funcionalidad que "ya se probó manualmente". Poco después de liberarse, esa funcionalidad falla en producción. Nadie documentó qué se probó, bajo qué condiciones, ni con qué criterio se consideró terminada la prueba.

UAS - Pruebas de software

Pregunta orientadora

UAS - Pruebas de software

Mapa de la unidad

01 CALIDAD

¿Qué significa que un
software sea de calidad?

Verificación · validación ·
aseguramiento

02 ¿POR QUÉ PROBAR?

Detectar defectos,
aumentar confiabilidad
y reducir riesgos.

03 PRINCIPIOS

Las pruebas tienen
reglas y límites.

Probar no significa
"demostrar que no hay errores".

04 MEDIR

Cobertura y métricas
para conocer qué
estamos probando.

UAS - Pruebas de software

Actividad — Diagnóstico inicial

Discute, en grupo o individualmente: a partir de la situación anterior, ¿qué salió mal? ¿Qué le faltó al proceso de prueba de ese equipo?

UAS - Pruebas de software

Bloque 1

Calidad de software

UAS - Pruebas de software

¿Qué es la calidad de software?

La calidad de software es el grado en el que un producto cumple con los requisitos establecidos y con las expectativas razonables de quienes lo utilizan, de forma consistente y sostenida en el tiempo.

No es una propiedad binaria ("tiene calidad" / "no tiene calidad"): es un conjunto de características que pueden estar presentes en distintos grados.

UAS - Pruebas de software

Características observables de calidad

Funcionalidad

¿Hace lo que se supone que debe hacer?

Confiabilidad

¿Se comporta de forma consistente?

Usabilidad

¿Es comprensible y utilizable?

Eficiencia

¿Usa recursos y responde en tiempos razonables?

Mantenibilidad

¿Puede modificarse sin esfuerzo desproporcionado?

Seguridad

¿Protege adecuadamente información y acceso?

UAS - Pruebas de software

La calidad se construye durante todo el ciclo de vida

01 ANÁLISIS

Requisito ambiguo
o mal entendido.

Ejemplo:
"El sistema debe ser rápido."

02 DISEÑO

Una decisión técnica
no contempla el crecimiento.

Ejemplo:
10 usuarios → 100,000.

03 IMPLEMENTACIÓN

Error al convertir
el diseño en código.

Ejemplo:
Una condición incorrecta.

04 MANTENIMIENTO

Un cambio rompe
algo que funcionaba.

Ejemplo:
Nueva función → falla otra.

Idea clave: la calidad no se "agrega" al final. Se construye y se protege durante todo el ciclo de vida del software.

UAS - Pruebas de software

Actividad — Caracterización de la calidad de software

Elige dos productos de software que uses con frecuencia. Identifica al menos tres características de calidad presentes y una deficiencia, con evidencia concreta no solo preferencia personal.

UAS - Pruebas de software

Bloque 2

Garantía, aseguramiento, verificación y validación

UAS - Pruebas de software

Garantía de calidad (Quality Assurance)

Conjunto de actividades preventivas integradas en el proceso de desarrollo. Ejemplo: definir un estándar de codificación antes de escribir código, o exigir revisión de pares antes de integrar un cambio.

UAS - Pruebas de software

Aseguramiento de calidad

Actividades de revisión, evaluación y mejora continua sobre si las actividades preventivas realmente se están cumpliendo.

Garantía define "así vamos a trabajar". Aseguramiento pregunta "¿de verdad estamos trabajando así, y funciona?".

UAS - Pruebas de software

Verificación y validación

Verificación

¿Se construyó el productocorrectamente? Comprueba que cumple con la especificación dada.

Validación

¿Se construyó el producto correcto? Comprueba que satisface la necesidad real del usuario.

Ejemplo: un sistema que rechaza contraseñas de menos de 4 caracteres pasa la verificación si cumple esa regla pero puede fallar la validación si 4 caracteres son insuficientes para proteger las cuentas en la práctica.

UAS - Pruebas de software

Los cuatro términos, en un solo lugar

Término Pregunta central Naturaleza
Garantía de calidad ¿El proceso previene defectos? Preventiva, de proceso
Aseguramiento de calidad ¿Ese proceso se cumple y funciona? Revisión y mejora continua
Verificación ¿Correctamente, según la especificación? Comprobación técnica
Validación ¿Correcto, según la necesidad real? Adecuación al uso
UAS - Pruebas de software

Actividad — Análisis de caso

Retoma la situación inicial. Para cada uno de los cuatro términos, determina si hubo evidencia de que estuvo presente — y concluye cuál faltó de forma más determinante.

UAS - Pruebas de software

Bloque 3

Propósito de las pruebas de software

UAS - Pruebas de software

¿Para qué probamos?

Una prueba evalúa un producto de software para identificar diferencias entre su comportamiento real y el esperado.

Identificar defectos

Antes de que lleguen a producción.

Mejorar la confiabilidad

Evidencia objetiva de comportamiento consistente.

Reducir costos

Un defecto detectado antes es, en general, más barato de corregir.

UAS - Pruebas de software

Las pruebas como reducción de riesgo

No todas las partes de un sistema requieren el mismo esfuerzo de prueba: conviene priorizar aquellas con mayor impacto y mayor probabilidad de fallo.

En la situación inicial: la funcionalidad que falló merecía un nivel de prueba proporcional a su impacto, sin importar si era la más compleja del sistema.

UAS - Pruebas de software

Las pruebas dentro del ciclo de vida

Etapa Qué puede probarse
Análisis Si los requisitos son claros, completos y verificables
Diseño Si la arquitectura soporta los escenarios esperados
Implementación Los componentes conforme se construyen
Mantenimiento Regresión, tras cada cambio

Los tipos y niveles de prueba correspondientes a cada etapa (unitarias, integración, sistema, aceptación) son contenido de la Unidad III.

UAS - Pruebas de software

Actividad — Identificación de riesgos

Usando tu sistema bajo prueba, enumera de 4 a 6 funcionalidades. Estima impacto y probabilidad de fallo para cada una y ordénalas por riesgo.

UAS - Pruebas de software

Bloque 4

Principios generales de pruebas

UAS - Pruebas de software

Cuatro principios que orientan cuándo y cómo probar

1Presencia de defectos

Las pruebas muestran que hay defectos, no que no los hay.

2Pruebas tempranas

Antes se detecta, menos cuesta corregir.

3Agrupación de defectos

Se concentran en módulos críticos.

4Criterios de salida

Condiciones explícitas para terminar de probar.

UAS - Pruebas de software

Presencia de defectos, no ausencia

Que una funcionalidad haya pasado todas las pruebas diseñadas no
significa que no tenga defectos
: significa que no se encontraron
defectos con las pruebas que se ejecutaron.

Por eso "ya se probó manualmente", en la situación inicial, no es una
afirmación verificable por sí sola: probar sin documentar qué se probó no
permite saber qué tan exhaustiva fue esa prueba.

UAS - Pruebas de software

Criterios de salida

Un proceso de pruebas necesita condiciones explícitas para decidir
cuándo una etapa puede considerarse terminada.

Ejemplo verificable: "no quedan defectos abiertos de severidad alta".

Ejemplo no verificable: "el sistema funciona bien".

Sin criterios de salida explícitos, "ya se probó" se vuelve una
afirmación subjetiva — exactamente lo que faltó en la situación inicial.

UAS - Pruebas de software

Ampliación — Los 7 principios ISTQB

El programa oficial de esta unidad exige cuatro de estos elementos
(1.3.1–1.3.4). El ISTQB (International Software Testing
Qualifications Board
) reconoce 7 principios generales de las
pruebas de software
. Los tres que siguen amplían lo ya visto — no
sustituyen ni modifican los cuatro oficiales ni la rúbrica de la
unidad.

# Nombre (inglés) Nombre (español) Ya visto
1 Testing shows presence of defects Presencia de defectos
2 Exhaustive testing is impossible Pruebas exhaustivas imposibles Nuevo
3 Early testing Pruebas tempranas
4 Defect clustering Agrupación de defectos
5 Pesticide paradox Paradoja del pesticida Nuevo
6 Testing is context dependent Las pruebas dependen del contexto Nuevo
7 Absence-of-errors fallacy Falacia de ausencia de errores Nuevo
UAS - Pruebas de software

Principio 2 — Las pruebas exhaustivas no existen

Exhaustive testing is impossible. Probar todas las combinaciones
posibles de entradas y precondiciones no es viable, salvo en casos
triviales.

Un formulario con 10 campos de texto y 6 valores posibles por campo
genera 6¹⁰ ≈ 60 millones de combinaciones. Probarlas todas es
económicamente inviable.

Para qué sirve: en vez de intentarlo, se usa análisis de riesgo,
técnicas de diseño de pruebas y priorización — el "cómo elegir qué
probar" que se formaliza en la Unidad III.

UAS - Pruebas de software

Principio 5 — La paradoja del pesticida

Pesticide paradox. Si se repite el mismo conjunto de pruebas una y
otra vez, eventualmente deja de encontrar defectos nuevos — igual que
un pesticida pierde eficacia contra una plaga con el tiempo.

Para qué sirve: justifica revisar y actualizar periódicamente las
pruebas y sus datos, y escribir pruebas nuevas. En pruebas de
regresión automatizadas, este efecto también tiene un lado positivo:
un número bajo y estable de defectos de regresión.

UAS - Pruebas de software

Principio 6 — Las pruebas dependen del contexto

Testing is context dependent. No se prueba igual un sitio web
informativo que el software de control de un avión de pasajeros. A
mayor riesgo de pérdida humana o económica, mayor debe ser la
inversión en pruebas.

Para qué sirve: advierte contra aplicar la misma profundidad de
prueba a todo por igual. Los dos casos reales que siguen muestran qué
ocurre cuando el contexto de riesgo se subestima.

UAS - Pruebas de software

Principio 7 — Falacia de ausencia de errores

Absence-of-errors fallacy. Encontrar y corregir muchos defectos no
garantiza el éxito de un sistema: puede seguir siendo difícil de usar,
no cumplir las necesidades reales del usuario, o ser inferior frente a
la competencia.

Para qué sirve: recuerda que las pruebas verifican y ayudan a
validar, pero no reemplazan un buen diseño centrado en el usuario. Se
relaciona directamente con la diferencia entre verificación y
validación (Bloque 2).

UAS - Pruebas de software

Casos reales — cuando falla el proceso de prueba

Los dos casos siguientes son reales, con fuente citada — no el
escenario ilustrativo genérico de las diapositivas iniciales
(CONTEXTO_UNIDAD.md §10) ni el caso canónico de la unidad. Fichas
completas: unidad01_materiales_referencias.md §7 (REF-U1-20, REF-U1-21).

UAS - Pruebas de software

Caso — CrowdStrike (19 de julio de 2024)

Qué pasó

Una actualización de contenido del sensor Falcon (Channel File 291) provocó fallas masivas de Windows ("pantalla azul") en ~8.5 millones de equipos en todo el mundo.

Causa técnica

El sensor esperaba 20 campos de entrada; la actualización envió 21. Al leer el campo inexistente, el driver realizó una lectura de memoria fuera de rango.

UAS - Pruebas de software

CrowdStrike — qué falló en el proceso de prueba

El validador de contenido, que debía detectar archivos de
actualización corruptos antes de liberarlos, tenía a su vez un defecto
no detectado: dejó pasar el archivo dañado a producción.

Principio ilustrado: Principio 1 (las pruebas muestran presencia
de defectos, no su ausencia) — confiar en que una herramienta de
prueba "siempre ha funcionado" no prueba que esté libre de defectos.

Lección: si automatizas validaciones, la herramienta de validación
también necesita sus propias pruebas.

UAS - Pruebas de software

Caso — Boeing 737 MAX (2018–2019)

Qué pasó

Dos accidentes fatales (Lion Air, oct. 2018; Ethiopian Airlines, mar. 2019; 346 personas fallecidas en total) vinculados al sistema de estabilización MCAS.

Causa técnica

MCAS confiaba en la lectura de un único sensor de ángulo de ataque, sin contrastarla con sensores redundantes, y podía anular el control manual de los pilotos.

UAS - Pruebas de software

Boeing 737 MAX — qué falló en el proceso de prueba

No se probó adecuadamente el caso "¿qué pasa si el único sensor
falla?" (tolerancia a fallos), pese a tratarse de un sistema de
seguridad crítica.

Principio ilustrado: Principio 6 (las pruebas dependen del
contexto) — un sistema donde una falla puede costar vidas exige un
nivel de prueba de redundancia muy superior al de software no crítico.

Lección: nunca confiar en una sola fuente de datos; un único punto
de falla en un sistema crítico es un defecto de diseño, no solo de
implementación.

UAS - Pruebas de software

Bloque 5

Cobertura y métricas básicas

UAS - Pruebas de software

Cobertura de requisitos

La cobertura de requisitos mide qué proporción de los requisitos
definidos tiene al menos un caso de prueba asociado.

Un requisito sin ningún caso de prueba es un requisito sin evidencia de
que se haya verificado.

La relación formal entre requisitos y casos de prueba — y la matriz de
trazabilidad — es contenido central de la Unidad II.

UAS - Pruebas de software

Cobertura de código (introductoria)

Cobertura de instrucciones

Qué proporción de líneas de código se ejecutó al menos una vez.

Cobertura de decisiones

Qué proporción de ramas posibles de una decisión se ejecutó al menos una vez.

Cobertura de código alta no equivale a ausencia de defectos: que una
línea se haya ejecutado no significa que su resultado sea correcto.

UAS - Pruebas de software

Métricas básicas de defectos

Número de defectos

Cuántos se identificaron en un periodo o etapa.

Severidad y prioridad

Impacto técnico y urgencia de atención.

Tendencias

Si el número de defectos aumenta, disminuye o se estabiliza.

Severidad y prioridad se introducen aquí solo como concepto; su gestión
formal es contenido de la Unidad VII.

UAS - Pruebas de software

Actividad — Evidencia conceptual de cierre

Aplica los cuatro principios generales a la situación inicial y resuelve
un ejercicio de cobertura sobre tu propio sistema bajo prueba.

Esta es la evidencia oficial de la Unidad I.

Instrucciones completas: Actividades de la Unidad 01, Actividad A5.
Criterios de desempeño: Rúbrica de la Unidad 01.

UAS - Pruebas de software

Bloque 6

Panorama normativo internacional (ampliación)

UAS - Pruebas de software

El ecosistema de estándares de pruebas de software

El programa oficial cita ISO/IEC 29119, IEEE 829 e ISO/IEC 25010. Esta
familia de normas es más amplia; conocerla ayuda a ubicar, más
adelante, cada tema de la materia dentro de un marco reconocido
internacionalmente.

Estándar Categoría Alcance
ISO/IEC/IEEE 29119-1 Marco conceptual Vocabulario y taxonomía del testing (ya visto)
ISO/IEC/IEEE 29119-2 Gobernanza y gestión Ciclo de vida del testing basado en riesgos
ISO/IEC/IEEE 29119-3 Aseguramiento documental Planes, casos e informes de prueba (Unidad III)
ISO/IEC/IEEE 29119-4 Ejecución técnica Técnicas de caja negra, caja blanca (Unidad III)
ISO/IEC/IEEE 29119-5 Automatización Pruebas dirigidas por palabras clave (Unidad IV)
UAS - Pruebas de software

El ecosistema de estándares (continuación)

Estándar Categoría Alcance
ISO/IEC TR 29119-6 Adaptabilidad metodológica Uso de la 29119 en proyectos ágiles
ISO/IEC TR 29119-11 Tecnologías emergentes Pruebas de sistemas basados en IA
ISO/IEC 25010 Criterios de aceptación Modelo de calidad SQuaRE (ya visto, Bloque 1)
ISO/IEC/IEEE 12207 Ciclo de vida Integra verificación y validación en la ingeniería de software
ISO/IEC 20246 Verificación temprana Revisión de código, diagramas y requerimientos
ISO/IEC 33000 Auditoría de capacidad Madurez de los procesos de un equipo de QA

Ficha completa de cada norma, con su relevancia real para esta unidad: unidad01_materiales_referencias.md §4 (REF-U1-08 a REF-U1-19).

UAS - Pruebas de software

Cierre — volviendo a la situación inicial

Con lo aprendido en esta unidad, ahora puedes explicar con precisión:

  • el equipo pudo confundir verificación con validación;
  • "ya se probó" no es verificable sin criterios de salida ni
    cobertura conocida;
  • sin priorizar por impacto y probabilidad, el esfuerzo de prueba no
    fue proporcional al riesgo;
  • que la prueba manual "no encontrara nada" no demostraba ausencia de
    defectos.
UAS - Pruebas de software

En síntesis

  • La calidad es un conjunto de características, no una propiedad
    binaria, y se juega en todo el ciclo de vida.
  • Garantía, aseguramiento, verificación y validación son
    cuatro comprobaciones distintas.
  • Las pruebas identifican defectos, mejoran la confiabilidad y
    reducen riesgo.
  • Cuatro principios generales orientan cuándo y cómo probar (y el
    ISTQB reconoce tres más, con las mismas ideas de fondo).
  • Cobertura y métricas básicas permiten valorar si un proceso de
    pruebas fue suficiente.
  • Casos reales como CrowdStrike y Boeing 737 MAX muestran el
    costo de saltarse estos principios en la práctica.
UAS - Pruebas de software

Lo que sigue

En la Unidad II vas a trabajar con requisitos, criterios de
aceptación y trazabilidad: el puente entre "por qué probar" y "qué
probar".

UAS - Pruebas de software

Referencias

  • Myers, Sandler y Badgett — The Art of Software Testing (3.ª ed., 2011).
  • Jorgensen — Software Testing: A Craftsman's Approach (4.ª ed., 2013).
  • Patton — Software Testing (2.ª ed., 2005).
  • Black, van Veenendaal y Graham — Foundations of Software Testing ISTQB Certification (2012).
  • Toledo — Introducción a las pruebas de sistemas de información (2024).
  • ISO/IEC/IEEE 29119 (Partes 1, 2, 3, 4, 5, 6, 11).
  • ISO/IEC 25010:2011, ISO/IEC/IEEE 12207, ISO/IEC 20246, ISO/IEC 33000.
  • CrowdStrike, Channel File 291 Incident: Root Cause Analysis (2024).
  • Wikipedia, Boeing 737 MAX groundings (resumen con fuentes primarias).

Ficha completa de cada fuente: unidad01/referencias/unidad01_materiales_referencias.md (REF-U1-01 a REF-U1-21).

UAS - Pruebas de software

estado: BORRADOR fuente: unidad01_manual_estudiante.md; unidad01_actividades.md; CONTEXTO_UNIDAD.md; PLANEACION_UNIDAD.md; planeacion/unidad01_planeacion_clases.md propósito: presentación de apoyo docente/estudiante de la Unidad 1 No sustituye el manual del estudiante ni las actividades; contenido derivado, sin información nueva. No ha pasado por QA ni validación académica. criterio editorial: - lenguaje académico, claro y cercano - mínima carga textual, una idea principal por diapositiva - el escenario de las diapositivas 4-5 es ilustrativo, no un caso institucional (CONTEXTO_UNIDAD.md §10) — no inventar nombre de empresa, cifras ni infraestructura - no introducir contenidos técnicos propios de las Unidades II en adelante - ampliación 2026-09-06 (decisión explícita del responsable del curso, ver referencias/unidad01_materiales_referencias.md, nota inicial): se agregan 4 principios ISTQB adicionales, matriz ampliada de estándares y 2 casos reales (CrowdStrike, Boeing 737 MAX). Estos casos SÍ son reales y con fuente citada (a diferencia del escenario ilustrativo genérico de las diapositivas 4-5); no sustituyen ese escenario ni son el caso canónico de la unidad. No cambian RA1.1-RA1.4 ni la rúbrica.