Testen

Verschiedene Arten von Tests

Hier eine Übersicht über verschiedene Arten von Tests, deren konkrete Unterscheidung jedoch schwierig werden kann.

Unit tests
werden aus der Programmierperspektive geschrieben. Sie testen isoliert eine einzelne Methode oder Funktion.
Integrationstests
untersuchen die Abhängigkeit von Methoden und Komponenten während Unit Tests meist mit möglichst wenig Abhängigkeiten geschrieben werden. Meist verwenden Unit Tests und Integrationstests jedoch dasselbe Framework.
Funktionale Tests
beschreiben meist Nutzungsfälle (Use Cases) und deren Abläufe. Werden sie aus Nutzersicht geschrieben und beziehen sich nur auf die an der Oberfläche angebotenen Eingabemöglichkeiten, werden sie auch Akzeptanztests genannt.
Systemtests
Auch Systemtests werden aus Nutzersicht geschrieben, jedoch ohne Kenntnis des Systems. Systemtests sollen Nutzer mit ihren üblichen Verhaltensmustern simulieren.

Tests und Dokumentation

Tests liefern häufig eine gute Beschreibung, wie einzelne Komponenten verwendet werden sollen, welche Schnittstellen und Zustände sie aufweisen können. Jim Fulton hat für den Zope-3-Entwicklungsprozess auf docstrings basierende Unit Tests eingeführt, die sich zunehmend auch in anderen Python-Projekten etablieren.

Siehe hierzu auch Tim Peters, Jim Fulton: Literate unit testing: Unit Testing with Doctest.

Konzepte

Test Case
testet eine einzelnes Szenario.
Test Fixture
ist eine konsistente Testumgebung.
Test Suite
ist eine Sammlung mehrerer Test Cases.
Test Runner
durchläuft eine Test Suite und stellt die Ergebnisse dar.