Ir al contenido
Mastering Claude

Inicio / Verificar lo que devuelve

Verificar lo que devuelve7 minFondation

Un verde no prueba nada hasta que no ha sido probado el mismo

Un control que nunca ha sido puesto en jaque por un caso que debe encontrar no ha probado nada: probar exige que un comando concreto se haya ejecutado y que su salida haya sido leída, y un detector roto da cero problemas, lo que se lee exactamente como un éxito.

Un script de verificación que informa cero problemas puede significar dos cosas opuestas: el sistema controlado está realmente limpio, o el control mismo ha dejado de funcionar. Nada en un resultado verde permite decidir entre las dos posibilidades mientras ese control no haya fallado al menos una vez frente a un caso que debe encontrar obligatoriamente.

La trampa del cero

Dos casos medidos hacen esta trampa concreta. Un patrón de escape roto produjo un día cero violaciones señaladas allí donde deberían haber aparecido miles. Otro patrón roto, a la inversa, señaló violaciones que no existían, y un orden de operaciones invertido produjo falsas alertas de manera continua en un caso real: la figura que acompaña esta lección cuantifica estos dos fallos. Ambos venían de la misma causa profunda, una verificación que nunca había sido probada sobre sí misma. El código de salida de una tarea programada plantea la misma trampa: un script puede anunciar un éxito mientras su trabajo falla.

El testigo positivo, demostrado por la ejecución

El remedio es una regla: un control debe buscar, en el mismo pase, al menos una cosa que debe encontrar, un caso conocido como malo: es el testigo positivo. La demostración se hace en pocas líneas. Un script que busca la palabra prohibida secreto en un archivo, con una expresión regular que olvidó la insensibilidad a mayúsculas, se ejecuta sobre un archivo que contiene dos veces esa palabra escrita con mayúscula inicial.

node verif.js fixture.txt
violations trouvees : 0

Cero. El archivo controlado contiene sin embargo dos ocurrencias de la palabra prohibida. Nada en este resultado distingue un archivo realmente limpio de un control roto, mientras nadie haya verificado que ese control sabe detectar un caso conocido. Añadir la insensibilidad a mayúsculas, exactamente el testigo que este control debe ahora encontrar, cambia el veredicto.

node verif2.js fixture.txt
violations trouvees : 2

Un cero puede venir de una búsqueda que no buscó nada

El registro de cambios de Claude Code de octubre de 2026 corrige dos casos en que Grep y Glob anunciaban «ningún resultado» aunque el programa de búsqueda había fallado o el destino no era legible: ahora devuelven un error, o reintentan una vez y luego lo señalan. Lo inverso también existía, la herramienta PowerShell tomando por error la salida vacía de una búsqueda pasada a Select-Object. Un lanzador de pruebas puede igualmente mostrar «pruebas 0, fallos 0»: cita la línea del contador, con un número distinto de cero, antes de leer el verde.

El detector también puede apuntar a otro sitio. El nombre de una clase CSS permanece en la hoja de estilo en línea aunque el elemento no se muestre, así que buscarlo no prueba nada. La demostración fabrica su propia página:

printf '<style>.promo{color:red}</style>\n<p>texto</p>\n' > page.html
grep -c promo page.html
grep -c 'class="promo"' page.html
1
0

El primer recuento da 1 para un elemento ausente de la página, el segundo 0, porque apunta al atributo puesto en el elemento. Ejecuta el caso de ausencia antes de creer el caso de presencia.

Producir el testigo antes de declarar el control activo

Cablea primero la escritura del testigo en caso de éxito, ejecuta la tarea una vez de verdad para que ese testigo exista realmente, y solo después declara la verificación activa. Invertir este orden, declarar una verificación de testigo antes de que nada escriba ese testigo, entrena a la gente a ignorar todo el sistema de vigilancia: un sistema ignorado vale menos que ningún sistema.

Renombra el testigo, nunca lo borres, y confirma que el control reacciona cada vez, luego restáuralo. Enumera también las condiciones que un control de completitud cubre, en lugar de resumirlas en «todo va bien», verdadero en una condición y falso en las otras dos.

Este principio se prolonga en prueba el verificador antes de creer su veredicto, que aplica la misma exigencia a un script que mide una cifra.

Figure 1

Un control probado frente a un control nunca puesto a prueba

Nunca puesto en jaque por un caso conocido
Probado con un testigo positivo
Da cero problemas

Verde ciego

Imposible distinguir un sistema limpio de un control roto.

Verde demostrado

El testigo positivo ya ha demostrado que el mecanismo sabe detectar, este cero es creíble.

Señala un problema

Alerta no fiable

Se señala un problema, pero nada prueba que el control no produzca también falsos positivos al azar.

Rojo fiable

El control ya ha demostrado que sabe detectar este tipo de caso, la alerta es creíble.

La matriz cruza el estado probado o no del control con su veredicto: un verde solo es fiable en la columna probada, y una alerta sigue siendo sospechosa mientras el control no haya demostrado ya que también sabe detectar un caso real.
Figure 2

Dos fallos silenciosos, dos causas distintas

136violaciones
señaladas por error por un patrón de escape roto, ninguna existía realmente
p20l1, 2026
6falsas alertas
producidas de manera continua cuando la verificación de testigo fue declarada activa antes de que nada escribiera ese testigo
p20l1, 2026
Un patrón roto inventa violaciones que no existen, un orden de operaciones invertido inventa alertas continuas allí donde nada parpadea realmente.
Calíbralo tú mismo

Un equipo añade al script de control un archivo que contiene la palabra prohibida escrita con mayúscula inicial. El script señala ese archivo. La misma semana, ese script se ejecuta sobre todo el repositorio y no señala ninguna otra ocurrencia de la palabra prohibida.

Escribe en una frase lo que este resultado establece, y en una frase lo que no establece.

Lo que hay que recordar
  • Un control automático que nunca ha sido puesto en jaque por un caso conocido malo no prueba nada, aunque lleve meses funcionando sin incidentes.
  • El testigo positivo debe ser producido por el mecanismo real que se supone debe probar, nunca inyectado a mano para probar solo la lectura.
  • La escritura del testigo de éxito se cablea y se ejecuta una vez de verdad antes de que la verificación se declare activa, nunca en el orden inverso.
  • Renombrar periódicamente el testigo, sin borrarlo nunca, confirma que el mecanismo de detección sigue reaccionando.
  • Un cero puede ocultar una búsqueda que no pudo realizarse, y un detector que apunta a un nombre de clase en lugar de al atributo del elemento da un recuento sin relación con la página mostrada.
Hazlo ahora

Elige un control automático en el que confías sin haberlo puesto nunca en jaque, fabrica un caso que debe detectar, ejecuta el control y confirma que lo señala antes de seguir confiando en él.

Verificar en la fuente

Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.