Was ist Trace-Tabelle (Schreibtischtest)?

Eine Tabelle, die festhält, wie sich die Werte der Variablen ändern, wenn ein Programm von Hand Zeile für Zeile ausgeführt wird. Sie dient dazu, die Zahl der Schleifendurchläufe und die Endwerte zu prüfen und Fehler zu finden. Weil das auf Papier geschieht, spricht man auch von einem Schreibtischtest.

Japanische Bezeichnung: トレース表

„Trace-Tabelle (Schreibtischtest)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Programmierung (Pseudocode nachverfolgen).

Fachgebiet: Grundlagen der Programmierung (Pseudocode nachverfolgen)

Eine Trace-Tabelle anlegen

Die Variablen und die Wahrheitswerte der Bedingungen werden als Spalten aufgeführt, und ihre Werte werden in Ausführungsreihenfolge Zeile für Zeile eingetragen. Bei einem Programm, das mit x ← 1 beginnt und x ← x × 3 wiederholt, solange x < 100 gilt, ändert sich die Spalte x zu 1, 3, 9, 27, 81, 243, und bei der sechsten Prüfung wird die Bedingung falsch. Wer nur die Variablen einträgt, deren Werte sich ändern, hält die Tabelle übersichtlich.

Wo Fehler passieren

Der erste und der letzte Durchlauf sind beim Nachverfolgen am fehleranfälligsten. Zu prüfen ist, ob der Endwert einer for-Schleife eingeschlossen ist, wann die while-Bedingung geprüft wird und ob Array-Indizes bei 1 oder 0 beginnen. Zuweisungen laufen von oben nach unten; nach x ← y ist der ursprüngliche Wert von x also verloren, wenn y ← x ausgeführt wird.

Rekursive Aufrufe nachverfolgen

Jeder rekursive Aufruf erhält eigene Argumente und lokale Variablen. Werden die Aufrufe als Baum gezeichnet und an jedem Knoten die Argumente und der Rückgabewert des Aufrufs notiert, lassen sich die Zahl der Aufrufe und die Rückgabewerte leicht zählen. Der Baum zeigt auch, wie sich die Ausgabereihenfolge ändert, je nachdem, ob ein Wert vor oder nach den rekursiven Aufrufen ausgegeben wird.

Häufige Fragen

Wie unterscheidet sich das Nachverfolgen vom schrittweisen Ausführen in einem Debugger?

Beide folgen dem Verhalten Zeile für Zeile, eine Trace-Tabelle wird aber von einem Menschen auf Papier geführt, während ein Debugger das Programm tatsächlich ausführt und dabei anhält. In einer Prüfung gibt es keine Umgebung zum Ausführen von Programmen, daher ist die Fähigkeit, mit einer Trace-Tabelle zu prüfen, unerlässlich.

Muss eine lange Schleife vollständig nachverfolgt werden?

Wer die ersten Durchläufe nachverfolgt und das Muster findet, nach dem sich die Werte ändern, kann den Rest oft berechnen. Den letzten Durchlauf und die Abbruchbedingung sollte man aber immer prüfen, um Off-by-one-Fehler zu vermeiden.

„Trace-Tabelle (Schreibtischtest)“ in den Erläuterungen

Fragen mit „Trace-Tabelle (Schreibtischtest)“ (1)

  1. Das folgende Programm multipliziert x wiederholt mit 3. Welchen Wert hat n nach der Ausführung?

Verwandte Begriffe

Argument Array Bitoperation Ganzzahldivision Kontrollstruktur Kurzschlussauswertung (Short-Circuit Evaluation) Modulo-Operation Objektorientierte Programmierung Off-by-one-Fehler Pseudocode

Zur Glossarübersicht