Evolution des Softwaretestens
Unter einem Softwaretest versteht man den Prozess der Analyse auf Übereinstimmung mit der Spezifikation und Erfüllung der an das Produkt gestellten technischen und Qualitätsanforderungen. Diese umfasst sowohl einzelner Module als auch des gesamten Softwareprodukts. Ziel und Strategie eines jeden Tests ist es, mögliche Fehler, Defekte, inkorrekte Implementierungen oder unerwünschtes Verhalten aufzudecken, damit die identifizierten Mängel behoben werden und die Produktqualität sichergestellt wird. Testergebnisse werden dokumentiert. Daraus ist für den Entwickler ersichtlich, welche Fehler er beseitigen muss und was er noch verbessern soll.
Epochen des Softwaretestens
In den 1960-er-Jahren war der Testprozess extrem formalisiert und vom Prozess der eigentlichen Programmierung abgekoppelt. Da sich damals die Programmfunktionalität auf mathematische Berechnungen beschränkte, war das Testen eher eine Art Debugging und wurde von den Programmierern selbst durchgeführt.
In den 1970-er-Jahren wurden zwei grundsätzliche Teststrategien geboren:
- Positivtests – Prüfung der Anforderungsimplementierung, um das korrekte Funktionieren sicherzustellen
- Negativtests – eine aktive Suche nach Bedingungen, unter denen die Software nicht korrekt funktioniert
In den 1980-er-Jahren änderte sich das Verständnis für den Stellenwert des Testens in der Softwareentwicklung entscheidend: Anstatt eine der letzten Phasen eines Softwareprojekts zu sein, wurde es als begleitender Prozess über den gesamten Softwarelebenszyklus hinweg eingesetzt. Dies ermöglichte es, die Softwarebugs rechtzeitig, noch vor dem Wirkbetrieb, zu erkennen und zu beheben.
In den 1990-er-Jahren erfolgte ein Übergang von einzelnen Codetests zum umfassenderen Prozess der Qualitätssicherung, der aus der Fertigungsindustrie in die IT-Branche kam und den gesamten Entwicklungszyklus (Anforderungen-Analyse-Entwurf–Implementierung-Tests) umfasst. Das Testen erreichte ein neues Niveau, was zur Weiterentwicklung der Testmethoden, zur Entstehung leistungsfähiger Testtools und zur Testautomatisierung führte.
In den Nullerjahren des 21. Jahrhunderts setzte sich die Entwicklung des Testens im Zusammenhang mit der Suche nach neuen Methoden, Techniken und Konzepten zum Software-Qualitätsmanagement fort. Das Aufkommen agiler Entwicklungsmethoden und Ansätze wie die testgetriebene Softwareentwicklung (Testdriven Development, TDD) beeinflussten das Verständnis für die Rolle des Testens stark.
Die aktuellen Haupttrends im Testen und in der Qualitätssicherung sind:
- agiles Testen (agile Softwareentwicklung)
- nahtlose Integration in den Entwicklungs- und Betriebsprozess (DevOps)
- Testmethoden, -technologien und -tools für automatisiertes und automatisches Testen