Inhaltsverzeichnis

18. Tests

Themen
Motivation: zwingende Voraussetzung für Wissenschaftlichkeit
Probleme mit der Überprüfung von Software
Arten von Tests
Strategien für die Überprüfung von Software
Folien
PDF
Glossar
PDF


Zentrale Aspekte

Fragen zur Vertiefung und Wiederholung

Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, werden aber nicht separat in der Vorlesung besprochen.

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Eine sehr auf strukturierte Programmierung und Tests ohne spezifische Test-Frameworks zugeschnittene Behandlung der Thematik mit vielen guten Tipps für den Alltag findet sich in Kapitel 6 in [Kernighan, 1999Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston].

Eine kompakte Übersicht über das Testen von Software und Strategien, die sich auf viele Projekte anwenden lassen, ist der Artikel von Whittaker [Whittaker, 2000Whittaker, James A. (2000): What is software testing? And why is it so hard?, IEEE Software 17:70-79]. Viele gute Tipps für die Praxis finden sich in den Abschnitten 34 und 43 von [Hunt, 1999Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston].

Eine umfassendere (und aktuellere) Darstellung mit dem Fokus auf Tests durch Softwareentwickler ist Kapitel 22 in [McConnell, 2004McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington]. Sehr viel mehr auf Unittests und testgetriebene Entwicklung fokussiert sind Kapitel 4 in [Martin, 2003Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey] und Kapitel 9 in [Martin, 2008Martin, Robert C. (2008): Clean Code. A Handbook of Agile Software Craftmanship, Prentice Hall, Upper Saddle River, New Jersey].

Die McCabe-Metrik zur Quantifizierung der Komplexität von Software über die Anzahl unabhänger Pfade wurde von ihrem Namensgeber eingeführt [McCabe, 1976McCabe, Thomas J. (1976): A complexity measure, IEEE Transactions on Software Engineering 2:308-320] und wird u.a. in [McConnell, 2004McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington] (S. 457ff.) besprochen.

Die Bedeutung von Tests gerade für Software, die für den wissenschaftlichen Erkenntnisgewinn eingesetzt wird, wird in [Scopatz, 2015Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol] (Kap. 18) ausführlich betont. Siehe dazu auch u.a. [Merali, 2010Merali, Zeeya (2010): ...why scientific programming does not compute, Nature 467:775-777].