Warum Testing entscheidend ist
Software, die vor zehn oder zwanzig Jahren ausgeliefert wurde, war in vielen Fällen noch überschaubar – in ihrer Architektur, in ihrer Tiefe, in ihrer Vernetzung. Das hat sich grundlegend verändert. Moderne Unternehmenssoftware wie nscale besteht aus einer Vielzahl eng miteinander verzahnter Komponenten:
- Server- und Backend-Logik
- verschiedene Clients und Benutzeroberflächen
- offene Schnittstellen zu Drittsystemen wie SAP oder anderen Lösungen
- Cloud-Infrastruktur und sicherheitskritische Komponenten.
Jedes dieser Elemente kann eine Fehlerquelle sein und jede Änderung an einer Stelle kann unerwartete Auswirkungen an einer anderen haben. Wer in diesem Umfeld auf systematisches Testen verzichtet, navigiert im Blindflug. Wer es halbherzig betreibt, schafft eine trügerische Sicherheit. Testing ist deshalb kein nachgelagerter Schritt – es ist ein kontinuierlicher, durchgängiger Prozess.
Unser Verständnis von Qualität
Qualität bedeutet für uns nicht nur, dass Software das tut, was sie soll. Sie muss es zuverlässig, sicher und dauerhaft tun.
In der Qualitätssicherung wird überprüft, ob die Anforderungen an die Software eingehalten werden. Dabei unterscheidet man zwischen funktionalen und nicht-funktionalen Anforderungen. Funktionale Anforderungen beschreiben, was ein System leisten soll. Nicht-funktionale Anforderungen definieren, wie es das tut: Ist es stabil? Ist es performant? Ist es sicher? Steht es zur Verfügung, wenn man es braucht?
Die nicht-funktionalen Anforderungen sind für die langfristige, stressfreie Kundenbeziehung entscheidend. Nutzende, die einmal schlechte Erfahrungen mit einer langsamen oder fehleranfälligen Anwendung gemacht hat, verlieren das Vertrauen. Deshalb werden in Tests nicht nur die Funktionalität, sondern auch Stabilität unter Last – also wie verhält sich nscale bei hohem Datenaufkommen und vielen Nutzern – und die Resilienz (zum Beispiel fehlerhafte Eingaben, Verbindungsabbrüche) geprüft.
Von der Idee bis zur Auslieferung: ein ganzheitliches Paket
Von der Idee bis zur fertigen Software ist alles ein Arbeitspaket – und dieses Paket muss an mehreren Stellen geprüft werden.
Das fängt nicht erst beim Code an. Wenn ein Kunde eine neue Funktion wünscht oder ein Fehler gemeldet wird, entsteht daraus eine strukturierte Aufgabe mit klaren Kriterien:
- Wie ist der aktuelle Zustand?
- Wie soll es zukünftig funktionieren?
- Was sind die Akzeptanzkriterien – also wann gilt die Anforderung als wirklich erfüllt?
Diese Kriterien sind bereits der Leitfaden für die Tests. Am Ende steht noch eine Hürde, die leicht übersehen wird: Auch wenn etwas technisch einwandfrei funktioniert, heißt das noch nicht, dass es dem Kunden gefällt. Technische Korrektheit und echte Nutzbarkeit sind zwei verschiedene Dinge. Ähnlich dem Kinderspiel „Stille Post“: Man muss sicherstellen, dass am Ende auch das ankommt, was sich der Ideengeber ursprünglich gedacht hat.
Die Testpyramide – ein Sinnbild für Prioritäten
Um zu veranschaulichen, wie man sinnvoll an das Testen herangeht, hat sich in der Branche ein Bild etabliert: die Testpyramide beschrieben von Martin Fowler. Sie beschreibt keine feste Vorgehensweise, sondern ein Denkmuster.
An der breiten Basis stehen Tests, die einzelne, klar abgegrenzte Einheiten des Codes prüfen. Sie sind schnell und liefern sofortiges Feedback.
Darüber folgen Tests, die das Zusammenspiel von Komponenten in den Blick nehmen etwa Workflows in nscale mit der Dokumentenablage oder die Kommunikation mit externen Systemen. Diese sind aufwändiger, aber gleichzeitig unverzichtbar, um Probleme, die im Zusammenspiel mehrerer Komponenten entstehen, frühzeitig zu erkennen.
An der Spitze stehen Tests, die komplette Systeme oder reale Nutzungsabläufe abbilden, sowie das manuelle Testen durch einen Menschen. Aus der Nutzerperspektive sind sie die aussagekräftigsten.
Die entscheidende Botschaft hinter diesem Bild:
Je weiter oben in der Pyramide, desto aufwändiger der Test – und desto sparsamer sollte man deshalb damit umgehen.
Fazit
Softwarequalität entsteht nicht am Ende des Prozesses, sie wird von Anfang an mitgebaut. Unternehmenssoftware wie nscale ist komplex und genau deshalb ist systematisches Testing unverzichtbar. Wer Qualität sicherstellen will, braucht ein klares Verständnis davon, was Qualität bedeutet: Funktionalität, Stabilität, Sicherheit und Verfügbarkeit. Und es braucht einen strukturierten Ansatz, der vom ersten Akzeptanzkriterium bis zur Auslieferung greift.
Wie wir diese Haltung in konkrete Prozesse übersetzen – CI/CD-Pipelines, automatisierte Testläufe, Code Reviews und den wachsenden Einsatz von KI – das zeigen wir im zweiten Teil dieser Serie.
