IT-Übungen

Testdesign

Grenzwerte, Äquivalenzklassen, Entscheidungstabellen, Zustandsübergänge, paarweises Testen, Überdeckung. Jede Lösung wurde per Programm nachgerechnet.

Lesestand

  1. Grenzwerte: Alter ★☆☆ Grenzwertanalyse

    Ein Formularfeld akzeptiert ganzzahlige Alter von 18 bis 65 (jeweils einschließlich).

    Welche Testwerte liefert die Grenzwertanalyse mit zwei Werten pro Grenze?

    Lösung anzeigen

    Richtig: {17, 18, 65, 66}

    Pro Grenze testet man den letzten ungültigen und den ersten gültigen Wert: 17/18 unten, 65/66 oben. {18, 65} prüft nur die gültige Seite. {17 … 66} mit sechs Werten wäre die Drei-Werte-Variante.

  2. Grenzwerte: drei Werte ★★☆ Grenzwertanalyse

    Dasselbe Feld wie zuvor: gültig sind ganze Zahlen von 18 bis 65.

    Wie viele Testwerte ergibt die Grenzwertanalyse mit drei Werten pro Grenze (Grenze, darunter, darüber)?

    Lösung anzeigen

    Richtig: 6

    Pro Grenze drei Werte: 17, 18, 19 und 64, 65, 66. Die Drei-Werte-Variante findet zusätzlich Fehler wie ein vertipptes == statt >=.

  3. Grenzwerte: Rabattstaffel ★★☆ Grenzwertanalyse · Geldbeträge

    Onlineshop: Ab 100,00 € Bestellwert gibt es 5 % Rabatt, ab 500,00 € 10 %. Beträge werden auf den Cent genau erfasst.

    Welche Bestellwerte prüfen die Grenzen am besten?

    Lösung anzeigen

    Richtig: 99,99 €, 100,00 €, 499,99 €, 500,00 €

    Bei Geldbeträgen ist die kleinste Einheit 1 Cent. Direkt unter der Grenze liegt also 99,99 €, nicht 99,00 €. Wer in ganzen Euro testet, übersieht z. B. einen Fehler, der erst bei 99,50 € greift.

  4. Grenzwerte: Lücke finden ★☆☆ Grenzwertanalyse

    Ein Passwort muss 8 bis 20 Zeichen lang sein. Im Testplan stehen die Längen 7, 8, 15 und 20.

    Welche Länge fehlt für eine vollständige Grenzwertanalyse (zwei Werte pro Grenze)?

    Lösung anzeigen

    Richtig: 21

    Die obere Grenze ist nur von der gültigen Seite (20) getestet. Ob 21 Zeichen wirklich abgelehnt werden, prüft niemand. 15 ist ein Repräsentant der gültigen Klasse, aber kein Grenzwert.

  5. Äquivalenzklassen: Monat ★☆☆ Äquivalenzklassen

    Ein Feld erwartet einen Monat als ganze Zahl von 1 bis 12.

    In wie viele Äquivalenzklassen zerfallen die ganzzahligen Eingaben?

    Lösung anzeigen

    Richtig: 3

    Eine gültige Klasse (1–12) und zwei ungültige: kleiner als 1 und größer als 12. Alle Werte einer Klasse sollte das System gleich behandeln, deshalb reicht je ein Repräsentant. Nicht-numerische Eingaben wären eine weitere Klasse, sind hier aber ausgeschlossen.

  6. Äquivalenzklassen: Versandkosten ★★☆ Äquivalenzklassen

    Versand: bis 2 kg kostet 5 €, bis 10 kg 8 €, darüber 15 €. Erlaubt sind Gewichte über 0 kg bis höchstens 31,5 kg.

    Wie viele Testfälle braucht man mindestens, um jede Äquivalenzklasse einmal abzudecken?

    Lösung anzeigen

    Richtig: 5

    Drei gültige Klassen (bis 2 kg, bis 10 kg, bis 31,5 kg) und zwei ungültige (0 kg oder weniger, über 31,5 kg). Bei nur einem Eingabefeld braucht jede Klasse einen eigenen Testfall.

  7. Äquivalenzklassen: zwei Felder ★★★ Äquivalenzklassen · Testfallminimierung

    Ein Formular hat zwei Felder. Feld A hat 3 gültige und 2 ungültige Klassen, Feld B hat 2 gültige und 1 ungültige Klasse.

    Wie viele Testfälle sind mindestens nötig, wenn jeder ungültige Wert einzeln getestet werden soll?

    Lösung anzeigen

    Richtig: 6

    Gültige Klassen lassen sich kombinieren: max(3, 2) = 3 Testfälle decken alle gültigen Klassen beider Felder. Ungültige Klassen testet man einzeln (sonst verdeckt ein Fehler den anderen): 2 + 1 = 3. Zusammen 6.

  8. Entscheidungstabelle: Größe ★☆☆ Entscheidungstabellen

    Eine Regel hängt von drei Ja/Nein-Bedingungen ab.

    Wie viele Spalten (Regeln) hat die vollständige Entscheidungstabelle?

    Lösung anzeigen

    Richtig: 8

    Jede Bedingung verdoppelt die Kombinationen: 2 × 2 × 2 = 8. Bei n Bedingungen sind es 2ⁿ, deshalb lohnt es sich, zusammenfassbare Regeln zu suchen.

  9. Entscheidungstabelle: Rabatt ★★☆ Entscheidungstabellen · Logik

    Ein Kunde bekommt Rabatt, wenn er Neukunde ist ODER eine Treuekarte hat. Auf Artikel im Sonderangebot gibt es aber nie Rabatt.

    Wie viele der 8 Kombinationen aus Neukunde, Treuekarte und Sonderangebot führen zu Rabatt?

    Lösung anzeigen

    Richtig: 3

    Mit Sonderangebot nie (4 Fälle fallen weg). Ohne Sonderangebot bleiben 4 Kombinationen, davon ist nur "weder Neukunde noch Treuekarte" ohne Rabatt. Also 3. Ein beliebter Fehler im Code: Das "aber nie" wird nur auf eine der beiden Bedingungen angewendet.

  10. Entscheidungstabelle: zusammenfassen ★★★ Entscheidungstabellen

    Login-Regel: Ist das Konto gesperrt, wird immer abgelehnt. Sonst gibt es Zugang nur, wenn Passwort UND zweiter Faktor richtig sind.

    Auf wie viele Regeln (ohne Überschneidung) lässt sich die Tabelle mit "egal"-Einträgen mindestens reduzieren?

    Lösung anzeigen

    Richtig: 4

    Gesperrt = Ja → egal was sonst (1 Regel statt 4). Nicht gesperrt: Passwort falsch → zweiter Faktor egal (1 Regel). Passwort richtig, zweiter Faktor falsch (1). Alles richtig → Zugang (1). Zusammen 4.

  11. Zustandsübergänge: Bestellung ★★☆ Zustandsübergänge

    Bestellstatus: Neu → Bezahlt → Versendet → Zugestellt. Storniert werden kann nur aus Neu oder Bezahlt. Zugestellt und Storniert sind Endzustände.

    Wie viele Testfälle (jeder startet bei Neu und endet in einem Endzustand) braucht man mindestens, um jeden gültigen Übergang einmal zu durchlaufen?

    Lösung anzeigen

    Richtig: 3

    Neu→Bezahlt→Versendet→Zugestellt deckt drei Übergänge. Neu→Storniert und Neu→Bezahlt→Storniert decken die beiden Stornierungen. Weil beide in Endzuständen enden, braucht jede einen eigenen Durchlauf.

  12. Zustandsübergänge: Negativtest ★☆☆ Zustandsübergänge · Negativtests

    Gleicher Bestellprozess: Neu → Bezahlt → Versendet → Zugestellt, Stornierung nur aus Neu oder Bezahlt.

    Welcher Übergang muss das System ablehnen?

    Lösung anzeigen

    Richtig: Versendet → Storniert

    Nach dem Versand ist keine Stornierung mehr vorgesehen. Solche ungültigen Übergänge werden oft vergessen, weil Testfälle meist nur den "Happy Path" abbilden. Genau dort stecken aber häufig Fehler, etwa ein Storno-Button, der nach dem Versand noch aktiv ist.

  13. Zustandsübergänge: Kontosperre ★★☆ Zustandsübergänge

    Nach 3 Fehlversuchen in Folge wird ein Konto gesperrt. Ein erfolgreicher Login setzt den Zähler auf 0 zurück.

    Eingaben: falsch, falsch, richtig, falsch, falsch. Wie ist der Zustand danach?

    Lösung anzeigen

    Richtig: Nicht gesperrt, 2 Fehlversuche

    Der richtige Login an dritter Stelle setzt den Zähler zurück. Danach folgen nur zwei Fehlversuche. Ein guter Testfall, weil er prüft, ob der Zähler wirklich zurückgesetzt wird und nicht einfach alle Fehlversuche addiert.

  14. Paarweise: 3 × 2 Werte ★★☆ Paarweises Testen · Kombinatorik

    Eine Webanwendung soll getestet werden mit Browser (Chrome, Firefox), Betriebssystem (Windows, macOS) und Sprache (Deutsch, Englisch).

    Alle Kombinationen wären 8 Tests. Wie viele braucht man mindestens, damit jedes Wertepaar einmal vorkommt?

    Lösung anzeigen

    Richtig: 4

    Mit 4 geschickt gewählten Kombinationen kommt jedes Paar (z. B. Chrome + macOS, macOS + Englisch) mindestens einmal vor. Mit 3 geht es nicht: Allein Browser × Betriebssystem ergibt schon 4 Paare. Die meisten Fehler entstehen durch das Zusammenspiel von höchstens zwei Faktoren.

  15. Paarweise: 3 × 2 × 2 ★★☆ Paarweises Testen · Kombinatorik

    Parameter: Zahlungsart (Karte, PayPal, Rechnung), Kundentyp (privat, Firma), Versand (Standard, Express).

    Wie viele Testfälle sind für paarweise Abdeckung mindestens nötig?

    Lösung anzeigen

    Richtig: 6

    Untergrenze ist das Produkt der beiden größten Wertebereiche: 3 × 2 = 6, sonst können nicht alle Paare aus Zahlungsart und Kundentyp vorkommen. Mit 6 Tests lässt sich auch der Versand so verteilen, dass alle übrigen Paare abgedeckt sind (statt 12 für alle Kombinationen).

  16. Paarweise: 4 × 3 Werte ★★★ Paarweises Testen · Orthogonale Arrays

    Vier Parameter mit je drei Werten, z. B. Browser, Betriebssystem, Bildschirmgröße und Sprache.

    Alle Kombinationen sind 81 Tests. Wie viele braucht man mindestens für paarweise Abdeckung?

    Lösung anzeigen

    Richtig: 9

    Jedes Parameterpaar hat 3 × 3 = 9 Wertepaare, also sind mindestens 9 Tests nötig. Ein orthogonales Array (L9) schafft genau das: 9 Zeilen, in denen jedes Paar exakt einmal vorkommt. Statt 81 also 9 Tests, eine Einsparung von 89 %.

  17. Zweigüberdeckung ★★☆ Überdeckung · White-Box

    Code:

    if (a > 0) {
        x++;
    }
    if (b > 0) {
        y++;
    }

    Für Anweisungsüberdeckung reicht 1 Testfall (a > 0, b > 0). Wie viele braucht man mindestens für Zweigüberdeckung?

    Lösung anzeigen

    Richtig: 2

    Zweigüberdeckung verlangt, dass jedes if einmal wahr und einmal falsch ist. Test 1: a > 0, b > 0. Test 2: a ≤ 0, b ≤ 0. Die leeren else-Zweige, die bei Anweisungsüberdeckung unsichtbar bleiben, werden so auch durchlaufen.

  18. Pfadüberdeckung ★★☆ Überdeckung · White-Box

    Gleicher Code:

    if (a > 0) {
        x++;
    }
    if (b > 0) {
        y++;
    }

    Wie viele Testfälle braucht man für vollständige Pfadüberdeckung?

    Lösung anzeigen

    Richtig: 4

    Jedes if verdoppelt die Pfade: 2 × 2 = 4 (beide wahr, nur erstes, nur zweites, keines). Bei 10 hintereinander stehenden ifs wären es schon 1024 Pfade, deshalb ist Pfadüberdeckung in der Praxis selten vollständig erreichbar.

  19. MC/DC-Überdeckung ★★★ Überdeckung · MC/DC

    Code:

    if (istAngemeldet && hatRecht) {
        zeigeDaten();
    }

    Bei MC/DC muss jede Teilbedingung nachweislich allein das Ergebnis ändern können. Wie viele Testfälle sind mindestens nötig?

    Lösung anzeigen

    Richtig: 3

    (wahr, wahr) → zeigen. (falsch, wahr) → nicht zeigen: beweist den Einfluss von istAngemeldet. (wahr, falsch) → nicht zeigen: beweist den Einfluss von hatRecht. Allgemein reichen bei n Teilbedingungen n + 1 Tests. MC/DC ist z. B. in der Luftfahrt-Software (DO-178C) Pflicht.

  20. Mutationstest ★★☆ Mutationstests · Grenzwerte
    Originalcode: return age >= 18;
    Ein Mutationstest-Werkzeug erzeugt die Mutante: return age > 18;

    Mit welchem Testwert wird die Mutante "getötet", also von einem Test erkannt?

    Lösung anzeigen

    Richtig: 18

    Nur bei genau 18 liefern Original (true) und Mutante (false) unterschiedliche Ergebnisse. Überlebt die Mutante alle Tests, fehlt ein Grenzwerttest. Mutationstests messen so die Qualität der Tests selbst, nicht die des Codes.