2 Testvarianten
Grundsätzlich sollte in jeder Projektphase ausgibig getestet werden. Dennoch sind einige Testvarianten in bestimmten Phasen sinnvoller. Unit Tests sind eine Unterstützung für Entwickler und werden einfach und performant entworfen, um während des Entwicklungsprozesses Feedback zu geben. Integrationstests können Anwendung finden, wenn bestimmte Interaktionen zwischen Modulen geprüft werden müssen, wie beispielsweise die Kommunikation zwischen Applikation und Datenbank. Um dem Endkunden eine funktionierende Software auszuliefern, hilft der funktionale Test dabei, das Zusammenspiel der ganzen Applikation über die User Oberfläche zu testen. 18
2.1 Unit Test
Beim Unit Test werden isolierte, meist einfache Funktionen auf korrektes Verhalten überprüft. Diese Tests bieten dem Entwickler eine sehr gute Unterstützung, besonders wenn es Echtzeitfeedback liefert. So kann überwacht werden, wenn Änderungen implementiert wurden, ob diese an anderen Stellen des Programmcodes Fehlverhalten auslösen. Diese Tests sollten so einfach wie möglich, performant und ausdrucksstark sein. Unit Tests helfen ebenfalls bei der Verbesserung der Code Qualität. So können untestbare Komponenten häufig auf eine schlechte Qualität hinweisen. 18 20
2.2 Integrations Test
Hierbei werden die Interaktionen zwischen mehreren Modulen getestet. So können Datenbankzugriffe, Netzwerk Interaktionen, Logger und vieles mehr, was mit einer zu testenden Funktion verknüpft ist, überprüft werden. Diese Tests können auch mit Unit Tests ausgeführt werden, jedoch ist der Unterschied, dass das Modul mit dem interagiert wird, beispielsweise durch ein Stub ersetzt wird. Dies hat bei Unit Tests den Vorteil, dass die Performance nicht unter dem Aufruf anderer Module leidet. 18
2.3 Funktionaler Test
Bei funktionalen Tests handelt es sich um das Simulieren von echten Nutzerhandlungen und das Überprüfen der Rückgabe. So kann die Benutzung der Oberfläche, wie beispielsweise das Klicken von Buttons oder das Ausfüllen von Eingabefeldern in simulierten Browsern deklariert und ausgeführt werden. Die Ergebnisse werden dann auf bestimmte Annahmen überprüft. Diese Tests werden auch End-To-End Tests genannt, bei denen alle Bereiche der Applikation angesprochen und überprüft werden. Funktionale Tests sind sehr komplex und benötigen viel mehr Zeit als die anderen Testarten. Daher sollten diese Tests nicht zu präzise auf alle Funktionalitäten eingehen, sondern eher auf die wichtigsten und häufigsten Endnutzerhandlungen. 18 20
2.4 Smoke Test
Hierbei wird überprüft, ob die Applikation auch in der Produktivumgebung fehlerfrei funktioniert. Dazu werden erneut die funktionalen Tests in der Produktivumgebung ausgeführt. 18