Unit Testing
Eintrag zuletzt aktualisiert am: 23.12.2019
Als Unit Testing (Deutsch: Komponenttest) wird die Anwendung von Unit Test bezeichnet.
Ein Unit Test (manchmal in Deutsch übersetzt mit "
Komponententest") ist ein funktionaler Test eines (kleinen) Teils einer Software, um die Korrektheit eines Codeblocks zu testen. Ein Unit Test ist automatisiert, d.h. er wird von einer Software (Unit Testing Framework/Unit Testing Tool) und nicht von einem Menschen manuell durchgeführt. Der Vorteil der Unit Test ist, dass man schnell und damit häufiger testen kann als bei manuellen Tests und somit Fehler (insbesondere Regressionsfehler, die sich durch Änderungen am Programmcode ergeben haben) zeitnah feststellen kann. Unit Test erlauben die automatisierte, wiederholbare, kontinuierliche Prüfung (werkzeuggestützt!).
Unit Test sind
- Prüfroutinen für einzelne Programmteile (Klassen, Methoden, in Bezug auf PowerShell auch Commandlet und einzelne Commandletparameter)
- von Menschen erstellt (teilweise maschinell generiert)
- von Maschinen wiederholbar ausgeführt
Die Vorteile des Unit Testings sind um zu größer, je größer die Testabdeckung (Anteil des Programmcodes, der von Unit Tests durchlaufen wird). Eine hundertprozentige Testabdeckung ist in der Theorie wünschenswert. Aus Kostengründen werden aber Unit Tests oft auf kritische Bereiche beschränkt.
Unit Tests sind Entwicklertests (geschrieben und ausgeführt durch die Entwickler)
Man testet:
Normalfall
Randbereiche
Fehlerfall
Ein Unit Test wird für jede Unterroutine/Funktion/
Methode geschrieben (vollständiger Test des Codes wird angestrebt!)
Jede Schicht
Jede Komponente
Jedes
Objekt
Jede
Methode
Jedes
Attribut
Jeder Fall
Ziel: sauberer Code, der funktioniert