681
Kapitel 25
Testen und Tuning
In diesem Kapitel werden einige Techniken beschrieben, die Sie für die Bewältigung größe-
rer Software-Projekte benötigen. Es geht um folgende Fragen:
Wie kann man einzelne Funktionen, Methoden oder ganze Module systematisch testen,
um sicherzustellen, dass sie auch große Datenmengen bewältigen können und in Ex-
tremsituationen nicht versagen?
Wie findet man in einem komplexen Programmsystem Schwachstellen, die die Perfor-
mance (Laufzeit) verschlechtern?
25.1 Automatisiertes Testen
Testen ist ein essenzieller Bestandteil jeder größeren Software-Entwicklung, gleichgültig,
welcher Entwicklungsmethodologie man folgt. Bei größeren Projekten werden die Module
des Gesamtsystems getrennt von verschiedenen Personen entwickelt, einzeln getestet und
erst dann, wenn sie jeweils korrekt arbeiten, zusammengefügt (integriert). Moderne agile
Software-Entwicklungsverfahren wie Extreme Programming (XP) verwenden eine Strategie,
die als Test Driven Development bezeichnet wird. Das Konzept lässt sich in aller Kürze folgen-
dermaßen beschreiben:
Bevor man eine Funktion oder Methode entwickelt, legt man Tests fest, die sie bestehen
muss.
Man entwickelt Testszenarien, die aus Eingabedaten (Argumenten) und erwarteten
Berechnungsergebnissen der Funktion bestehen.
Die Testszenarien berücksichtigen typische Anwendungsfälle der Funktion, aber auch
selten vorkommende Extremsituationen (z.B. ungültige Eingabewerte).
Testszenarien können Qualitätsmerkmale repräsentieren, die mit dem Auftraggeber
vereinbart worden sind (z.B. eine bestimmte Berechnungsgenauigkeit).
Bevor mit der Implementierung begonnen wird, muss eine geeignete Testumgebung
geschaffen werden. Darunter versteht man einen Mechanismus, der es gestattet, die
Funktion individuell – das heißt unabhängig vom restlichen System – zu testen.
Das Testen sollte möglichst weitgehend automatisiert werden.

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.