Prueba de regresión: definición, ejemplo y equivalente en inglés
Una prueba de regresión comprueba que un comportamiento que era correcto sigue siéndolo después de un cambio. Para una regla booleana, la más afilada es una comprobación de equivalencia entre la versión antigua y la nueva, que nombra cada fila en que difieren.
Las pruebas de regresión son las pruebas que se conservan: casos registrados cuando una regla se sabía correcta, repetidos después de cada edición. Su trabajo es detectar cambios no deseados, así que una prueba de regresión que falla tras un cambio deliberado es información, no necesariamente un error; significa que el cambio alcanzó ese caso. Para reglas lo bastante pequeñas como para tabularlas, la tabla entera es la batería de regresión, y comparar dos versiones fila a fila muestra exactamente qué cambió, cosa que ninguna muestra de casos puede prometer.
El artefacto de esta página compara v1 = (member OR invited) AND NOT banned con v2 = (member OR invited OR staff) AND NOT banned, que añade una cuarta entrada. En la tabla de 16 filas, las dos columnas difieren exactamente en una fila, la 1, y la comprobación de equivalencia se viola con ese contraejemplo: member = FALSE, invited = FALSE, banned = FALSE, staff = TRUE, donde v1 rechaza y v2 admite. Todas las demás filas siguen iguales, así que la edición hizo lo que pretendía y nada más; un empleado vetado sigue rechazado en v2.
Las pruebas de regresión son la práctica diaria de todo equipo de software, normalmente como batería ejecutada en integración continua. Para reglas, la comparación fila a fila de esta página es la forma más fuerte: encuentra la única fila cambiada de dieciséis sin que nadie tenga que pensar en ella. El término se confunde con la re-prueba (comprobar que un arreglo arregló el error) y con la regresión en sentido estadístico, que no tiene relación.
Ejemplo
v1 := (member OR invited) AND NOT banned · salidav2 := (member OR invited OR staff) AND NOT banned · salida
Comprobaciones exactas
Tabla de verdad (16 filas)
| # | member | invited | banned | staff | v1 | v2 |
|---|---|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | FALSO | VERDADERO | FALSO | VERDADERO |
| 2 | FALSO | FALSO | VERDADERO | FALSO | FALSO | FALSO |
| 3 | FALSO | FALSO | VERDADERO | VERDADERO | FALSO | FALSO |
| 4 | FALSO | VERDADERO | FALSO | FALSO | VERDADERO | VERDADERO |
| 5 | FALSO | VERDADERO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 6 | FALSO | VERDADERO | VERDADERO | FALSO | FALSO | FALSO |
| 7 | FALSO | VERDADERO | VERDADERO | VERDADERO | FALSO | FALSO |
| 8 | VERDADERO | FALSO | FALSO | FALSO | VERDADERO | VERDADERO |
| 9 | VERDADERO | FALSO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 10 | VERDADERO | FALSO | VERDADERO | FALSO | FALSO | FALSO |
| 11 | VERDADERO | FALSO | VERDADERO | VERDADERO | FALSO | FALSO |
| 12 | VERDADERO | VERDADERO | FALSO | FALSO | VERDADERO | VERDADERO |
| 13 | VERDADERO | VERDADERO | FALSO | VERDADERO | VERDADERO | VERDADERO |
| 14 | VERDADERO | VERDADERO | VERDADERO | FALSO | FALSO | FALSO |
| 15 | VERDADERO | VERDADERO | VERDADERO | VERDADERO | FALSO | FALSO |
Lectura en lenguaje claro
Principiantev1 es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. al menos uno entre member e invited es verdadero (pueden serlo ambos)
2. banned es falso
En todos los demás casos, v1 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.
- NOT (NO) invierte un valor: lo verdadero pasa a ser falso y lo falso, verdadero.
Intermediov1 es verdadero exactamente cuando se cumplen las dos condiciones siguientes:
1. al menos uno entre member e invited es verdadero (pueden serlo ambos)
2. banned es falso
En todos los demás casos, v1 es falso.
Avanzadov1 es verdadero exactamente cuando se cumplen las dos condiciones siguientes [conjunción ∧]:
1. al menos uno entre member e invited es verdadero (pueden serlo ambos) [disyunción inclusiva ∨]
2. banned es falso [negación ¬]
En todos los demás casos, v1 es falso.
Notación formal: (member ∨ invited) ∧ ¬banned
El error habitual
Conservar los resultados esperados antiguos tras un cambio deliberado. Cuando v2 admite al personal a propósito, la expectativa registrada para la fila 1 debe cambiar con él; dejarla hace que la batería falle para siempre o, peor, tienta a alguien a borrar la prueba. Conviene registrar las filas que difieren según la comprobación de equivalencia y actualizar exactamente esas.
Preguntas
¿Añadir una entrada rompe la comparación con la versión antigua?
No. La tabla se construye sobre la unión de las entradas, y v1 simplemente ignora staff en todas las filas. La única fila que difiere es aquella en que staff por sí sola admitiría a alguien, que es exactamente el cambio pretendido.
Relacionado
Véase también
- Pruebas de regresión para reglas de decisión que cambian
- Comprobador de equivalencia lógica: dos expresiones, veredicto exacto, contraejemplo
- Oráculo de prueba (resultado esperado): definición, ejemplo y equivalente en inglés
- Equivalencia lógica: definición, ejemplo y equivalente en inglés
- Pruebas de mutación: definición, ejemplo y equivalente en inglés
- Lista de revisión de reglas de decisión (para analistas y revisores)
Glosario
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.