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
Zentrale Aspekte
- Überprüfung ist ein Kernaspekt sowohl von Wissenschaft
als auch von moderner Softwareentwicklung. - Überprüfung wissenschaftlicher Software ist entscheidend,
weil sie den Erkenntnisgewinn selbst betrifft. - Der größte Teil wissenschaftlicher Software ist
unzureichend oder gar nicht getestet. - Tests können nur die Existenz von Fehlern beweisen,
nicht deren Abwesenheit. - Tests sollten so früh wie möglich, so oft wie möglich und
so automatisiert wie möglich durchgeführt werden.
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 Softw. 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 Unit-Tests 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].
- Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston
- Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston
- Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey
- Martin, Robert C. (2008): Clean Code. A Handbook of Agile Software Craftmanship, Prentice Hall, Upper Saddle River, New Jersey
- McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington
- Whittaker, James A. (2000): What is software testing? And why is it so hard?, IEEE Softw. 17:70-79