Altifigence Academy

25 / 37 · Konzept

Prüfplanung, Coverage und unabhängige Referenzen

Testbestehen von Spezifikationserfüllung trennen und Grenzen, Kreuzbedingungen und Gegenbeispiele planen.

Ein Prüfplan macht aus der Spezifikation prüfbare Aussagen

Ersetzen Sie „funktioniert gut“ durch Aussagen über Zustand nach Reset, normale Ausgaben, Halten bei Stopp, unzulässige Eingaben und Abschlusszeit. Verknüpfen Sie jede Aussage mit mindestens einem Test und Beobachtungspunkt, um Lücken zu erkennen.

AussageStimulusBeobachtung
Resetprioritätreset und enable gemeinsam 1Folgezustand ist Anfangswert
Datenerhalt in ReihenfolgeAsymmetrische Muster hintereinanderAlle Ausgabewerte und valid
Exakter GrenzumlaufVor und nach MaximumM−1→0, keine Bereichsüberschreitung
Halten bei StoppEingabewechsel, accept=0Gespeicherter Zustand unverändert
Überlappende Muster10101Treffer am dritten und fünften angenommenen Bit

Warum die Referenz unabhängig sein muss

Kopierte SlicesSlice Auswahl eines zusammenhängenden Bitbereichs aus einem Vektor. Der Bereich bestimmt Breite und Reihenfolge des Ergebnisses. Mehr erfahren eines Schiebers können auch Indexfehler kopieren. Alternative Darstellungen wie Ganzzahlmultiplikation/modulo oder String-Suffixvergleich unterstützen gegenseitige Prüfung. Eine andere Schreibweise beweist allerdings noch keine Unabhängigkeit; prüfen Sie kleine Fälle von Hand.

Coverage zählt nicht bloß bestandene Tests

Ausgeführte Codezeilen sind nicht gleich geprüfte Funktionsfälle. Kreuzungen wie reset×enable, state×input oder full×push×pop können Fehler offenlegen. Ergänzen Sie seltene wichtige Fälle gezielt statt ausschließlich zufällig.

Kombinatorische Logik mit N Eingängen lässt sich mit 2N2^N Fällen vollständig prüfen, sequenzielle Logik hat zusätzlich zeitliche Eingabefolgen. Analysieren Sie Erreichbarkeit und InvariantenInvariante Bedingung, die bei jeder zulässigen Ausführung stets wahr bleiben muss. Eine FIFO mit Tiefe vier enthält etwa immer zwischen null und vier Elemente. über alle Übergänge. Endlich viele bestandene Simulationen sind kein mathematischer Beweis für unbegrenzte Zeit.

Erzeugen Sie Sollwerte unabhängig aus der Spezifikation. Speichern Sie bei Fehlern nicht nur Istwerte, sondern auch vorausgehende Eingaben und Zustände.

Vier Beobachtungspunkte der Verifikation
  1. Spezifikation und Stimuli: Grenzfälle und kombinierte Bedingungen wählen
  2. Unabhängiges Referenzmodell: Erwartungswert und Gültigkeitszeitpunkt berechnen
  3. Mit dem DUT vergleichen: Am selben Beobachtungszeitpunkt vergleichen
  4. Erste Abweichung protokollieren: Minimales Gegenbeispiel und Seed aufbewahren

Fehler verkleinern und festhalten

Notieren Sie vor der ersten Abweichung Zustand, Eingabe, Soll und Ist. Entfernen Sie unnötige Stimuli bis zum minimalen Gegenbeispiel und korrigieren Sie dann. Führen Sie neben dem geänderten Test auch bestehende Grenz- und ResetprüfungenReset Steuerung zur Rückkehr in einen festgelegten Anfangszustand. Synchron/asynchron und Priorität gegenüber anderen Steuerungen müssen definiert werden. Mehr erfahren als Regression aus.

Selbst ausprobieren

Code-Coverage ist 100%, 10.000 Zufallstests bestehen, aber reset=enable=1 wurde nie geprüft. Was fehlt?

Erklärung lesen

Prüfen Sie diese Kreuzbedingung in der Spezifikation und ergänzen Sie einen gezielten Test mit ungleich null initialisiertem Zustand, der die Priorität offenlegt. Code-Coverage oder Testanzahl ersetzen keine konkrete Funktionsprüfung.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.