Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Regla 0x8004h: Ejecutá la lista de verificación de calidad antes de entregar

Verificacion, testing y depuracion (0x80XX)

Universidad Nacional de Río Negro

0x8004h: Ejecutá la lista de verificación de calidad antes de entregar

Enunciado normativo

Antes de cada entrega, DEBE recorrerse de forma consciente una lista de verificación que cubra compilación, pruebas, estilo, memoria y documentación. NO DEBE entregarse un trabajo sin haber ejecutado la lista completa y corregido cada punto fallido.

¿Por qué existe esta regla?

El problema

Los últimos minutos antes de la entrega son los más apurados y los más propensos al descuido: un printf de depuración olvidado, código comentado, un TODO pendiente, un archivo de prueba con errores de compilación. Una lista fija convierte la revisión final en un procedimiento, no en una cuestión de memoria.

La lista también nivela la calidad: todos los trabajos pasan por el mismo tamiz, independientemente de la experiencia o del cansancio del autor.

Consecuencias de violarla

Tipo de consecuenciaEfecto concreto
Pérdida de puntosDefectos triviales que el propio estudiante habría visto.
Mala impresiónprintf y código muerto en la entrega.
RetrabajoRehacer la entrega por un detalle evitable.
Hábito pobreSe consolida la costumbre de entregar sin revisar.

Fundamento en la cátedra

Cierra el ciclo de construcción: diseño (0x6001h: Diseñá el algoritmo antes de escribir código en C), legibilidad (0x0001h: La claridad y prolijidad son de máxima importancia), robustez (0x7002h: Validá los datos en la frontera del programa) y verificación (0x8003h: Verificá con gcc, gdb y valgrind antes de entregar). Es la regla que asegura que las demás se hayan aplicado.

Alcance y excepciones

Aplica a toda entrega evaluable: trabajos prácticos, ejercicios y parciales de código. Cada punto debe marcarse de forma explícita; “lo revisé mentalmente” no cuenta. La lista puede adaptarse al tema, pero nunca reducirse a “compila”.

Ejemplos exhaustivos

❌ Contraejemplo 1 — Entrega sin revisar

int main(void)
{
    // printf("DEBUG n=%d\n", n);
    int v[10];
    // sacar esto despues
    procesar(v, 10);   /* v sin inicializar */
    return 0;
}

Por qué falla: hay código comentado (0x0202h: No dejes código comentado (dead code) en los archivos fuente), un TODO informal, un printf de depuración y un arreglo sin inicializar (0x7005h: Inicializá todos los campos de estructuras y arreglos). Ninguno se habría escapado con una lista.

❌ Contraejemplo 2 — Lista “de memoria”

El estudiante recuerda revisar la compilación, pero olvida ejecutar valgrind, revisar el estilo con gaff y actualizar la documentación.

✅ Ejemplo conforme 1 — Lista ejecutada y marcada

[x] Compila con -Wall -Wextra -Werror -std=c11 sin advertencias
[x] Pasa todos los asserts de las pruebas
[x] valgrind sin errores ni fugas
[x] gaff sin observaciones
[x] Sin printf/TODO de depuracion ni codigo comentado
[x] Todas las funciones documentadas
[x] Nombres descriptivos y sin abreviaturas cripticas
[x] Casos borde probados (vacio, uno, maximo)

Cada casilla corresponde a una acción ejecutable y verificable.

✅ Ejemplo conforme 2 — Lista adaptada al tema

Para un TAD con memoria dinámica, la lista agrega:

[x] Toda asignacion tiene su free en el orden inverso
[x] Punteros liberados puestos en NULL
[x] Contratos documentan quien libera cada recurso

La lista se especializa, no se relaja.

⚠️ Casos límite

Cómo detectarla

HerramientaComandoSeñal
gaffgaff check *.cEstilo de cátedra.
makemake checkObjetivo que corre compilación, pruebas y valgrind.
Revisión manualLista marcada antes de entregar.

Checklist de autocontrol

Reglas relacionadas