Unit Testing
Das Testen ist ein systematischer Prozess, bei dem das Verhalten des Systems unter spezifischen Bedingungen beobachtet wird, um die reale Umgebung zu simulieren. Es dient dazu, Fehler, Mängel und Abweichungen von den Kundenanforderungen zu erkennen und das Verhalten in Grenzsituationen aus Sicht der Eingangsdaten, der Last oder der Sicherheit zu überprüfen. Die einzelnen Feststellungen werden detailliert erfasst und ausgewertet. Beim Unit-Test, auch Modultest oder Komponententest genannt, werden die kleinsten Einheiten des Systems getestet und überprüft. Auf dieser Ebene können Tests einfach automatisiert werden. Einer der Hauptvorteile von Komponententests ist das Testen „näher am Fehler“. Hierdurch wird das Auffinden von Fehlern beschleunigt und vereinfacht. Aus dem gleichen Grund – also durch Einschränkung der möglichen Fehlerquellen auf einen kleinen und überschaubaren Codebereich – wird auch das Debuggen erleichtert. Um die einzelnen Module in einem automatischen Ansatz isoliert testen zu können, werden Testrahmen (Test Frameworks) genutzt.
Hintergrund: Unit Testing
Einer der größten Vorteile des Unit-Tests ist die Tatsache, dass die Fehler frühzeitig erkannt werden. Da es vom Entwicklungsteam durchgeführt wird, indem es einzelne Codes vor der Integration testet, hilft es, die Probleme frühzeitig im Quellcode zu beheben, ohne andere Quellcodes zu beeinträchtigen. Es hilft bei der Pflege des Codes. Da dies von einzelnen Entwicklern durchgeführt wird, wird Wert darauf gelegt, den Code unabhängiger zu machen, was wiederum die Wahrscheinlichkeit verringert, dass er sich auf andere Sätze von Quellcode auswirkt. Wenn Fehler mit einem Test abgesichert werden, wird verhindert, dass dieser Fehler erneut auftritt. Es hilft bei der Vereinfachung des Debugging-Prozesses. Es müssen nur die letzten Änderungen am Code debuggt werden, wenn ein Testfall beim Unit-Test fehlerhaft ist.
Fakten zu Unit Testing
Fehler werden durch Tests frühzeitig erkannt, insbesondere bei testgetriebener Entwicklung ergibt sich eine um ca. 40 % reduzierte Fehlerrate. Dadurch, dass spät entdeckte Fehler deutlich teurer zu beheben sind und, sofern sie in die Produktion kommen, fatale Auswirkungen haben können, ergibt sich eine Kosten- und Risikoreduktion.