Skip to main content
main-content

Über dieses Buch

Der Autor erläutert, wie Qualität Vertrauen in die Schutzmaßnahmen schafft: Neu entwickelte Software kann durch Test-Driven Development kontinuierlich auf die Einhaltung der Anforderungen überprüft werden, diese sind dank explizit formulierter Tests stets nachvollziehbar. Software zuverlässig zu machen, ist das Ziel von Softwaretests. Qualitätssicherung kann durch Testen mit verschiedenen Werkzeugen, die durch Python bereitgestellt werden, bei der Software-Entwicklung Risiken vermeiden. Nur gut getestete Software kann verlässlich die ständig vorhandene Anforderung nach Vertraulichkeit, Verfügbarkeit und Datenintegrität sicherstellen.

Inhaltsverzeichnis

Frontmatter

1. Einleitung

Zusammenfassung
Eine kurze Übersicht sei als Anfang erlaubt, um einen roten Faden und schnelle Orientierung im Buch zu geben.
Johannes Hubertz

2. Doctest

Zusammenfassung
In diesem Kapitel wird die Testmethode doctest beschrieben. Für die Anregungen zu den Beispielen möchte ich mich bei Doug Hellmann [Hel15] für sein Blog „Python-Module of the Week“ bedanken.
Johannes Hubertz

3. Unittests machen Freude

Zusammenfassung
Tests sollen schnell und effizient ablaufen. Effizient, um nicht mehr als die notwendigen Ressourcen zu verbrauchen. Schnell, um möglichst oft aufgerufen zu werden. Dies ist eine sehr sinnvolle Anforderung, damit die Entwickler die Tests nutzen. Müssen sie auf die Ergebnisse warten, führt das zu deutlich geringerer Akzeptanz.
Johannes Hubertz

4. Nose

Zusammenfassung
Als effektives Werkzeug zur Unterstützung mit Unittests wurde nosetests bereits dargestellt, jedoch bringt es wesentlich mehr Features mit, als bisher gezeigt werden konnten. Insbesondere kann es beliebig um Funktionalität erweitert werden, da es in Python geschrieben ist und über eine raffiniert gestaltete Plugin Architektur verfügt. Sowohl auf der Kommandozeile als auch in einer Konfigurationsdatei kann eingestellt werden, was beim Aufruf geschehen soll.
Johannes Hubertz

5. pytest

Zusammenfassung
Unittests waren stets etwas mühsam zu schreiben, daher wurde pytest mit dem neuen Feature test discovery entwickelt. Daraus wurde 2005 Nose geforkt, es unterstützte Plugins und entwickelte sich rasant, ab etwa 2007 mit dem Feature easy to install. Mit ähnlichen Eigenschaften ist pytest zwischen 2009 und 2011 ungefähr gleich weit entwickelt, seit 2008 unterstützt es Plugins, die Fixtures sind besser parametrierbar und beide haben ein gutes Plugin-Ökosystem.
Johannes Hubertz

6. tox

Zusammenfassung
Als universelles Hilfsmittel, um andere Hilfsmittel wie pep8, pyflakes und Tests mit verschiedenen Python-Versionen wiederholbar ablaufen zu lassen, hat sich tox [HKao15] bestens bewährt. Es wird mit Kommandozeilenoptionen und einer Datei tox.ini gesteuert.
Johannes Hubertz

7. GUI Tests

Zusammenfassung
Für Python sind mehrere Bibliotheken für die Programmierung graphischer Benutzerschnittstellen (GUI, graphical user interface) verfügbar. Nicht alle davon bringen Testwerkzeuge mit, bei PyQt ist mit QtTest passendes Werkzeug dabei. Die Beschränkung auf diese Bibliothek sei erlaubt, im Prinzip ist die Vorgehensweise auch bei anderen GUIs stets die Gleiche.
Johannes Hubertz

8. Großes Python-Kino

Zusammenfassung
Einige weit verbreitete und große Projekte, wie zum Beispiel SaltStack oder OpenStack, sind als Quelltext stets mit vielen Testfällen kombiniert. Doch diese mal eben ablaufen zu lassen, scheitert meist an einigen Voraussetzungen. Grundsätzlich sollte für derartige Studien ein Virtualenv für die jeweilig erforderliche Python-Version genutzt werden.
Johannes Hubertz

Backmatter

Weitere Informationen

Premium Partner