Unidad 3

Ingeniería y planificación de pruebas

Pruebas de software

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

UAS - Pruebas de software

Al finalizar esta unidad podrás

3.1 Niveles de prueba

Distinguir prueba unitaria, de integración, de sistema y de aceptación, y ubicarlas en un sistema.

3.2 Técnicas de caja negra

Derivar casos con partición de equivalencia, valores límite y tablas de decisión.

3.2 Caja blanca, exploración y riesgo

Analizar rutas y complejidad ciclomática, explorar con un charter y priorizar por riesgo.

3.3–3.4 Plan de pruebas

Elaborar un plan de pruebas básico con referencia a estándares de documentación.

UAS - Pruebas de software

Antes de empezar

Si un campo acepta días de préstamo del 1 al 14, ¿qué tres valores usarías para probarlo?

¿Quién debería probar la función que calcula una multa: quien la programó, otra persona del equipo o quien usará el sistema?

Abre tus escenarios (ESC) de la Unidad II: ¿alguno indica valores concretos? ¿Cómo los eligieron?

UAS - Pruebas de software

Una situación

El equipo del Sistema de Préstamos de Biblioteca (SPB) terminó los módulos de préstamo, devolución y búsqueda. Antes de liberar la versión 1.0 alguien pregunta: "¿ya lo probaron?". La respuesta: "sí, probamos lo que se nos ocurrió".

Nadie puede decir qué valores se usaron, por qué esos, qué partes del código se ejecutaron, qué se probó primero ni cuándo se decidió que era suficiente.

Caso ilustrativo ficticio, común para todo el grupo. Tu sistema bajo prueba es tu proyecto base (A, B o C).

UAS - Pruebas de software

Las reglas del SPB

ID Regla
RN-01 Días de préstamo: entero entre 1 y 14, inclusive
RN-02 Libros simultáneos: máximo 3 (ESTUDIANTE) y 5 (DOCENTE)
RN-03 Se autoriza si el registro está vigente, no hay adeudo y los libros actuales son menos que el límite
RN-04 Multa por día de retraso: 5 MXN (ESTUDIANTE) y 3 MXN (DOCENTE), con tope de 100 MXN y 0 si no hay retraso
RNF-01 La búsqueda responde en 2 s o menos con 50 usuarios simultáneos

También: RF-01 registrar préstamo · RF-02 registrar devolución y calcular multa · RF-03 buscar libro.

UAS - Pruebas de software

Pregunta orientadora

UAS - Pruebas de software

Lo que ya tienes

Lo que hiciste Unidad Se usa aquí para
Riesgo = impacto × probabilidad I Pruebas basadas en riesgos y prioridad del plan
Criterios de salida verificables I Criterios del plan de pruebas
Cobertura de instrucciones y decisiones I Diseñar casos de caja blanca
Reglas RN de tu proyecto base II Entrada de las técnicas de caja negra
Escenarios ESC II Se concretan en casos de prueba CP
Matriz de trazabilidad II Se amplía con la columna CP
UAS - Pruebas de software

Mapa de la unidad

01 ¿EN QUÉ NIVEL?

Unitaria · integración ·
sistema · aceptación

02 ¿CON QUÉ TÉCNICA?

Caja negra · gris · blanca ·
exploratoria · por riesgo

03 ¿CON QUÉ PLAN?

Alcance · estrategia ·
criterios · datos · ambiente

04 ¿CÓMO SE DEMUESTRA?

Estándares · documentos ·
evidencias

UAS - Pruebas de software

Bloque 1

Tipos y niveles de pruebas

UAS - Pruebas de software

Nivel de prueba y tipo de prueba

Nivel de prueba

Agrupa pruebas por el objeto de prueba: componente, conexión entre componentes, sistema completo, uso del negocio.

Tipo de prueba

Agrupa pruebas por la característica que evalúan: funcional, no funcional, estructural, relacionada con cambios.

JUnit o Postman son herramientas, no niveles. El nivel depende de qué estás probando.

UAS - Pruebas de software

Los cuatro niveles

Nivel Objeto de prueba Quién suele probar Base de prueba
Unitaria Función, método o clase aislados Quien desarrolla Diseño detallado, código
Integración Interacción entre componentes Desarrollo o pruebas Arquitectura, interfaces
Sistema Sistema completo, ambiente similar a producción Equipo de pruebas Requisitos, casos de uso
Aceptación (UAT) Sistema en el contexto del negocio Usuarios o cliente Criterios de aceptación

Base de prueba: el documento del que salen los casos y sus resultados esperados.

UAS - Pruebas de software

Nivel unitario: el componente aislado

FUNCIÓN calcularMulta(diasRetraso, tipoUsuario)
1   SI diasRetraso <= 0 ENTONCES RETORNAR 0 ...
4   tarifa ← 5
5   SI tipoUsuario = "DOCENTE" ENTONCES tarifa ← 3 ...
8   multa ← diasRetraso * tarifa
9   SI multa > 100 ENTONCES multa ← 100 ...
12  RETORNAR multa
CASO (unitario)   Entrada: diasRetraso = 3, tipoUsuario = "ESTUDIANTE"
                  Resultado esperado: 15     (RN-04: 3 × 5 MXN)

Si falla, el defecto solo puede estar dentro de calcularMulta.

UAS - Pruebas de software

Nivel de integración: el acuerdo entre componentes

FUNCIÓN registrarDevolucion(idPrestamo, fechaDevolucion)
1   prestamo ← repositorioPrestamos.buscar(idPrestamo)
2   usuario  ← servicioUsuarios.obtener(prestamo.idUsuario)
3   diasRetraso ← diasEntre(prestamo.fechaLimite, fechaDevolucion)
4   multa ← calcularMulta(diasRetraso, usuario.tipo)
5   prestamo.multa ← multa
6   repositorioPrestamos.guardar(prestamo)

servicioUsuarios devuelve "Docente". calcularMulta compara con "DOCENTE". Cada componente pasa sus pruebas unitarias. Juntos cobran 5 MXN a un DOCENTE.

UAS - Pruebas de software

Sistema y aceptación

Sistema

Desde la pantalla: registrar la devolución de un ESTUDIANTE con 3 días de retraso.

Esperado: la pantalla muestra 15 MXN y el préstamo queda "Devuelto".

Aceptación

Dado que una persona devuelve un libro con retraso, cuando la bibliotecaria registra la devolución, entonces el monto coincide con el procedimiento de cobranza.

Los criterios dado–cuando–entonces de la Unidad II son la base de la prueba de aceptación.

UAS - Pruebas de software

Una misma regla, cuatro niveles

Nivel La multa (RN-04) en el SPB Defecto que busca
Unitaria La función devuelve 15 MXN Cálculo mal programado
Integración La multa se calcula con el tipo correcto y se guarda Acuerdo roto entre componentes
Sistema El monto aparece en la pantalla de devolución Flujo incompleto, dato mal mostrado
Aceptación Coincide con el proceso de cobranza No sirve al proceso real
UAS - Pruebas de software

Niveles y ciclo de vida: el modelo en V

Requisitos del negocio ─────────────────────── Prueba de aceptación
    Requisitos del sistema ─────────────── Prueba de sistema
        Diseño de arquitectura ─────── Prueba de integración
            Diseño detallado ────── Prueba unitaria
                      Implementación

Los casos de cada nivel pueden diseñarse en cuanto existe su base de prueba, aunque se ejecuten después (pruebas tempranas, Unidad I).

Por eso puedes diseñar casos para tu proyecto base aunque todavía no sea ejecutable.

UAS - Pruebas de software

Integración: ¿todo junto o poco a poco?

Big bang

Se unen todos los componentes a la vez. Si algo falla, es difícil saber qué interfaz lo causó.

Incremental

Se agrega un componente a la vez, de arriba hacia abajo o de abajo hacia arriba. Localiza el origen de la falla.

En la Unidad IV verás cómo se simulan los componentes que aún no existen.

UAS - Pruebas de software

Actividad A1 — Clasificación de niveles

Clasifica diez pruebas del SPB por nivel y tipo, y describe qué se probaría en cada nivel para una funcionalidad de tu proyecto base.

Producto: tabla de clasificación justificada por el objeto de prueba.

Instrucciones completas: Actividades de la Unidad 03, Actividad A1.

UAS - Pruebas de software

Bloque 2

Técnicas de diseño: enfoques y casos de prueba

UAS - Pruebas de software

¿Qué es una técnica de diseño de pruebas?

Un procedimiento sistemático para decidir qué casos escribir y con qué datos, de forma que la elección se pueda justificar, repetir y revisar.

Familia Usa Técnicas de la unidad
Caja negra La especificación Partición, valores límite, tablas de decisión
Caja blanca La estructura del código Rutas, decisiones, complejidad ciclomática
Basadas en la experiencia El conocimiento de quien prueba Pruebas exploratorias

Las pruebas basadas en riesgos deciden cuánto esfuerzo y qué técnicas asignar a cada parte.

UAS - Pruebas de software

Los enfoques se complementan

Caja negra

Detecta lo que falta: el código no muestra lo que no se programó.

Caja blanca

Detecta lógica que ninguna prueba ejecutó.

Exploratoria

Detecta lo que nadie escribió: ni en la especificación ni en el código.

Entre negra y blanca está la caja gris: conocimiento parcial del diseño, ejecución por la interfaz externa (Bloque 4).

UAS - Pruebas de software

Del escenario al caso de prueba

ESC (Unidad II)                    técnica (Unidad III)            CP (Unidad III)
"Préstamo con días fuera      →    valores límite          →      CP: días = 15 → rechazado
 del rango permitido"              sobre RN-01                     CP: días = 0  → rechazado

El escenario dice qué situación se prueba. El caso fija los datos exactos, la técnica que los justifica y el resultado esperado.

UAS - Pruebas de software

Formato del caso de prueba

Campo Ejemplo
ID · ESC de origen CP-01 · ESC-03 (en el SPB: CP-RN01-03)
Requisito o regla · Técnica RN-01 · Valores límite
Precondiciones Usuario con registro vigente y sin adeudo
Datos · Acción Días = 15 · Registrar préstamo
Resultado esperado Rechazado: días fuera de rango
Estado Pendiente de ejecutar

Sin resultado esperado no hay caso de prueba. El oráculo es la especificación, nunca el código.

UAS - Pruebas de software

Actividad A2 — Selección de enfoque

Para seis situaciones del SPB decide el enfoque y justifícalo. Escribe un caso completo y analiza qué le falta a un escenario de tu proyecto base para ser un caso.

Instrucciones completas: Actividades de la Unidad 03, Actividad A2.

UAS - Pruebas de software

Bloque 3

Técnicas de caja negra

UAS - Pruebas de software

Partición de equivalencia: ¿qué problema resuelve?

RN-01 acepta 1 a 14, pero el campo puede recibir cualquier cosa: -1 000, 0, 7, 15, 2.5, "abc", vacío.

Sin técnica

Se prueban 3, 5 y 7: tres casos que aportan lo mismo, y nadie probó "abc".

Con técnica

Pocos casos, sin repetir esfuerzo y sin dejar comportamientos sin probar.

Las pruebas exhaustivas no existen (Unidad I): hay que elegir bien.

UAS - Pruebas de software

Partición de equivalencia: qué es

Divide el dominio de una entrada (o salida) en clases: grupos que el sistema debe tratar igual.

Supuesto: si un valor de la clase revela un defecto, los demás también lo harían. Por eso basta un representante por clase.

  • Cobertura del dominio: todo valor cae en alguna clase.
  • Sin traslape: ningún valor cae en dos clases.
  • Válidas (la regla las acepta) e inválidas (fuera de rango, tipo incorrecto, vacío).
UAS - Pruebas de software

¿Cómo encuentro las clases?

La especificación indica... Válidas Inválidas
Un rango (1 a 14) 1: dentro 2: debajo y encima
Un número de elementos (1 a 3 autores) 1: permitido 2: ninguno y demasiados
Un conjunto (ESTUDIANTE, DOCENTE) 1 por valor 1: fuera del conjunto
Una condición obligatoria 1: se cumple 1: no se cumple
Siempre — Tipo incorrecto, vacío

Reglas prácticas de Myers et al. (REF-U3-01). Si sospechas que valores de una clase se tratan distinto, divídela.

UAS - Pruebas de software

Ejemplo — RN-01 (días de préstamo, 1 a 14)

Clase Tipo Descripción Representante Esperado
CE-1 Válida Entero entre 1 y 14 7 Aceptado
CE-2 Inválida Entero menor que 1 -3 Rechazado
CE-3 Inválida Entero mayor que 14 20 Rechazado
CE-4 Inválida No entero 2.5 Rechazado
CE-5 Inválida No numérico "abc" Rechazado
CE-6 Inválida Vacío (vacío) Rechazado
UAS - Pruebas de software

Dos reglas que evitan errores

Dato inválido ≠ rechazo de negocio

ESTUDIANTE con 3 libros: dato válido, resultado de rechazo. Libros = -1: dato inválido. Son clases distintas.

Una clase inválida por caso

Si un caso mezcla dos inválidas y se rechaza, no sabes cuál causó el rechazo (enmascaramiento).

UAS - Pruebas de software

Particiones de salida — RN-04

Clase de salida Condición ESTUDIANTE Esperado
CS-1 Sin multa diasRetraso ≤ 0 0 días 0 MXN
CS-2 Proporcional La multa no supera el tope 3 días 15 MXN
CS-3 En el tope La multa calculada supera 100 25 días 100 MXN

La frontera entre CS-2 y CS-3 depende del tipo de usuario: el ESTUDIANTE llega antes al tope.

UAS - Pruebas de software

Variantes: débil o fuerte, normal o robusta

Variante Construcción RN-04 (tipo × días)
Débil normal Cada clase válida al menos una vez 3
Fuerte normal Todas las combinaciones de válidas 6
Débil robusta Débil + un caso por clase inválida 5
Fuerte robusta Todas las combinaciones de todas 12

La débil supone que los defectos dependen de una sola entrada. Si el resultado depende de cómo se combinan, usa la fuerte o una tabla de decisión (Jorgensen, REF-U3-02).

UAS - Pruebas de software

Cuando el supuesto falla

FUNCIÓN validarDias(dias)
1   SI dias < 1 ENTONCES RETORNAR "RECHAZADO"
4   SI dias > 10 ENTONCES RETORNAR "REQUIERE AUTORIZACIÓN"   ← no está en RN-01
7   SI dias > 14 ENTONCES RETORNAR "RECHAZADO"
10  RETORNAR "ACEPTADO"

7 y 12 están en la misma clase, pero el código los trata distinto. El representante 7 no lo ve. Lo revelan los valores límite (14) y la caja blanca (línea 4 sin ejecutar).

UAS - Pruebas de software

Análisis de valores límite: ¿qué problema resuelve?

"Entre 1 y 14 inclusive" se traduce a <, <=, >, >=. Un símbolo mal escrito cambia el comportamiento solo en los bordes.

Valores límite (BVA): además de un representante, prueba los valores en la frontera entre clases contiguas.

Solo aplica a clases ordenadas: números, fechas, horas, cantidades, longitudes.

UAS - Pruebas de software

Los defectos viven en los bordes

Versión Línea con defecto ¿7, -3 o 20 lo detectan? Lo detecta
M1 SI dias <= 1 No 1
M2 SI dias >= 14 No 14
M3 SI dias > 15 No 15
M4 SI dias < 0 No 0
UAS - Pruebas de software

Variantes de valores límite

Dos valores por frontera

RN-01: 0, 1 y 14, 15

Tres valores por frontera

RN-01: 0, 1, 2 y 13, 14, 15

Ejemplo genérico: "hasta 10 MB" programado como tamaño = 10. Con 10 y 11 no se detecta. Con 9 sí.

Con varias entradas: normal 4n + 1, robusto 6n + 1, peor caso 5ⁿ (Jorgensen, REF-U3-02).

UAS - Pruebas de software

Tablas de decisión: ¿qué problema resuelven?

Combinaciones

Si el resultado depende de varias condiciones, el defecto puede estar en una combinación que nadie probó.

Huecos de la especificación

Las reglas en lenguaje natural dicen qué pasa si todo está bien, no qué pasa en cada combinación de fallas.

UAS - Pruebas de software

Estructura de una tabla de decisión

                         │ R1 │ R2 │ R3 │ R4 │   ← reglas: una combinación cada una
─────────────────────────┼────┼────┼────┼────┤
 C1: compra ≥ 500 MXN    │ S  │ S  │ N  │ N  │   ← condiciones
 C2: cliente registrado  │ S  │ N  │ S  │ N  │
─────────────────────────┼────┼────┼────┼────┤
 A1: envío gratuito      │ X  │    │    │    │   ← acciones
 A2: cobrar envío        │    │ X  │ X  │ X  │

n condiciones Sí/No → 2ⁿ reglas. Llenado sistemático: la primera condición alterna cada 2ⁿ⁻¹ columnas. La última, en cada columna.

UAS - Pruebas de software

Por qué no basta "un caso bueno y uno malo"

Correcto:   SI montoCompra >= 500 Y registrado ENTONCES "GRATUITO"
Defecto:    SI montoCompra >= 500 O registrado ENTONCES "GRATUITO"
Regla Esperado Con el defecto ¿Detecta?
R1 (S, S) Gratuito Gratuito No
R2 (S, N) Cobrar Gratuito Sí
R3 (N, S) Cobrar Gratuito Sí
R4 (N, N) Cobrar Cobrar No
UAS - Pruebas de software

Reducir y comprobar

Si una condición no cambia las acciones, se marca con — y las columnas se fusionan: R3 y R4 → (N, —).

Comprobación: cada — en una condición Sí/No vale 2. La suma debe dar 2ⁿ: 1 + 1 + 2 = 4 ✓. Si da más, hay traslape. Si da menos, falta una combinación.

Reduce solo si la especificación lo justifica: si R3 y R4 muestran mensajes distintos, no se fusionan.

UAS - Pruebas de software

Entrada extendida y combinaciones imposibles

Entrada extendida

Condición con más de dos valores: tipo de cliente PREMIUM / REGISTRADO / INVITADO × compra ≥ 500 → 3 × 2 = 6 reglas.

Combinaciones imposibles

"compra ≥ 500 = N" y "compra ≥ 1 000 = S" no pueden ocurrir juntas: se marcan como imposibles y no generan casos.

UAS - Pruebas de software

La tabla también es una herramienta de análisis

Al construirla aparecen combinaciones que la especificación no resuelve. Es un hallazgo aunque no hayas ejecutado nada: se pregunta, no se supone, y se registra como riesgo de prueba.

Con muchas condiciones la tabla crece (6 condiciones → 64 reglas): reduce cuando se justifique, separa en subreglas o prioriza por riesgo.

UAS - Pruebas de software

¿Qué técnica de caja negra elijo?

Si la regla... Técnica
Restringe a un conjunto o tipo de valores Partición
Restringe un dato ordenado a un rango o cantidad Partición + valores límite
Produce tramos distintos de una salida Partición de salidas + valores límite
Combina dos o más condiciones para decidir Tabla de decisión (+ valores límite en las condiciones numéricas)

En los proyectos base: cantidad frente a existencia (B), cupo (C) y horario dentro de la disponibilidad (A). Por ejemplo: solicitar cita, generar pedido, inscribirse.

UAS - Pruebas de software

Relación con el Laboratorio 01

Las técnicas de este bloque se practican en el Laboratorio 01 — Técnicas de caja negra: primero con reglas del SPB y después con las reglas y los escenarios de tu proyecto base.

UAS - Pruebas de software

Bloque 4

Caja blanca y caja gris

UAS - Pruebas de software

Caja blanca: ¿qué problema resuelve?

Veinte casos de caja negra bien diseñados pueden dejar una rama completa del código sin ejecutar. Lo que no se ejecuta, no se prueba.

En la Unidad I mediste cobertura de instrucciones y de decisiones. Aquí la usas al revés: diseñas casos para alcanzar una cobertura elegida.

En pseudocódigo (D-005). En la Unidad IV medirás la cobertura con herramientas.

UAS - Pruebas de software

Familia de técnicas de caja blanca

Técnica Pregunta ¿Ejecuta?
Instrucciones, decisiones, condiciones ¿Qué elementos del código ejecuté? Sí
Rutas y rutas base ¿Qué recorridos de entrada a salida? Sí
Prueba de ciclos ¿0, 1, varias y el máximo de vueltas? Sí
Flujo de datos ¿Cada valor llegó a donde se usa? Sí
Análisis estático ¿Qué defectos se ven sin ejecutar? No

"Camino básico" en algunos textos: el original es basis path, camino base.

UAS - Pruebas de software

El grafo de flujo de control

Concepto Qué es
Nodo Instrucción o bloque básico: instrucciones que siempre se ejecutan juntas
Arista Posible salto de un nodo a otro
Nodo de decisión Nodo con dos salidas: V y F (SI, condición de MIENTRAS)
Nodo de unión Donde dos ramas se vuelven a juntar
Entrada y salida Donde empieza y donde termina la ejecución
UAS - Pruebas de software

Patrones de traducción

Patrones del grafo de flujo de control: secuencia, SI-ENTONCES, SI-ENTONCES-SINO y MIENTRAS

La arista F de un SI sin SINO va directo a la unión: es la que más se olvida.

UAS - Pruebas de software

Ejemplo — validarDias

1  SI dias < 1 ENTONCES
2      RETORNAR "RECHAZADO"
3  FIN SI
4  SI dias > 14 ENTONCES
5      RETORNAR "RECHAZADO"
6  FIN SI
7  RETORNAR "ACEPTADO"
     [1] dias < 1 ?
     /V          \F
  [2] RECHAZADO   [4] dias > 14 ?
                  /V          \F
           [5] RECHAZADO    [7] ACEPTADO

Rutas: 1(V)→2 · 1(F)→4(V)→5 · 1(F)→4(F)→7

UAS - Pruebas de software

¿Por qué no probar todas las rutas?

Decisiones en secuencia

Las rutas se multiplican: 2 decisiones → 4 rutas, 10 decisiones → 1 024.

Ciclos

Cada número de vueltas es una ruta distinta: pueden ser ilimitadas.

Se necesita un conjunto pequeño que recorra toda la lógica: la base de rutas independientes.

UAS - Pruebas de software

Rutas linealmente independientes

Grafo de calcularPrecioEnvio: cinco nodos, seis aristas, V(G) = 3 y tres rutas base

Una ruta es independiente si recorre al menos una arista nueva. V-V no aporta aristas nuevas.

UAS - Pruebas de software

Complejidad ciclomática V(G)

  • Número de casos que exige la prueba de rutas base.
  • Máximo de casos para cubrir instrucciones y decisiones.
  • Indicador de complejidad: a mayor V(G), más difícil de probar y mantener.

McCabe sugirió revisar módulos con V(G) mayor que 10 (PENDIENTE DE VERIFICACIÓN del valor en la fuente).

UAS - Pruebas de software

Tres formas de calcularla

Fórmula Cuenta calcularPrecioEnvio
E − N + 2 Aristas y nodos 6 − 5 + 2 = 3
P + 1 Decisiones 2 + 1 = 3
Regiones Áreas cerradas + exterior 2 + 1 = 3

Las tres deben coincidir. Con varios RETORNAR, agrega un nodo "Fin" al que lleguen todas las salidas: validarDias → 7 − 6 + 2 = 3.

UAS - Pruebas de software

Condiciones compuestas

1  SI dias < 1 O dias > 14 ENTONCES
2      RETORNAR "RECHAZADO"
3  FIN SI
4  RETORNAR "ACEPTADO"

Un solo SI, pero dos condiciones simples: V(G) = 3. Antes de dibujar, descompón la condición compuesta: cada condición simple es un nodo de decisión.

UAS - Pruebas de software

Prueba de rutas base

  1. Dibuja el grafo. 2. Calcula V(G) por dos métodos. 3. Construye la base: cada ruta nueva cambia una decisión. 4. Elige datos que fuercen cada ruta. 5. Resultado esperado desde la especificación.
Ruta peso, expres Esperado
B1 (F-F) 2, FALSO 50
B2 (V-F) 6, FALSO 80
B3 (F-V) 2, VERDADERO 100

Especificación: base 50 MXN, más de 5 kg suma 30 y exprés duplica el costo.

UAS - Pruebas de software

Cobertura de instrucciones

1  SI edad >= 18 ENTONCES
2      RETORNAR "ADULTO"
3  SINO SI edad >= 21 ENTONCES
4      RETORNAR "ADULTO MAYOR DE 21"
5  FIN SI
6  RETORNAR "MENOR"

Exige: ejecutar cada instrucción al menos una vez.

Sirve para: encontrar código no alcanzado y código muerto.

Ninguna edad ejecuta la línea 4: toda edad ≥ 21 ya salió por la línea 2. El código muerto revela el defecto: condiciones en orden equivocado.

UAS - Pruebas de software

Instrucciones no basta

// Socios: 10 % de descuento
1  descuento ← 10     // debía ser 0
2  SI esSocio ENTONCES
3      descuento ← total * 0.10
4  FIN SI
5  RETORNAR total - descuento

(200, VERDADERO) ejecuta todas las instrucciones: obtiene 180, correcto.

El defecto solo aparece si la decisión es falsa: (200, FALSO) espera 200 y obtiene 190.

UAS - Pruebas de software

Cobertura de decisiones (ramas)

Exige: que cada decisión tome V y F. En el grafo, recorrer cada arista de decisión. Prueba la arista F "invisible" del SI sin SINO.

1  SEGÚN tipo HACER
2    "ESTUDIANTE": RETORNAR 5
3    "DOCENTE":    RETORNAR 3
4    OTRO:         RETORNAR 5
5  FIN SEGÚN

Un SEGÚN con k salidas exige k casos. Forzar OTRO con "Docente" revela que un tipo desconocido paga como ESTUDIANTE.

UAS - Pruebas de software

Cobertura de condiciones

SI activo O claveCorrecta — defecto: debía ser Y.

Caso activo clave Esperado (Y) Obtenido (O)
C1 V V ACCESO ACCESO
C2 V F DENEGADO ACCESO
C3 F V DENEGADO ACCESO
C4 F F DENEGADO DENEGADO

Cobertura de condiciones: cada condición simple toma V y F al menos una vez.

UAS - Pruebas de software

Cuatro criterios sobre la misma decisión

Criterio Un conjunto mínimo ¿Detecta?
Decisiones C1, C4 No
Condiciones C2, C3 Sí
Decisión/condición C1, C4 No
Condición múltiple (2ⁿ) C1–C4 Sí

Condiciones no incluye decisiones: con C2 y C3 la rama ACCESO nunca se ejecuta. C1 y C4 también cumplen condiciones y no detectan: importa qué conjunto eliges.

UAS - Pruebas de software

Cobertura de todas las rutas

D1: costo ← costo + 80 · D2: costo ← 50 * 2 (línea 6 de calcularPrecioEnvio)

Ruta Datos Esperado Con D1 Con D2
F-F (2, FALSO) 50 50 50
V-F (6, FALSO) 80 80 80
F-V (2, VERDADERO) 100 130 100
V-V (6, VERDADERO) 160 160 100
UAS - Pruebas de software

¿Qué conjunto detecta cada defecto?

Criterio Conjunto D1 D2
Instrucciones (6, V) No Sí
Decisiones (6, V), (2, F) No Sí
Rutas base B1–B3 (2, F), (6, F), (2, V) Sí No
Todas las rutas Las cuatro Sí Sí

Ninguna base de tres rutas detecta ambos. Todas las rutas sí, pero con ciclos pueden ser ilimitadas: los demás criterios son aproximaciones.

UAS - Pruebas de software

Resumen de criterios

Criterio Exige Casos (calcularPrecioEnvio) Incluye a
Instrucciones Cada instrucción 1 —
Decisiones Cada arista de decisión 2 Instrucciones
Rutas base V(G) rutas independientes 3 Decisiones
Todas las rutas Cada ruta completa 4 Rutas base

"Incluye a": cumplir la fila implica cumplir lo indicado. Ningún criterio garantiza encontrar todos los defectos.

UAS - Pruebas de software

Prueba de ciclos: ciclo simple

Grafo de contarPrestamosVencidos con un ciclo, V(G) = 3

Probar 0, 1, 2 y un número típico de vueltas. Si el ciclo se detiene una vuelta antes, el último préstamo nunca se revisa: el caso de una vuelta lo revela.

UAS - Pruebas de software

Ciclo con máximo

Carrito: máximo 10 artículos. Si llegan más, se agregan 10 y se responde "LÍMITE ALCANZADO".

Defecto longitud(carrito) <= 10: con 10 artículos todo funciona. Solo el caso de 11 lo revela.

Artículos Esperado
0, 1, 2 OK
5 (típico) OK
9 (máx. − 1) OK, 9
10 (máx.) OK, 10
11 (máx. + 1) LÍMITE, 10
UAS - Pruebas de software

Ciclos anidados y concatenados

Anidados

Combinar 7 valores por ciclo da 49 casos. Empieza por el ciclo interno con los externos al mínimo. Después avanza hacia afuera con los internos en un valor típico: unos 14 casos.

Concatenados

Si son independientes, cada uno se prueba como ciclo simple. Si el segundo usa un valor del primero, se tratan como anidados.

UAS - Pruebas de software

Flujo de datos: conceptos

Los criterios anteriores miran por dónde pasa la ejecución. El flujo de datos mira si cada valor llega a donde se usa (REF-U3-02).

Concepto Ejemplo
Definición (def) costo ← 50
Uso computacional (c-use) RETORNAR costo
Uso en predicado (p-use) SI peso > 5
Par definición-uso (du) Def y uso con una ruta entre ellos sin otra definición en medio

costo ← costo + 30 es a la vez uso y nueva definición.

UAS - Pruebas de software

Pares du de costo

Par Ruta Datos
def 1 → uso 3 Decisión 1 en V (6, FALSO)
def 1 → uso 6 F-V (2, VERDADERO)
def 1 → uso 8 F-F (2, FALSO)
def 3 → uso 6 V-V (6, VERDADERO)
def 3 → uso 8 V-F (6, FALSO)
def 6 → uso 8 Decisión 2 en V (2, VERDADERO)

D2 (costo ← 50 * 2) rompe el par def 3 → uso 6, que ninguna ruta de B1–B3 recorre.

UAS - Pruebas de software

Criterios de flujo de datos

Criterio Exige Casos ¿Detecta D2?
Todas las definiciones (all-defs) Cada definición llega a un uso 2 Sí
Todos los usos (all-uses) Cada definición llega a todos sus usos 4 Sí

En esta función pequeña, todos los usos coincide con todas las rutas. En código más grande exige bastante menos: solo sigue las rutas por las que viajan los valores.

UAS - Pruebas de software

Anomalías de flujo de datos

// Suma de adeudos + recargo de 15
1  recargo ← 10
2  i ← 1
3  MIENTRAS i <= longitud(adeudos)
4      total ← total + adeudos[i]
5      i ← i + 1
6  FIN MIENTRAS
7  recargo ← 15
8  RETORNAR total
Anomalía Dónde
Uso sin definición (ur) total, línea 4
Doble definición (dd) recargo, líneas 1 y 7
Definición sin uso (du) recargo, línea 7

Se detectan leyendo el código, sin ejecutarlo.

UAS - Pruebas de software

Análisis estático de código

Prueba dinámica

Ejecuta, observa una falla y después busca el defecto que la causó.

Análisis estático

Señala el defecto directamente, antes de que haya una falla.

Se agrupa con la caja blanca porque necesita el código, pero se clasifica como prueba estática: no diseña casos (REF-U3-04, REF-U3-19).

UAS - Pruebas de software

Qué detecta el análisis estático

Hallazgo Ejemplo
Código inalcanzable Línea 4 de clasificarEdad
Variable sin valor o sin uso total y recargo en sumarAdeudos
Condición siempre verdadera SI dias >= 1 O dias <= 14
División entre posible cero suma / longitud(multas) con lista vacía
Complejidad excesiva Módulo con V(G) muy alto

No compara contra la especificación: D1 (costo + 80) es código válido y ningún analizador lo detecta.

UAS - Pruebas de software

Límites de la caja blanca

No ve lo que falta

Si nadie programó un requisito, no hay ruta que lo ejecute.

Oráculo

El esperado sale de la especificación. Si sale del código, el defecto se copia.

Cobertura ≠ corrección

Algunos defectos solo aparecen con ciertos datos de la misma ruta.

Necesita el código

Se usa sobre todo en el nivel unitario.

UAS - Pruebas de software

Caja gris: entre los dos enfoques

Conocimiento interno Casos que sugiere
Modelo de datos: titulo de 100 caracteres Límites 100 y 101
Interfaz: el tipo de usuario viaja como texto DOCENTE, Docente, docente
Estado: contador librosPrestados Secuencia de préstamos y revisión del contador

Complemento de 3.2.1–3.2.2. No es un tema propio del programa. Se usa más en integración y sistema.

UAS - Pruebas de software

Caja gris: ejemplos (SPB)

Los datos de diseño son supuestos académicos.

Caso Qué hace Esperado Busca
CG-02 Título de 101 caracteres Mensaje claro de máximo excedido Recorte silencioso
CG-04 Devolución de Docente, 4 días 12 MXN (RN-04) 20 MXN por la interfaz
CG-06 3.er préstamo de ESTUDIANTE, revisar librosPrestados e intentar el 4.º 3, y el 4.º rechazado (RN-02) Contador sin incrementar

Si la especificación calla (CG-02), se registra la pregunta. El comportamiento actual no es el esperado por definición.

UAS - Pruebas de software

Negra, gris y blanca

Aspecto Caja negra Caja gris Caja blanca
Conocimiento interno Ninguno Parcial: diseño, datos, interfaces Completo: código
Base del diseño Especificación Especificación y diseño Código
Ejecución Interfaz externa Interfaz externa y estado interno Llamada directa al código
Nivel típico Sistema, aceptación Integración, sistema Unitario

En los tres, el resultado esperado sale de la especificación. En las Unidades IV y V aplicarás la caja gris a bases de datos y APIs.

UAS - Pruebas de software

Relación con el Laboratorio 02

El grafo, las rutas y la complejidad ciclomática se practican en el Laboratorio 02 — Caja blanca: grafo, rutas y complejidad ciclomática: primero con calcularMulta del SPB y después con el pseudocódigo de una regla de tu proyecto base.

UAS - Pruebas de software

Bloque 5

Pruebas exploratorias y basadas en riesgos

UAS - Pruebas de software

Pruebas exploratorias: ¿qué problema resuelven?

Las técnicas anteriores solo prueban lo que alguien anticipó. Muchos problemas aparecen en situaciones que nadie escribió: secuencias raras, interrupciones, datos extraños.

Prueba con guion  ◄────────────────────────────►  Prueba exploratoria
(casos escritos antes)                            (diseñar, ejecutar y aprender a la vez)

Explorar no es "probar sin plan": la exploración está delimitada por una misión, un tiempo y un registro.

UAS - Pruebas de software

¿Qué es un charter?

Enfoca

Evita "probar de todo un poco".

Delimita

Dice cuándo se cumplió la misión.

Comunica

Otra persona sabe qué se exploró.

Planifica

Los charters se priorizan por riesgo.

UAS - Pruebas de software

Estructura del charter

Explorar       el registro de devoluciones
con            fechas de entrega cercanas a fin de mes y ambos tipos de usuario
para descubrir errores en el cálculo de los días de retraso y de la multa

Formato explorar–con–para descubrir propuesto por Hendrickson (REF-U3-18, PENDIENTE DE VERIFICACIÓN).

UAS - Pruebas de software

Buenos y malos charters

Charter Diagnóstico
"Explorar el SPB para encontrar errores." Demasiado amplio
"Verificar que con 3 días la multa de un ESTUDIANTE es 15." Demasiado estrecho: es un caso de prueba
"Explorar la búsqueda con títulos con acentos, signos y textos muy largos para descubrir resultados incompletos o mensajes confusos." Equilibrado

Fuentes de charters: matriz de riesgo, escenarios negativos y de límite, preguntas abiertas de las tablas de decisión, hallazgos previos.

UAS - Pruebas de software

La sesión exploratoria

01 PREPARAR

Leer el charter, preparar datos y ambiente

02 EXPLORAR

Probar, observar, anotar. Lo ajeno al charter es una oportunidad

03 CERRAR

Qué se exploró, qué se encontró, qué sigue

Gestión basada en sesiones (Bach, REF-U3-17, PENDIENTE DE VERIFICACIÓN). Hoja de sesión: charter, personas, tiempo, ambiente, notas, posibles defectos, preguntas, datos, oportunidades, cierre.

UAS - Pruebas de software

Ejemplo de notas de sesión (SPB)

Min Qué probé Qué observé Pregunta o posible defecto
2 Devolución ESTUDIANTE, 2 días tarde (fin de mes) 10 MXN — (correcto)
7 Misma devolución registrada dos veces Se cobra otra vez ¿Se puede devolver dos veces?
16 Fecha límite 28 de febrero, devuelto 1 de marzo 5 MXN ¿Días de retraso en año bisiesto?

Las notas registran también lo que funcionó: es información de cobertura.

UAS - Pruebas de software

Pruebas basadas en riesgos

Usan el riesgo de producto para decidir qué probar primero, con qué técnicas, en qué niveles y con cuánta profundidad.

Factores de impacto

Dinero, usuarios afectados y frecuencia de uso, consecuencias legales o de privacidad, reputación.

Factores de probabilidad

Complejidad (V(G) alto), código nuevo, dependencias externas, tecnología nueva, defectos previos.

Proceso: identificar → analizar → priorizar y tratar → monitorear. Escala: 1 bajo, 2 medio, 3 alto (en la Unidad I: alto/medio/bajo).

UAS - Pruebas de software

Del riesgo al tratamiento

Área del SPB I P Riesgo Tratamiento
Cálculo de multa (RN-04) 3 2 6 — Alto Primero, con varias técnicas, niveles y exploración
Autorización (RN-03) 3 2 6 — Alto Tabla de decisión, valores límite, caja blanca
Búsqueda (RF-03) 2 1 2 — Bajo Partición mínima y exploración breve

Escala: 6–9 alto, 3–4 medio, 1–2 bajo.

UAS - Pruebas de software

Actividad A3 — Riesgo y exploración

Construye la matriz de riesgo y los charters de tu proyecto base, y practica una sesión exploratoria de 20 minutos sobre la aplicación que indique tu docente.

Instrucciones completas: Actividades de la Unidad 03, Actividad A3.

UAS - Pruebas de software

Bloque 6

Planificación de pruebas

UAS - Pruebas de software

¿Qué es un plan de pruebas?

El documento que dice antes de ejecutar qué se prueba, qué no, cómo, con qué, quién, cuándo empieza y cuándo termina.

Término Alcance
Estrategia de la organización Reglas generales para todos los proyectos
Plan de pruebas Cómo se prueba este proyecto o versión
Estrategia del plan Niveles, tipos y técnicas por funcionalidad

Es un documento vivo: cambia con los requisitos, los riesgos y el calendario, y cada cambio se registra.

UAS - Pruebas de software

¿Qué responde un plan de pruebas?

¿Qué?

Objetivo y alcance.

¿Cómo?

Estrategia: niveles, tipos, técnicas, prioridad.

¿Cuándo empezar y terminar?

Criterios de entrada y salida.

¿Con qué?

Datos y ambiente de pruebas.

¿Qué podría impedirlo?

Riesgos de prueba.

¿Cómo se demuestra?

Documentación y evidencias.

UAS - Pruebas de software

Objetivo y alcance

Verificable

"Comprobar que RF-01, RF-02 y RN-01 a RN-04 se cumplen en la versión 1.0, para decidir su liberación".

No verificable

"Asegurar que el sistema funcione bien".

El alcance dice qué se incluye y qué se excluye, con justificación. Ejemplo: RNF-01 queda fuera de esta versión porque el rendimiento se trabaja en la Unidad VI.

UAS - Pruebas de software

Estrategia de pruebas

Funcionalidad / regla Riesgo Niveles Técnicas Prioridad
RN-04 Multa Alto Unitaria, sistema Partición de salidas, valores límite, caja blanca 1
RF-03 Búsqueda Bajo Sistema Partición, exploratoria 3

"Caja negra" es un enfoque, no una técnica: la estrategia nombra la técnica concreta y por qué esa.

UAS - Pruebas de software

Criterios de entrada y salida

Entrada — para iniciar

Ambiente disponible · versión identificada · casos de prioridad 1 revisados · datos cargados.

Salida — para terminar

Ejecución (100 % de prioridad 1) · defectos (ninguno alto abierto) · cobertura (100 % de requisitos del alcance) · tiempo con riesgo aceptado.

Suspensión: cuándo detener porque continuar no informa nada. Reanudación: cuándo retomar.

UAS - Pruebas de software

Datos y ambientes de prueba

Datos de prueba

Se preparan, se controlan (estado y restablecimiento) y se protegen. Un caso depende del estado de sus datos.

Ambiente de pruebas

Hardware, software, configuración y servicios. Separado de producción y documentado. Si aún no existe, se describe el previsto.

Un resultado solo es reproducible si se conocen sus datos y su ambiente.

UAS - Pruebas de software

Riesgo de producto y riesgo de prueba

Riesgo de producto (3.2.4) Riesgo de prueba (3.3.5)
Sobre El software El proceso de prueba
Ejemplo Error en el cálculo de multas El ambiente no está listo a tiempo
Decide Qué probar primero Qué contingencia preparar
En el plan Sección 5.1 Sección 10

Fuentes de riesgos de prueba: personas, ambiente, requisitos ambiguos, tiempo, herramientas.

UAS - Pruebas de software

El formato del plan de pruebas de la materia

1–4

Identificación · objetivo · alcance · insumos

5

Estrategia: riesgo, técnicas, charters, recursos

6–7

Criterios de entrada, salida, suspensión

8–9

Datos y ambiente

10

Riesgos de prueba

11

Roles y calendario

12

Documentación y evidencias

A–B

Casos de prueba · caja blanca

Explicación de cada sección y plantilla: Formato del Plan de Pruebas — Unidad 03. Simplificación didáctica inspirada en los estándares.

UAS - Pruebas de software

Actividad A4 — Estrategia y criterios del SPB

Redacta, para el SPB y con el formato de la materia: objetivo, alcance, estrategia, criterios, datos, ambiente y riesgos de prueba.

Es un ensayo sobre el caso común antes del plan de tu proyecto base.

Instrucciones completas: Actividades de la Unidad 03, Actividad A4.

UAS - Pruebas de software

Bloque 7

Estándares y documentación

UAS - Pruebas de software

Estándares de referencia

Estándar Qué aporta a esta unidad
ISO/IEC/IEEE 29119-1 Conceptos y vocabulario
ISO/IEC/IEEE 29119-2 Procesos de prueba, enfoque basado en riesgos
ISO/IEC/IEEE 29119-3 Documentación: plan, casos, reportes
ISO/IEC/IEEE 29119-4 Técnicas: especificación, estructura, experiencia
IEEE 829-2008 Documentación. Referencia histórica en la materia
ISO/IEC 25010 Características de calidad para el alcance no funcional

Un estándar se usa como referencia y vocabulario común, no se "aplica completo" en un proyecto académico.

UAS - Pruebas de software

Documentos de prueba

Documento ¿En esta unidad?
Plan de pruebas Sí
Especificación de casos de prueba Sí (anexos del plan)
Procedimiento de prueba Unidades IV y V
Registro de ejecución Se define en el plan. Se produce desde la Unidad IV
Reporte de incidente o defecto Unidad VII
Reporte de resultados Unidad VII

La denominación exacta varía entre normas y ediciones.

UAS - Pruebas de software

Evidencias de ejecución

Una evidencia útil responde, sin preguntarle a nadie:

¿Qué?

ID del caso.

¿Cuándo y dónde?

Fecha, versión y ambiente.

¿Con qué?

Datos utilizados.

¿Qué se esperaba?

Resultado esperado.

¿Qué pasó?

Resultado obtenido y veredicto.

¿Quién?

Persona que ejecutó.

Una captura sin ID, fecha ni resultado esperado no es evidencia: es una imagen.

UAS - Pruebas de software

Relación con el Laboratorio 03 — evidencia oficial

Todo lo de los bloques 5 a 7 se integra en el Laboratorio 03 — Plan de pruebas del proyecto integrador, la evidencia oficial de la Unidad III (Hito 3), que reúne lo que tu equipo produjo en las Unidades I y II y en los Laboratorios 01 y 02.

Criterios de desempeño: Rúbrica de la Unidad 03.

UAS - Pruebas de software

Cierre — volviendo al SPB

  • Nivel: la multa se prueba como función, en su conversación con otros componentes, en pantalla y con la persona bibliotecaria.
  • Técnica: partición y valores límite para RN-01 y RN-02, tabla de decisión para RN-03, particiones de salida y caja blanca para RN-04, y charter para la búsqueda.
  • Orden: primero RN-03 y RN-04, por su riesgo alto.
  • Terminar: cuando se cumplan criterios de salida escritos antes de empezar.
  • Demostrar: con casos documentados y evidencias revisables.
UAS - Pruebas de software

En síntesis

  • Niveles por objeto de prueba. Tipos por característica evaluada.
  • Un caso concreta un escenario con datos, técnica y oráculo.
  • Partición evita repetir esfuerzo. Valores límite atrapan los bordes. Tablas de decisión cubren combinaciones y revelan huecos.
  • Grafo, rutas base y V(G) guían la cobertura de la lógica. Ciclos y flujo de datos la completan. Ninguna cobertura garantiza encontrar todo.
  • El análisis estático encuentra defectos sin ejecutar. La caja gris usa lo que se sabe del diseño.
  • Charter y sesión para explorar. Riesgo para priorizar.
  • El plan fija qué, cómo, con qué, cuándo empezar y cuándo terminar.
UAS - Pruebas de software

Lo que sigue

En la Unidad IV vas a escribir y ejecutar pruebas unitarias y de integración automatizadas, a partir de casos como los que diseñaste en esta unidad.

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).
  • Crispin y Gregory — Agile Testing (2009).
  • ISO/IEC/IEEE 29119 (Partes 1 a 4), IEEE 829-2008 e ISO/IEC 25010.
  • Complementarias (PENDIENTE DE VERIFICACIÓN): McCabe (1976), Watson y McCabe (1996), Bach (2000), Hendrickson (2013) e ISTQB CTFL v4.0 (2023).

Ficha completa de cada fuente: unidad03/referencias/unidad03_materiales_referencias.md (REF-U3-01 a REF-U3-19).

UAS - Pruebas de software

estado: BORRADOR version: 2.0 — ampliación teórica, los laboratorios solo se referencian (D-007 a D-010) fuente: unidad03_manual_estudiante.md, unidad03_actividades.md, FORMATO_PLAN_PRUEBAS.md, CONTEXTO_UNIDAD.md, PLANEACION_UNIDAD.md, planeacion/unidad03_planeacion_clases.md propósito: presentación de apoyo docente/estudiante de la Unidad 3 No sustituye el manual del estudiante, las actividades ni los laboratorios. Contenido derivado del manual, 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 Sistema de Préstamos de Biblioteca (SPB) es el caso común ilustrativo y ficticio de la unidad (CONTEXTO_UNIDAD.md §10). Sus datos no deben cambiarse aquí - los ejemplos resueltos usan RN-01, RN-04, validarDias, calcularPrecioEnvio, contarPrestamosVencidos y un ejemplo genérico de envío. No resuelven los laboratorios - las diapositivas de laboratorio solo indican la relación con el laboratorio. Las instrucciones viven en el archivo de cada laboratorio - no introducir automatización, herramientas ni contenidos de las Unidades IV en adelante