Zum Inhalt springen

Glossar · T

Testing

Testing umfasst Verfahren zur Überprüfung der Funktionalität und Qualität von Softwareanwendungen.

Definition

Testing bezeichnet den Prozess der systematischen Überprüfung von Softwareanwendungen, um deren Funktionalität, Qualität und Fehlerfreiheit zu gewährleisten. Dabei werden verschiedene Techniken und Methoden eingesetzt, um sicherzustellen, dass die Software den vorgegebenen Anforderungen entspricht. Testing ist ein integraler Bestandteil des Softwareentwicklungszyklus und dient dazu, Fehler frühzeitig zu erkennen und zu beheben.

Im weiteren Sinne umfasst Testing nicht nur die Überprüfung von Funktionen, sondern auch Aspekte wie Leistung, Sicherheit und Benutzerfreundlichkeit. Ziel ist es, die Zuverlässigkeit der Software zu erhöhen und Risiken im Betrieb zu minimieren. Testing kann manuell oder automatisiert durchgeführt werden, je nach Anforderungen und Ressourcen.

Was bedeutet das für Ihr Unternehmen?

Fehler, die erst Ihre Kunden finden, kosten mehr als jeder Test: Supportaufwand, verlorene Bestellungen und Vertrauen. Automatisierte Tests lohnen sich besonders bei Software, die regelmäßig erweitert oder aktualisiert wird, weil sie bei jeder Änderung prüfen, ob Bestehendes noch funktioniert. Bei älteren Projekten ohne Tests ist es oft sinnvoll, zuerst die wichtigsten Abläufe abzusichern, bevor größere Umbauten beginnen.

Hintergrund und Entwicklung

Die Praxis des Testings hat sich mit der zunehmenden Komplexität von Softwareanwendungen entwickelt. In den frühen Tagen der Softwareentwicklung wurde Testing oft ad hoc durchgeführt, was zu häufigen Fehlern im produktiven Einsatz führte. Mit der Einführung von formalen Entwicklungsprozessen wie dem Wasserfallmodell in den 1970er Jahren gewann Testing an Struktur und Bedeutung.

In den 1990er Jahren führte die Verbreitung agiler Methoden zu einer stärkeren Integration von Testing in den Entwicklungsprozess. Konzepte wie Continuous Integration und Continuous Deployment erforderten automatisierte Tests, um schnelle Feedbackzyklen zu ermöglichen. Heute ist Testing ein eigenständiges Fachgebiet mit zahlreichen spezialisierten Werkzeugen und Standards.

Methoden und Vorgehen

Testing gliedert sich in verschiedene Testarten, die unterschiedliche Aspekte der Software prüfen. Funktionale Tests überprüfen, ob die Software die spezifizierten Anforderungen erfüllt, während nicht-funktionale Tests Aspekte wie Performance, Sicherheit oder Benutzerfreundlichkeit untersuchen. Zu den bekannten Testarten zählen Unit-Tests, Integrationstests, Systemtests und Abnahmetests.

Der Testprozess umfasst typischerweise die Planung, die Erstellung von Testfällen, die Durchführung der Tests und die Auswertung der Ergebnisse. Automatisierte Tests werden häufig mit Skripten oder speziellen Testframeworks umgesetzt, um Wiederholbarkeit und Effizienz zu gewährleisten. Manuelle Tests kommen vor allem bei explorativem Testing oder Usability-Tests zum Einsatz.

Einsatzgebiete

Testing wird in nahezu allen Bereichen der Softwareentwicklung eingesetzt, von kleinen Anwendungen bis hin zu komplexen Systemen in der Industrie, dem Finanzwesen oder der Medizintechnik. In sicherheitskritischen Bereichen, wie der Luftfahrt oder dem Automobilsektor, sind umfangreiche Testverfahren gesetzlich vorgeschrieben.

Auch bei Webanwendungen und mobilen Apps spielt Testing eine zentrale Rolle, um eine hohe Benutzerzufriedenheit zu gewährleisten. Zudem ist Testing wichtig bei der Integration von Softwarekomponenten und bei Updates, um Regressionen zu vermeiden.

Abgrenzung zu verwandten Begriffen

Testing wird oft mit Qualitätssicherung (Quality Assurance, QA) verwechselt, wobei Testing ein Teilbereich der QA ist. Während Testing die eigentliche Durchführung von Tests beschreibt, umfasst QA alle Maßnahmen zur Sicherstellung der Softwarequalität, inklusive Prozessverbesserungen und Audits.

Ein weiterer verwandter Begriff ist Debugging, das sich auf die Identifikation und Behebung von Fehlern nach deren Entdeckung konzentriert. Testing dient hingegen primär der Fehlererkennung. Zudem unterscheidet sich Testing von Reviews, bei denen der Quellcode oder die Anforderungen ohne Ausführung der Software überprüft werden.