Mutante (superviviente, eliminado): definición, ejemplo y equivalente en inglés
Un mutante es una copia de una regla con un pequeño cambio deliberado. Queda eliminado cuando alguna prueba da un resultado distinto en el mutante que en el original, y sobrevive cuando todas las pruebas pasan en ambos.
Los mutantes se generan con operadores de mutación. Para una regla booleana el motor usa tres tipos: los mutantes de operador cambian una conectiva por otra, los de negación añaden o quitan un NOT, y los de literal sustituyen una variable por otra o por una constante. Cada mutante difiere del original en algún conjunto de filas de la tabla de verdad, quizá ninguna; un mutante que no difiere en ninguna fila es equivalente y no puede eliminarse. Una prueba elimina un mutante cuando su entrada está en una fila que difiere y su resultado esperado es el del original.
El artefacto de esta página es un mutante de operador junto a su original: original = (member OR invited) AND NOT banned y operator_mutant = (member AND invited) AND NOT banned, OR sustituido por AND. Las dos columnas difieren solo en las filas 2 y 4, donde exactamente uno de member e invited es verdadero y banned es falso. La comprobación de equivalencia se viola con el contraejemplo member = FALSE, invited = TRUE, banned = FALSE: el original admite a un invitado no socio, el mutante no. Una batería lo elimina solo si contiene una de esas filas.
Los mutantes son pequeños a propósito para que cada uno represente un error plausible, como escribir && por ||; una batería que los elimina todos ha comprobado al menos esos errores. Los mutantes con pocas filas que difieren son los más difíciles de eliminar y los más informativos, como muestra este con dos filas de ocho. El término se confunde con un error (un mutante se siembra, no se encuentra) y con una variante escrita por un desarrollador.
Ejemplo
original := (member OR invited) AND NOT banned · salidaoperator_mutant := (member AND invited) AND NOT banned · salida
Comprobaciones exactas
Tabla de verdad (8 filas)
| # | member | invited | banned | original | operator_mutant |
|---|---|---|---|---|---|
| 0 | FALSO | FALSO | FALSO | FALSO | FALSO |
| 1 | FALSO | FALSO | VERDADERO | FALSO | FALSO |
| 2 | FALSO | VERDADERO | FALSO | VERDADERO | FALSO |
| 3 | FALSO | VERDADERO | VERDADERO | FALSO | FALSO |
| 4 | VERDADERO | FALSO | FALSO | VERDADERO | FALSO |
| 5 | VERDADERO | FALSO | VERDADERO | FALSO | FALSO |
| 6 | VERDADERO | VERDADERO | FALSO | VERDADERO | VERDADERO |
| 7 | VERDADERO | VERDADERO | VERDADERO | FALSO | FALSO |
Lectura en lenguaje claro
Principianteoriginal 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, original 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.
Intermediooriginal 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, original es falso.
Avanzadooriginal 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, original es falso.
Notación formal: (member ∨ invited) ∧ ¬banned
El error habitual
Probar solo el «camino feliz» y el caso con todo falso. Ni la fila 0 ni la fila 6 distinguen este mutante del original; solo las filas 2 y 4 lo hacen. Una batería puede pasar en el original, pasar en el mutante y no haber probado nada que separe OR de AND.
Preguntas
¿Cómo decide el motor si un mutante fue eliminado?
Evalúa cada caso de prueba contra el mutante y lo compara con el resultado esperado; cualquier discrepancia lo elimina. Antes, comprueba la equivalencia del mutante con el original en todas las filas, para que un mutante equivalente se informe como tal y no se cuente como superviviente.
Relacionado
Véase también
- Pruebas de mutación: definición, ejemplo y equivalente en inglés
- Pruebas de mutación para reglas booleanas: mutantes de operador, negación y literal
- Oráculo de prueba (resultado esperado): definición, ejemplo y equivalente en inglés
- Comprobador de equivalencia lógica: dos expresiones, veredicto exacto, contraejemplo
- Equivalencia lógica: definición, ejemplo y equivalente en inglés
- El error de la regla de entrada: socio OR (invitado AND NOT vetado) y el caso que difiere
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.