Schreibtischtest¶
Kurzüberblick / Definition¶
Ein Schreibtischtest ist eine manuelle Prüfmethode, bei der ein Algorithmus, Programmablauf oder Quellcode ohne tatsächliche Programmausführung Schritt für Schritt nachvollzogen wird.
Dabei werden Variablenwerte, Bedingungen, Schleifendurchläufe und Ausgaben gedanklich oder tabellarisch verfolgt.
Der Schreibtischtest wird auch als Desk Test oder Dry Run bezeichnet.
Wichtig:
Ein Schreibtischtest bedeutet nicht, dass eine Software an einem physischen Schreibtisch getestet wird. Gemeint ist das manuelle Durchgehen eines Programms oder Algorithmus „auf dem Papier“.
Kernerklärung¶
1. Ziel eines Schreibtischtests¶
Das Ziel eines Schreibtischtests ist es, Fehler in der Logik eines Programms frühzeitig zu erkennen.
Typische Ziele sind:
- Programmablauf verstehen
- Variablenwerte nachvollziehen
- Fehler in Bedingungen erkennen
- Fehler in Schleifen erkennen
- falsche Ausgaben entdecken
- Sonderfälle prüfen
- Algorithmus vor der Implementierung oder Ausführung kontrollieren
Ein Schreibtischtest ist besonders hilfreich, wenn man prüfen möchte, ob ein Algorithmus logisch korrekt arbeitet.
2. Einordnung in das Testing¶
Ein Schreibtischtest gehört zu den statischen Testverfahren, weil der Code oder Algorithmus nicht tatsächlich ausgeführt wird.
| Testart | Bedeutung |
|---|---|
| Statischer Test | Prüfung ohne Programmausführung |
| Dynamischer Test | Prüfung mit Programmausführung |
| Schreibtischtest | Manuelles Nachvollziehen eines Programms oder Algorithmus ohne Ausführung |
Der Schreibtischtest unterscheidet sich von einem automatisierten Test, weil kein Testframework und keine echte Programmausführung verwendet werden.
3. Ablauf eines Schreibtischtests¶
Ein Schreibtischtest wird normalerweise Schritt für Schritt durchgeführt.
| Schritt | Beschreibung |
|---|---|
| 1. Code oder Algorithmus auswählen | Der zu prüfende Programmteil wird festgelegt |
| 2. Testdaten bestimmen | Es werden konkrete Eingabewerte gewählt |
| 3. Variablentabelle erstellen | Wichtige Variablen werden tabellarisch notiert |
| 4. Anweisungen schrittweise durchgehen | Jede Zeile oder jeder logische Schritt wird nachvollzogen |
| 5. Werte aktualisieren | Variablenwerte werden nach jedem Schritt angepasst |
| 6. Ergebnis prüfen | Das erwartete Ergebnis wird mit dem tatsächlichen gedanklichen Ergebnis verglichen |
4. Typische Bestandteile eines Schreibtischtests¶
Bei einem Schreibtischtest achtet man besonders auf:
- Eingabewerte
- Variablen
- Zuweisungen
- Bedingungen
- Schleifen
- Zähler
- Rückgabewerte
- Ausgaben
- Sonderfälle
Besonders wichtig sind Schleifen, weil dort häufig Fehler entstehen, zum Beispiel:
- Schleife läuft einmal zu viel
- Schleife läuft einmal zu wenig
- Schleife endet nie
- Zählvariable wird falsch erhöht
- Abbruchbedingung ist falsch formuliert
Praktisches Beispiel¶
Beispielcode¶
int summe = 0;
for (int i = 1; i <= 4; i++) {
summe = summe + i;
}
System.out.println(summe);
Ziel¶
Es soll geprüft werden, welche Ausgabe das Programm erzeugt.
Schreibtischtest als Tabelle¶
| Schritt | i | summe vor Rechnung | Rechnung | summe nach Rechnung |
|---|---|---|---|---|
| Start | - | 0 | - | 0 |
| 1. Durchlauf | 1 | 0 | 0 + 1 | 1 |
| 2. Durchlauf | 2 | 1 | 1 + 2 | 3 |
| 3. Durchlauf | 3 | 3 | 3 + 3 | 6 |
| 4. Durchlauf | 4 | 6 | 6 + 4 | 10 |
| Ende | 5 | 10 | Bedingung i <= 4 ist falsch |
10 |
Ergebnis¶
Die Ausgabe lautet:
10
Erklärung¶
Die Schleife addiert die Zahlen von 1 bis 4.
1 + 2 + 3 + 4 = 10
Der Schreibtischtest zeigt, dass die Schleife viermal ausgeführt wird und danach korrekt endet.
Beispiel mit Fehler¶
Fehlerhafter Code¶
int summe = 0;
for (int i = 1; i < 4; i++) {
summe = summe + i;
}
System.out.println(summe);
Schreibtischtest¶
| Schritt | i | summe vor Rechnung | Rechnung | summe nach Rechnung |
|---|---|---|---|---|
| Start | - | 0 | - | 0 |
| 1. Durchlauf | 1 | 0 | 0 + 1 | 1 |
| 2. Durchlauf | 2 | 1 | 1 + 2 | 3 |
| 3. Durchlauf | 3 | 3 | 3 + 3 | 6 |
| Ende | 4 | 6 | Bedingung i < 4 ist falsch |
6 |
Fehleranalyse¶
Die Ausgabe lautet:
6
Wenn eigentlich die Summe von 1 bis 4 berechnet werden sollte, ist die Schleifenbedingung falsch.
Fehler:
i < 4
Korrekt wäre:
i <= 4
Dieser Fehler ist ein typischer Off-by-one-Fehler. Das bedeutet, dass eine Schleife einmal zu wenig oder einmal zu oft ausgeführt wird.
Zusammenhang mit anderen Testarten¶
| Begriff | Zusammenhang |
|---|---|
| Schreibtischtest | Manuelles Nachvollziehen von Code oder Algorithmen |
| Statischer Test | Oberbegriff für Prüfungen ohne Programmausführung |
| Review | Gemeinsame Prüfung von Code oder Dokumenten durch Personen |
| Codeanalyse | Prüfung des Codes, oft mit Werkzeugen |
| Unit-Test | Automatisierter Test einzelner Methoden mit Programmausführung |
Der Schreibtischtest ist besonders einfach und benötigt keine spezielle Software. Er eignet sich gut zum Lernen, zur Prüfungsvorbereitung und zur Kontrolle kleiner Algorithmen.
Abgrenzung: Schreibtischtest vs. Usability-Test¶
Ein häufiger Fehler ist die Verwechslung von Schreibtischtest und Usability-Test.
| Begriff | Bedeutung |
|---|---|
| Schreibtischtest | Manuelles Durchgehen eines Algorithmus oder Codes ohne Ausführung |
| Usability-Test | Prüfung der Benutzerfreundlichkeit einer Anwendung durch Benutzer oder Tester |
Ein Schreibtischtest prüft also nicht hauptsächlich die Benutzerfreundlichkeit, sondern die logische Korrektheit eines Programms oder Algorithmus.
Vorteile eines Schreibtischtests¶
- Einfach durchzuführen
- Keine Testumgebung notwendig
- Keine Programmausführung notwendig
- Gut geeignet für kleine Programme und Algorithmen
- Hilft beim Verstehen von Programmabläufen
- Fehler können früh erkannt werden
- Besonders nützlich bei Bedingungen und Schleifen
Grenzen eines Schreibtischtests¶
Ein Schreibtischtest hat auch Grenzen.
| Grenze | Erklärung |
|---|---|
| Manuell und fehleranfällig | Der Tester kann sich beim Nachvollziehen verrechnen |
| Nicht gut für große Programme | Bei komplexem Code wird der Aufwand schnell zu hoch |
| Keine echte Laufzeitprüfung | Speicher-, Laufzeit- oder Umgebungsfehler werden nicht zuverlässig erkannt |
| Keine Automatisierung | Der Test muss jedes Mal manuell durchgeführt werden |
| Begrenzte Aussagekraft | Nur ausgewählte Eingaben und Fälle werden geprüft |
Ein Schreibtischtest ersetzt daher keine Unit-Tests, Integrationstests oder Systemtests, sondern ergänzt sie.
Exam Relevance (IHK)¶
Für die IHK-Prüfung ist der Schreibtischtest besonders relevant, weil häufig kleine Codebeispiele oder Algorithmen gegeben werden, deren Ergebnis man bestimmen soll.
Wichtige Prüfungsaspekte:
- Bedeutung des Begriffs Schreibtischtest
- Einordnung als statisches Testverfahren
- Unterschied zwischen statischem und dynamischem Test
- Schrittweises Nachvollziehen von Programmabläufen
- Arbeiten mit Variablentabellen
- Erkennen von Schleifenfehlern
- Erkennen von falschen Bedingungen
- Bestimmen von Ausgaben
- Nachvollziehen von Algorithmen ohne Programmausführung
Typische Prüfungsfragen:
- „Was versteht man unter einem Schreibtischtest?“
- „Ordnen Sie den Schreibtischtest statischen oder dynamischen Tests zu.“
- „Führen Sie einen Schreibtischtest für folgenden Algorithmus durch.“
- „Welche Ausgabe erzeugt das folgende Programm?“
- „Wie oft wird die Schleife ausgeführt?“
- „Welche Werte haben die Variablen nach dem dritten Schleifendurchlauf?“
- „Welcher Fehler liegt in der Schleifenbedingung vor?“
Häufige Fehler & Missverständnisse¶
| Missverständnis | Richtigstellung |
|---|---|
| „Ein Schreibtischtest testet eine Software am Arbeitsplatz.“ | Falsch. Ein Schreibtischtest bedeutet, dass Code oder ein Algorithmus manuell nachvollzogen wird. |
| „Ein Schreibtischtest ist ein Usability-Test.“ | Falsch. Usability-Tests prüfen Benutzerfreundlichkeit, Schreibtischtests prüfen Programmlogik. |
| „Ein Schreibtischtest führt das Programm aus.“ | Falsch. Der Code wird nicht ausgeführt, sondern manuell durchgegangen. |
| „Schreibtischtests sind dynamische Tests.“ | Falsch. Sie gehören zu den statischen Tests. |
| „Schreibtischtests ersetzen Unit-Tests.“ | Falsch. Sie helfen beim Verständnis, ersetzen aber keine automatisierten Tests. |
| „Nur fertiger Code kann per Schreibtischtest geprüft werden.“ | Falsch. Auch Pseudocode und Algorithmen können geprüft werden. |
Fazit¶
Ein Schreibtischtest ist eine einfache, manuelle Methode zur Prüfung von Algorithmen und Programmabläufen.
Wichtigste Kernaussagen:
- Ein Schreibtischtest wird ohne Programmausführung durchgeführt
- Er gehört zu den statischen Testverfahren
- Er dient dem Nachvollziehen von Variablen, Bedingungen, Schleifen und Ausgaben
- Er ist besonders hilfreich zum Erkennen von Logikfehlern
- Für die IHK-Prüfung ist wichtig, Code Schritt für Schritt analysieren und Variablenwerte tabellarisch darstellen zu können
Merksatz:
Beim Schreibtischtest wird ein Programm nicht ausgeführt, sondern Schritt für Schritt im Kopf oder auf Papier nachvollzogen.