Saltar al contenido

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

¿Siempre verdadera (tautología)? No Contraejemplo: member = F, invited = F, banned = F · Exhaustively checked and solver cross-checked · 1 filas
¿Siempre falsa (contradicción)? No Contraejemplo: member = F, invited = V, banned = F · Exhaustively checked and solver cross-checked · 3 filas
¿Puede ser verdadera? Sí Asignación de ejemplo: member = F, invited = V, banned = F · Exhaustively checked and solver cross-checked · 3 filas
¿Son equivalentes original y operator_mutant? No Contraejemplo: member = F, invited = V, banned = F · Exhaustively checked and solver cross-checked · 3 filas

Tabla de verdad (8 filas)

Mutante (superviviente, eliminado): definición, ejemplo y equivalente en inglés
#memberinvitedbannedoriginaloperator_mutant
0FALSOFALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROFALSOFALSO
2FALSOVERDADEROFALSOVERDADEROFALSO
3FALSOVERDADEROVERDADEROFALSOFALSO
4VERDADEROFALSOFALSOVERDADEROFALSO
5VERDADEROFALSOVERDADEROFALSOFALSO
6VERDADEROVERDADEROFALSOVERDADEROVERDADERO
7VERDADEROVERDADEROVERDADEROFALSOFALSO

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

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.