Unit-Tests - Häufige Fragen im Fachgespräch

Unit-Tests – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #95

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

Nachdem letzte Woche bereits häufige Fragen im Fachgespräch rund um das Thema Softwaretests besprochen wurden, folgen nun einige Detailfragen zum Bereich Unit-Tests in der fünfundneunzigsten Episode des Anwendungsentwickler-Podcasts.

Inhalt

  • Was ist eine Unit?
    • Die kleinste zu testende Einheit, meist eine Methode.
  • Wie unterscheiden sich Unit- bzw. Komponenten-, Integrations- und Systemtest?
    • Unit-Test: Einzelne Komponente wird in Isolation getestet
    • Integrationstest: Das Zusammenspiel mehrerer Komponenten wird getestet
    • Systemtest: Das System als Ganzes wird auf Funktionalität getestet
  • Was ist ein Unit-Test-Framework?
    • Ein Softwareframework, das den Entwickler beim Schreiben automatischer Tests unterstützt.
  • Was ist eine Assertion?
    • Eine konkrete Prüfung in einem Unit-Test (z.B. Gleichheit von Werten).
  • Was bedeutet AAA?
    • Arrange, Act, Assert
  • Was ist Mocking?
    • Abhängigkeiten werden durch Fake-Objekte ersetzt, um die eigentlich zu testende Komponente in Isolation ausführen zu können.
  • Was ist Code-Coverage?
    • Der Grad der Abdeckung des Codes durch die Tests.
  • Welche Eigenschaften sollten Unit-Tests haben?
    • Schnell, einfach, isoliert, wiederholbar, verlässlich, keine Infrastruktur verwenden.
  • Was ist ein Mutationstest?
    • Ein Test, der den zu testenden Code verändert, um die Testabdeckung durch vorhandene Tests zu prüfen.
  • Was ist die Testpyramide?
    • Eine Empfehlung für das Verhältnis zwischen Unit- (viele), Integrations- (mehrere) und Systemtests (wenige).
  • Wie kann man Oberflächen testen?
    • Manuell oder mit Hilfe von Frameworks wie Selenium.

Literaturempfehlungen

Einen sehr schönen Einstieg in das Thema Unit-Testing liefert Jeff Langr in seinem Buch Pragmatic Unit Testing in Java 8 with JUnit*. Er fängt „bei 0“ an und erklärt alle wichtigen Konzepte inkl. Mocking für die Praxis. Außerdem arbeitet er auch mit den neuen Features von Java 8 (Lambdas, Streams) um die Tests zu optimieren. Sehr empfehlenswert! Ich lasse es meine Azubis als Grundlagenbuch lesen und werde bald auch einen Buchclub dazu aufnehmen.

Jeff Langr - Pragmatic Unit Testing in Java 8 with JUnit (Affiliate)*

Und wenn du ein Buch lesen möchtest, dass dir noch einmal einen völlig anderen Blick auf das Vorgehen bzgl. der Tests beim Schreiben einer Software ermöglicht, empfehle ich dir wärmstens Growing Object-Oriented Software, Guided by Tests*. Die beiden Autoren zeigen ein komplett testgetriebenes Vorgehen, das mit Integrationstests beginnt. Ein sehr spannender Ansatz, der mit einem großen Praxisbeispiel in Java illustiert wird. Hier habe ich das Buch schon vor einigen Jahren rezensiert: Growing Object-Oriented Software, Guided by Tests (Freeman/Pryce).

Growing Object-Oriented Software, Guided by Tests - Amazon (Affiliate)*

Links

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

2 thoughts on “Unit-Tests – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #95

  1. Moin Stefan,

    war wieder mal ein sehr guter Podcast. Mit Tests muss ich mich gerade intensiver beschäftigen. Da kam der Podcast wie gerufen.

    Gibt es einen Plan für die nächste Folgen – bezogen auf das Fachgespräch? Wir hören von unseren Jahresvorgängern (Bremen) immer wieder, dass es viele Fragen zum Thema Datenschutz gab. Würde mich freuen, dazu was auf die Ohren zu bekommen.

    Grüße

    André

  2. Hallo André,

    freut mich, dass ich helfen kann 🙂

    Datenschutz ist natürlich ein sehr wichtiges Thema. Bringen viele Prüflinge leider immer noch mit Datensicherheit und Datensicherung durcheinander. Guter Vorschlag für eine Podcast-Episode! Nehme ich auf die Liste. Kann aber noch ein wenig dauern…

    Viele Grüße!
    Stefan

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