Inicio / Verificar lo que devuelve
El remedio contra la invención también puede inventar
Un dispositivo de verificación es un entregable como cualquier otro, producido por el mismo tipo de mecanismo que lo que controla: repetir ese mecanismo una segunda vez no lo hace independiente, solo un método realmente distinto lo demuestra.
Un dispositivo de verificación, script o agente, es un entregable como cualquier otro: está producido por el mismo tipo de mecanismo que lo que controla, y nada lo exime del riesgo que se supone debe cubrir. Un control que da un veredicto tranquilizador no ha probado nada más que un control que da un veredicto preocupante, mientras su propio método no haya sido puesto a prueba de una manera realmente distinta.
Repetir no es verificar
Volver a lanzar un control una segunda vez da la impresión de una confirmación. No es el caso en cuanto el bug es determinista: el mismo código, sobre la misma entrada, produce dos veces el mismo error, y la coincidencia entre los dos pases solo prueba la estabilidad del bug, no su ausencia. Un script escrito para contar las ocurrencias del nombre de campo ADMIN_PASSWORD en un archivo de configuración, mediante una búsqueda de subcadena sensible a mayúsculas y minúsculas, da una sola ocurrencia en la primera ejecución, y de nuevo una sola en la segunda.
node compteA.js fixture.txt
occurrences trouvees : 1
node compteA.js fixture.txt
occurrences trouvees : 1
El archivo controlado contiene sin embargo dos líneas que asignan esa contraseña, una escrita en mayúsculas, la otra en minúsculas. La repetición tranquiliza sin aportar nada: es un método distinto, no una segunda ejecución del mismo método, lo que cambia el resultado. Un segundo script, construido de otra manera, divide cada línea por el signo igual y compara en minúsculas el nombre de campo obtenido, en lugar de buscar una subcadena exacta.
node compteB.js fixture.txt
occurrences trouvees : 2
Dos instancias del mismo mecanismo no son independientes
Esta confusión se reencuentra a mayor escala con un agente encargado de revisar a otro agente. Dos modelos, incluso bajo nombres distintos, comparten a menudo los mismos puntos ciegos de entrenamiento: su coincidencia no es la prueba de una verdad, es la prueba de un parecido de método. La independencia que cuenta no es la de la instancia, un segundo lanzamiento, una segunda IA del mismo tipo. Es la del método: un algoritmo de recuento distinto, una lectura manual de una muestra, una fuente que no ha sido producida por el dispositivo que se busca controlar.
La regla práctica se reduce a una pregunta, planteada antes de confiar en cualquier veredicto de control: ¿este segundo resultado viene de un método que podría fallar de una manera distinta, o solo del mismo método repetido? En el primer caso, la coincidencia cuenta. En el segundo, no prueba nada más que la primera ejecución.
Este principio prolonga prueba el verificador antes de creer su veredicto: una autoprueba con un caso conocido basta para detectar un control roto, pero solo un método realmente distinto permite luego confiar en un control que ya parece funcionar. También se une a un verde no prueba nada hasta que no ha sido probado el mismo: un testigo positivo prueba que un control sabe detectar, una segunda ejecución del mismo control nunca lo prueba dos veces.
Repetir el mismo control, o cambiar de método
El mismo script se ejecuta una segunda vez sobre la misma entrada, con el mismo bug: el resultado no cambia, confirma su propio error sin aprender nada nuevo.
Un segundo mecanismo, construido de otra manera, se ejecuta sobre la misma entrada: la diferencia entre los dos resultados revela lo que el primer método no podía ver por sí solo.
Un script busca el nombre de campo ADMIN_PASSWORD en un archivo mediante una búsqueda de subcadena sensible a mayúsculas y minúsculas. Se ejecuta una primera vez y cuenta una ocurrencia. Se ejecuta una segunda vez sobre la misma versión del archivo y la misma versión del script, y vuelve a contar una ocurrencia.
Escribe en una frase lo que este resultado establece, y en una frase lo que no establece.
Lo que esto establece: El segundo pase confirma la estabilidad del resultado dado por este método concreto, ejecución tras ejecución.
Lo que esto no establece: No establece que ese recuento de una ocurrencia sea el recuento correcto, ya que el mismo método, repetido de forma idéntica, no puede revelar un error que ya cometía en el primer pase.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Los dos pases idénticos confirman que el recuento de una ocurrencia es exacto y completo.
- Demasiado estrecho Dos ejecuciones idénticas no aportan ninguna información, ni siquiera sobre la estabilidad del método empleado.
- Fuera de lugar Las dos ejecuciones muestran que el script se ejecuta rápidamente sobre ese archivo.
- Un dispositivo de verificación está producido por el mismo tipo de mecanismo que lo que controla, y nunca está exento del riesgo que se supone debe cubrir.
- Un bug determinista repetido sobre la misma entrada, con el mismo método, produce dos veces el mismo error: la coincidencia entre los dos pases no prueba nada nuevo.
- Dos instancias del mismo tipo de mecanismo, dos modelos o dos ejecuciones del mismo script, comparten a menudo los mismos puntos ciegos y no se verifican una a la otra.
- La independencia que cuenta es la del método, un algoritmo distinto o una lectura independiente, nunca la de la instancia que lo ejecuta.
Retoma un control automático que ya uses, y valida su último veredicto mediante un método realmente distinto, otro algoritmo o una verificación manual sobre una muestra, antes de seguir confiando en él para un caso importante.