Cobertura de condición frente a cobertura de decisión (ramas)
La cobertura de decisión pide que el resultado de la regla sea VERDADERO en alguna prueba y FALSO en otra. La cobertura de condición pide lo mismo de cada condición. Ninguna muestra que una condición importe, y la regla de alarma de abajo es lo bastante pequeña para ver por qué en ocho filas.
La regla es armed AND (door OR window): la alarma suena cuando el sistema está armado y se abre una puerta o una ventana. La cobertura de decisión se cumple con dos pruebas, una que hace sonar la alarma y otra que no. La cobertura de condición se cumple con dos pruebas que pasan armed, door y window por sus dos valores, por ejemplo todo VERDADERO y todo FALSO, que además satisfacen la cobertura de decisión. Ninguno de los dos pares de pruebas dice nada sobre la ventana.
Los pares de independencia del motor sí. Para armed: door = FALSO, window = VERDADERO con el sistema desarmado (silencio) frente a armado (alarma). Para door: armado con las dos cerradas (silencio) frente a puerta abierta (alarma). Para window: armado con las dos cerradas (silencio) frente a ventana abierta (alarma). Tres pares, cuatro escenarios, y ahora se ha mostrado que cada condición cambia el resultado por sí sola, que es MC/DC.
Los criterios más débiles no son inútiles; son comprobaciones iniciales baratas. Lo importante es lo que no prometen: un sensor de ventana conectado a nada aprueba los dos, y un conjunto de pruebas diseñado para el criterio más fuerte es el que lo nota. Las páginas de patrones sobre alarmas y control de acceso, y la lección sobre diseño de pruebas, reutilizan esta regla.
Ejemplo
alarm := armed AND (door OR window) · salida
Comprobaciones exactas
Tabla de verdad (8 filas)
| # | armed | door | window | alarm |
|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | VERDADERO | FALSO |
| 2 | FALSO | VERDADERO | FALSO | FALSO |
| 3 | FALSO | VERDADERO | VERDADERO | FALSO |
| 4 | VERDADERO | FALSO | FALSO | FALSO |
| 5 | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO |
| 7 | VERDADERO | VERDADERO | VERDADERO | VERDADERO |
Lectura en lenguaje claro
Principiantealarm es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. armed es verdadero
2. al menos uno entre door y window es verdadero (pueden serlo ambos)
En todos los demás casos, alarm es falso.
Sobre los operadores:
- AND (Y) solo es verdadero cuando todas sus partes son verdaderas.
- OR (O) es inclusivo: es verdadero en cuanto al menos una parte es verdadera, también cuando lo son varias.
Intermedioalarm es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. armed es verdadero
2. al menos uno entre door y window es verdadero (pueden serlo ambos)
En todos los demás casos, alarm es falso.
Avanzadoalarm es verdadero exactamente cuando se cumplen las dos condiciones siguientes [conjunción ∧]:
1. armed es verdadero
2. al menos uno entre door y window es verdadero (pueden serlo ambos) [disyunción inclusiva ∨]
En todos los demás casos, alarm es falso.
Notación formal: armed ∧ (door ∨ window)
Diagrama lógico
MC/DC
| Entrada | Estado | Par de independencia (solo esa entrada cambia) |
|---|---|---|
| armed | found | armed=F, door=F, window=T → F | armed=T, door=F, window=T → T |
| door | found | armed=T, door=F, window=F → F | armed=T, door=T, window=F → T |
| window | found | armed=T, door=F, window=F → F | armed=T, door=F, window=T → T |
El error habitual
Tomar «cada condición fue VERDADERA y FALSA en alguna prueba» como evidencia de que cada condición se probó. Es evidencia de que los valores ocurrieron, no de que importaran; la ventana puede ser VERDADERA en una prueba en la que la puerta ya estaba abierta y no cambiar nada.
Preguntas
¿La cobertura de decisión es lo mismo que la cobertura de ramas?
Para una regla con un resultado, sí: la decisión es la rama. La cobertura estructural de ramas del código añade cada if y cada bucle; la decisión de la regla es una de ellas.
¿Cuántas pruebas necesitan aquí los tres criterios?
Decisión: dos. Condición: dos. MC/DC: cuatro, de los tres pares que comparten el escenario armado-todo-cerrado. La tabla completa tiene ocho.
Relacionado
Ejercicios
Véase también
- MC/DC frente a cobertura de condición y cobertura de condición múltiple
- MC/DC explicado: cobertura de condición/decisión modificada para reglas booleanas
- Cobertura de decisión: definición, ejemplo y equivalente en inglés
- Cobertura de condición: definición, ejemplo y equivalente en inglés
- MC/DC (cobertura de condición/decisión modificada): definición, ejemplo y equivalente en inglés
- Regla de alarma: armada AND (puerta OR ventana OR movimiento) AND NOT codigo
- Lección 12: Diseñar pruebas que encuentren errores
Pruebas y reglas
- Tabla de decisión frente a tabla de verdad: cuándo usar cada una
- Prueba con tabla de decisión, ejemplo resuelto (estilo ISTQB Foundation 4.2.3)
- MC/DC explicado: cobertura de condición/decisión modificada para reglas booleanas
- Pares de independencia MC/DC, ejemplo resuelto con el informe de cobertura del motor
Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.