Häufige Fragen im Fachgespräch zu Testverfahren

Testverfahren für Software – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #94

Dieser Beitrag ist Teil 12 von 13 in der Serie Häufige Fragen im Fachgespräch.

Einige häufige Fragen im Fachgespräch rund um das Thema Softwaretest sind Inhalt der vierundneunzigsten Episode des Anwendungsentwickler-Podcasts.

Inhalt

  • Wie lassen sich Testverfahren klassifizieren?
    • Was wird getestet?
      • Komponente, Integration mehrerer Komponenten oder das ganze System.
      • Funktionale oder nicht-funktionale Anforderungen.
    • Wie werden sie durchgeführt?
      • Durch den Menschen (manuell) oder eine Maschine (automatisch).
    • Wer führt sie durch?
      • Entwickler oder Fachbereich.
    • Welche Kenntnisse sind für die Erzeugung von Testfällen nötig?
      • Nur das nach außen sichtbare Verhalten (Black-Box) oder auch der Sourcecode (White-Box).
    • Wann werden die Tests erstellt?
      • Test first vs. test last.
      • Alpha-/Beta-Test.
    • Wird die Software für den Test ausgeführt (dynamisch) oder nicht (statisch)?
    • Welches Ziel verfolgen die Tests?
      • Z.B. Regression verhindern, Last simulieren.
  • Was ist der Unterschied zwischen Black- und White-Box-Test?
    • Bei Black-Box-Tests kennt der Tester nicht die interne Struktur der Software, sondern sieht nur das nach außen sichtbare Verhalten. Beim White-Box-Test wird der Sourcecode mit einbezogen, um z.B. bestimmte Testfälle zu definieren.
  • Was sind Anweisungs-, Zweig- und Pfadüberdeckung?
    • Alle sind Maße für die Testabdeckung des Codes.
    • Bei der Anweisungsüberdeckung (C0) wird jede Anweisung im Code mind. einmal durchlaufen.
    • Bei der Zweigüberdeckung (C1) wird jeder Zweig im Code mind. einmal durchlaufen. Das heißt, bei if-Anweisungen wird sowohl der if-Zweig als auch der else-Zweig durch einen Test abgedeckt. Sie inkludiert die Anweisungsüberdeckung.
    • Bei der Pfadüberdeckung (C2) werden alle Pfade durch den Code getestet. Das heißt, dass z.B. alle möglichen Wege durch Schleifen abgedeckt sein müssen. Sie inkludiert die Zweigüberdeckung.
  • Was ist die zyklomatische Komplexität?
    • Ein Maß für die Anzahl der möglichen Pfade durch den Code.
  • Welche sonstigen Testverfahren gibt es noch?
    • Abnahmetest oder Akzeptanztest (User Acceptance Test): Finaler Test des Kunden, der das Projekt offiziell beendet.
    • Lasttest: Das System wird unter hohe Last gesetzt, um z.B. den gleichzeitigen Zugriff vieler Benutzer zu simulieren.
    • Smoketest: Erster grober Test der Software, um entscheiden zu können, ob weitere detaillierte Tests überhaupt sinnvoll sind.
    • Exploratives Testen: einfaches „Ausprobieren“ durch erfahrene Benutzer.

Literaturempfehlungen

Wenn du dich wirklich intensiv mit Softwaretests auseinandersetzen willst (oder musst) und auch etwas akademischer werden möchtest, gibt es eigentlich nur eine Empfehlung: Software-Qualität: Testen, Analysieren und Verifizieren von Software* von Peter Liggesmeyer. Das Buch hat mich persönlich bei meiner eigenen Masterarbeit zum Thema Test-Driven-Development begleitet und liefert knackige Definitionen für alle möglichen Begriffe aus dem Umfeld der Softwaretests. Es geht aber auch weit über das Testen hinaus und erklärt z.B. auch statische Codeanalyse und Code-Review-Verfahren.

Peter Liggesmeyer: Software-Qualität: Testen, Analysieren und Verifizieren von Software (Affiliate)*

Links

Links

Navigation der Serie<< Zusammensetzung des Stundensatzes – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #47Unit-Tests – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #95 >>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax