F.I.R.S.T

Unit Tests sollten sich immer an folgende 5 Regeln halten:

Fast (Schnell)

Tests sollten schnell sein, den langsame Tests werden nicht oft ausgeführt. Dies führt dazu das Fehler spät oder gar nicht entdeckt werden. Beziehungsweise werden sie erst entdeckt wenn es nicht mehr so einfach ist sie zu beheben.

Independet (Unabhängig)

Tests sollten unabhängig voneinander und in beliebiger Reihenfolge durchgeführt werden können. Wenn Tests untereinander Abhängigkeiten haben, kann es dazu führen, das ein Fehler im vorigen Tests Auswirkungen auf den nächsten hat, dies erschwert eine Analyse.

Repeatable (Wiederholbar)

Tests sollten jederzeit wiederholbar sein und auf jeden System. Egal ob am Test oder am Produktionssystem. Ansonsten hat man immer einen Ausrede warum ein Test gerade failed.

Self-Validating (Selbstvalidierung)

Tests sollten ein Boolean Ergebnis liefern. Entweder wurde der Test bestanden oder eben nicht. Das lesen von Log Files und selbständiges kontrollieren des Ergebnisses ist zu vermeiden.

Timely (Rechtzeitig)

Tests sollten ummittelbar vor den Produktionscode geschrieben werden. Wenn die Tests erst danach geschrieben werden, kann dies dazu führen das bestimmte Passagen des Codes nicht oder nur sehr schwer testbar sind.

 

 

 

 

 

Die 3 Regeln des Test Driven Development

Jeder weiß das wir für TDD Unit Test schreiben müssen bevor wir mit dem Produkton Code anfangen. Aber das ist nur die Spitze des Eisberges. Für TDD muss man folgende 3 Regeln beachten:

Regel Nummer 1

Es darf erst mit den Produktionscode angefangen werden wenn es einen fehlerhaften Unit Test dazu gibt.

Regel Nummer 2

Der Unit Test darf nur soviel erweitert werden, bis er nicht mehr erfolgreich abgeschlossen werden wird.

Regel Nummer 3 

Der Produktionscode darf nur um soviel erweitert werden damit der Unit Test erfolgreich abgeschlossen werden kann.

Somit schließt sich der Kreis. Ein Durchlauf dauert ungefähr 30 Sekunden, Test und Produktionscode wachsen gemeinsam. Wobei der Test Code immer knapp die Nase vorne hat.

Somit ist immer gewährleistet das jeglicher Produktionscode von einen Unit Test abgedeckt ist.