Title: Actividad 7: Pruebas de Caja Blanca y Caja Negra
Course: 2025 - LI - Pruebas de Software 3-1 y 3-2 > Section: Unidad 2 - Ingeniería de pruebas y planificación

Objetivo
Distinguir entre pruebas de caja blanca y pruebas de caja negra, y aplicar técnicas básicas de diseño de casos de prueba en cada enfoque.

Instrucciones

1. Identificación
En la parte superior del documento escribe tu nombre completo y el nombre del profesor.
2. Conceptos clave (breve y con tus palabras)

- Define qué son las pruebas de caja blanca (enfocadas en la estructura interna del código).
- Define qué son las pruebas de caja negra (enfocadas en entradas/salidas y requisitos, sin ver el código).
- Menciona una ventaja y una limitación de cada enfoque.

1. Caja negra – diseño de casos de prueba (sin código)
Trabaja con esta especificación de función (solo requisitos):

“calcularEnvio(totalCompra, tipoCliente) devuelve el costo de envío.
Regla 1: si totalCompra ≥ 1000, envío gratis (0).
Regla 2: si tipoCliente = 'premium', envío mitad de precio.
Regla 3: costo base de envío = 120.”

- a) Usa Particiones de Equivalencia para proponer 3–5 casos de prueba que cubran escenarios representativos.
- b) Usa Análisis de Fronteras para proponer 3 casos adicionales alrededor del umbral 1000 (por debajo, igual, por encima).
- c) Para cada caso: anota entrada(s), resultado esperado y justificación (qué regla/requisito valida).

1. Caja blanca – cobertura (sin código, con pseudocódigo mínimo)
Con el siguiente pseudocódigo:

func aplicarDescuento(monto, cupon):
    desc = 0
    if cupon == "A":
        if monto >= 500: desc = 0.15
        else:            desc = 0.05
    else if cupon == "B":
        desc = 0.10
    else:
        desc = 0
    total = monto * (1 - desc)
    return total


- a) Dibuja un pequeño diagrama de flujo (a mano o digital) marcando decisiones.
- b) Propón un conjunto mínimo de casos para lograr cobertura de decisiones (branch coverage).
  - Indica qué camino cubre cada caso (ej.: cupon="A", monto=600 → “A y monto≥500”).
- c) (Opcional) Si puedes, propone casos para cobertura de condiciones (que cada condición booleana tome verdadero y falso al menos una vez).

1. Comparación breve
En 6–8 líneas, explica cuándo conviene usar caja negra vs. caja blanca en un proyecto real (por ejemplo, validación de requisitos vs. asegurar caminos internos críticos).
2. Conclusión personal
En 4–6 líneas, comenta qué aprendiste diseñando casos con ambos enfoques y qué te resultó más retador.

Evidencia

- Documento con los conceptos, los casos de prueba para caja negra, el diagrama/tabla de caja blanca y la comparación.
- Si el diagrama es a mano, incluye foto clara insertada en el documento.

Método de entrega

Convierte tu trabajo a PDF y súbelo a la plataforma.

Objetivo
Distinguir entre pruebas de caja blanca y pruebas de caja negra, y aplicar técnicas básicas de diseño de casos de prueba en cada enfoque.

Instrucciones

1. Identificación
En la parte superior del documento escribe tu nombre completo y el nombre del profesor.
2. Conceptos clave (breve y con tus palabras)

- Define qué son las pruebas de caja blanca (enfocadas en la estructura interna del código).
- Define qué son las pruebas de caja negra (enfocadas en entradas/salidas y requisitos, sin ver el código).
- Menciona una ventaja y una limitación de cada enfoque.

1. Caja negra – diseño de casos de prueba (sin código)
Trabaja con esta especificación de función (solo requisitos):

“calcularEnvio(totalCompra, tipoCliente) devuelve el costo de envío.
Regla 1: si totalCompra ≥ 1000, envío gratis (0).
Regla 2: si tipoCliente = 'premium', envío mitad de precio.
Regla 3: costo base de envío = 120.”

- a) Usa Particiones de Equivalencia para proponer 3–5 casos de prueba que cubran escenarios representativos.
- b) Usa Análisis de Fronteras para proponer 3 casos adicionales alrededor del umbral 1000 (por debajo, igual, por encima).
- c) Para cada caso: anota entrada(s), resultado esperado y justificación (qué regla/requisito valida).

1. Caja blanca – cobertura (sin código, con pseudocódigo mínimo)
Con el siguiente pseudocódigo:

func aplicarDescuento(monto, cupon):
    desc = 0
    if cupon == "A":
        if monto >= 500: desc = 0.15
        else:            desc = 0.05
    else if cupon == "B":
        desc = 0.10
    else:
        desc = 0
    total = monto * (1 - desc)
    return total


- a) Dibuja un pequeño diagrama de flujo (a mano o digital) marcando decisiones.
- b) Propón un conjunto mínimo de casos para lograr cobertura de decisiones (branch coverage).
  - Indica qué camino cubre cada caso (ej.: cupon="A", monto=600 → “A y monto≥500”).
- c) (Opcional) Si puedes, propone casos para cobertura de condiciones (que cada condición booleana tome verdadero y falso al menos una vez).

1. Comparación breve
En 6–8 líneas, explica cuándo conviene usar caja negra vs. caja blanca en un proyecto real (por ejemplo, validación de requisitos vs. asegurar caminos internos críticos).
2. Conclusión personal
En 4–6 líneas, comenta qué aprendiste diseñando casos con ambos enfoques y qué te resultó más retador.

Evidencia

- Documento con los conceptos, los casos de prueba para caja negra, el diagrama/tabla de caja blanca y la comparación.
- Si el diagrama es a mano, incluye foto clara insertada en el documento.

Método de entrega

Convierte tu trabajo a PDF y súbelo a la plataforma.