Hinweis zur Privatsphäre: Wenn Sie sich mit Ihrem GitHub-Konto anmelden, werden Ihre Quiz-Versuche in Google Firebase gespeichert, damit Sie Ihren Fortschritt verfolgen können. Diese Daten sind nur für den Kursleiter einsehbar, werden nicht anderweitig weitergegeben und nach Semesterende gelöscht. Frühere Löschung auf Anfrage beim Kursleiter. Möchten Sie anonym bleiben? Nutzen Sie den Gastmodus oder ein GitHub-Konto ohne Ihren echten Namen.
Lädt...

03 Quiz: Coverage Konzepte

Punkte: 0 / 20

Anleitung

Dieses Quiz testet dein Verständnis der Code Coverage-Konzepte aus den Vorlesungen 6 und 7.


Vorbereitung: Zuerst lesen

Bevor du dieses Quiz versuchst, studiere die folgenden Vorlesungsabschnitte:

Aus Kapitel 03 (TDD und CI): TDD und CI:

Aus Kapitel 03 (Testtheorie und Coverage): Testtheorie & Coverage:


Warum dieses Quiz machen?

Für dein Lernen:

  • Selbsteinschätzung: Identifiziere Bereiche, in denen du ein gutes Verständnis hast, und Themen, die Wiederholung brauchen
  • Prüfungsvorbereitung: Das Quizformat und die Schwierigkeit spiegeln wider, was du in der Abschlussprüfung erwarten kannst
  • Sofortiges Feedback: Erhalte sofort Rückmeldung zu deinen Antworten
  • Aktives Erinnern: Dich selbst zu testen ist eine der effektivsten Lerntechniken

Richtlinien:

  • Jede Frage hat 4 Optionen mit genau einer richtigen Antwort
  • Versuche zuerst zu antworten, ohne auf die Vorlesungsmaterialien zu schauen
  • Melde dich mit GitHub an, um deinen Fortschritt zu speichern
  • Oder fahre als Gast fort (Fortschritt wird nicht gespeichert)

Bewertungsleitfaden

  • 18-20 richtig: Ausgezeichnet! Starkes Verständnis von Coverage-Konzepten
  • 15-17 richtig: Gutes Verständnis! Wiederhole die Bereiche, die du verpasst hast
  • 12-14 richtig: Ausreichendes Verständnis. Schau dir die Vorlesungsmaterialien noch einmal an
  • 9-11 richtig: Wiederholung nötig. Konzentriere dich auf Grundlagen
  • Unter 9: Bitte wiederhole Vorlesungen 6 und 7 sorgfältig
Frage1 Definitionen und Grundlagen

Statement Coverage (C0) misst:

Frage2 Definitionen und Grundlagen

Branch Coverage (C1) misst:

Frage3 Definitionen und Grundlagen

Ein Coverage-Kriterium ist:

Frage4 Definitionen und Grundlagen

Wenn wir sagen “C1 subsumiert C0,” meinen wir:

Frage5 Definitionen und Grundlagen

Eine Testsuite ist “angemessen” nach einem Coverage-Kriterium, wenn:

Frage6 Verständnis und Berechnung

Betrachte diesen Code:

def check(value):
    if value > 0:
        return "positive"
    else:
        return "negative"

Warum gibt das Erreichen von 100% C1 automatisch 100% C0?

Frage7 Verständnis und Berechnung

Gegeben dieser Code und Test:

def categorize(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    else:
        return "F"

# Test:
def test_high_score():
    assert categorize(95) == "A"

Was ist die Statement Coverage (C0)?

Frage8 Verständnis und Berechnung

Mit dem gleichen categorize-Code mit diesen Tests:

def test_scores():
    assert categorize(95) == "A"
    assert categorize(85) == "B"

Was ist die Branch Coverage (C1)?

Frage9 Verständnis und Berechnung

Gegeben diese pytest-cov Ausgabe:

Name              Stmts   Miss  Cover   Missing
-----------------------------------------------
src/utils.py         24      6    75%   18-20, 35-37
-----------------------------------------------

Was sagt dir “Missing: 18-20, 35-37”?

Frage10 Verständnis und Berechnung

Gegeben dieser Code (mit Zeilennummern):

1: def validate(value):
2:     if value is None:
3:         return "Error"
4:     if value < 0:
5:         return "Negative"
6:     if value == 0:
7:         return "Zero"
8:     return "Positive"

Und dieser Coverage Report: Missing: 3, 7

Welche Bedingungen waren NIEMALS True während des Testens?

Frage11 Grenzen von Coverage

Eine Testsuite erreicht 100% Statement Coverage. Das bedeutet:

Frage12 Grenzen von Coverage

Betrachte diesen Test:

def calculate_total(items, discount_percent):
    total = sum(items)
    if discount_percent > 0:
        discount = total * (discount_percent / 100)
        total = total - discount
    return total

def test_calculate_total():
    result = calculate_total([10, 20, 30], 10)
    assert result > 0  # Was ist falsch?

Was ist das Problem mit diesem Test?

Frage13 Grenzen von Coverage

Welchen der folgenden Bugs würde 100% Statement Coverage wahrscheinlich VERPASSEN?

Frage14 Grenzen von Coverage

In welcher Situation könnte 70% Coverage völlig akzeptabel sein?

Frage15 Grenzen von Coverage

Welche Aussage beschreibt am besten die Beziehung zwischen Coverage und Korrektheit?

Frage16 Anwendung

Gegeben dieser Code (mit Zeilennummern):

1: def classify_age(age):
2:     if age < 0:
3:         return "Invalid"
4:     elif age < 18:
5:         return "Minor"
6:     elif age < 65:
7:         return "Adult"
8:     else:
9:         return "Senior"

Dein Coverage Report zeigt, dass Zeile 9 fehlt. Welcher Test würde sie abdecken?

Frage17 Anwendung

Gegeben dieser Code und Coverage Report:

1: def calculate_shipping(weight, express=False):
2:     if weight <= 0:
3:         raise ValueError("Invalid")
4:
5:     base_cost = weight * 2.0
6:
7:     if express:
8:         return base_cost * 1.5
9:     return base_cost

Coverage Report: Fehlende Zeilen 3, 8

Um BEIDE fehlenden Zeilen abzudecken, brauchst du Tests mit welchen Eingaben?

Frage18 Anwendung

Gegeben diese pytest-cov Ausgabe mit aktivierter Branch Coverage:

Name              Stmts   Miss Branch BrPart  Cover
----------------------------------------------------
src/validator.py     20      2     10      3    82%
----------------------------------------------------

Was bedeutet “BrPart: 3”?

Frage19 Anwendung

Dein Team richtet eine CI-Pipeline für ein Finanztransaktionssystem ein. Welcher Coverage-Schwellenwert ist am angemessensten?

Frage20 Anwendung

Warum Coverage-Checks in eine CI/CD-Pipeline integrieren?

© 2026 Dominik Mueller   •  Powered by Soopr   •  Theme  Moonwalk