Altifigence Academy

25 / 37 · Concepto

Plan de verificación, cobertura y referencia independiente

Distinga pruebas superadas de cumplimiento y planifique límites, cruces de condiciones y contraejemplos mínimos.

Convierta la especificación en afirmaciones comprobables

En lugar de «funciona bien», escriba requisitos concretos: estado tras reset, salida normal, conservación al parar, tratamiento de entradas prohibidas y momento de finalización. Vincular cada afirmación con al menos una prueba y una observación revela omisiones.

Afirmación funcionalEstímuloObservación
Reset prioritarioReset y enable simultáneamente en 1Estado siguiente inicial
Conservación del ordenPatrones asimétricos consecutivosValores y valid de todas las salidas
Retorno exactoEstados alrededor del máximoM−1→0, sin valores fuera de rango
Conservación al pararCambiar entrada con accept=0Estado almacenado invariable
Solapamiento permitido10101Detección en entradas aceptadas 3 y 5

Por qué hace falta una referencia independiente

Copiar las mismas seleccionesSelección de bits Operación que extrae un intervalo contiguo de un vector. El intervalo determina el ancho y el orden de los bits del resultado. Más información del desplazador puede copiar también un error de índice. Expresar la especificación de otra forma, con multiplicación y módulo enteros o comparación de sufijos de una cadena, ayuda a contrastar. Otra representación no demuestra automáticamente independencia: compruebe casos pequeños a mano.

Cobertura no es cantidad de aciertos

Ejecutar una línea no implica verificar todos sus casos funcionales. Cruces como reset×enable, estado×entrada o full×push×pop revelan fallos. Añada pruebas dirigidas para combinaciones raras e importantes, además de aleatoriedad.

Una función combinacional de N entradas tiene 2N2^N combinaciones; un circuito secuencial tiene además secuencias temporales. Analice alcanzabilidad de estados y conservación de invariantesInvariante Condición que debe cumplirse en toda ejecución permitida. Por ejemplo, la ocupación de una FIFO de profundidad 4 siempre está entre 0 y 4. en cada transición. No presente una cantidad finita de simulaciones como demostración matemática para tiempo ilimitado.

Calcule expectativas desde la especificación, sin copiar la implementación. Ante un fallo, guarde también entradas y estado previos, no solo el valor incorrecto.

Cuatro puntos de observación para verificar
  1. Especificación y estímulos: Seleccione límites y cruces de condiciones
  2. Referencia independiente: Calcule valor esperado e instante válido
  3. Compare con el DUT: Contraste en el mismo punto de observación
  4. Registre la primera discrepancia: Conserve el contraejemplo mínimo y la semilla

Reduzca y registre los fallos

Guarde estado anterior, entrada, esperado y real de la primera discrepancia. Reduzca estímulos hasta un contraejemplo mínimo antes de corregir. Ejecute después tanto la nueva prueba como las anteriores de límites y resetReset Control que devuelve el estado a un valor inicial especificado. Deben definirse su carácter síncrono o asíncrono y su prioridad frente a otros controles. Más información.

Inténtalo tú

La cobertura RTL es del 100 % y pasan 10 000 pruebas aleatorias, pero nunca coinciden reset=1 y enable=1. ¿Qué debe añadir?

Leer la explicación

Revise esa combinación en la especificación y añada una prueba dirigida desde un estado inicial no nulo que revele la prioridad. Cobertura de código y cantidad de pruebas no sustituyen comprobar una condición funcional concreta.

Tu elección se aplica a este navegador. Puedes cambiarla en el pie de página.