Planung, Strategie und Kategorisierung Auf Fehlersuche: Detektivarbeit im Softwaretesting

Ein Gastbeitrag von Frank Krahl 4 min Lesedauer

Anbieter zum Thema

Fehler im Code lassen sich nie ganz vermeiden, sie können jedoch gravierende Folgen haben. Besonders in sensiblen Bereichen wie der öffentlichen Verwaltung und kritischen Infrastrukturen ist das Softwaretesting essenziell, um schwerwiegende Ausfälle zu verhindern.

Softwarefehler gehören zu den größten Herausforderungen bei der Entwicklung moderner IT-Systeme – ob es sich dabei nun um eine App, ein Betriebssystem oder komplexe IT-Infrastrukturen handelt. (©  Julia – stock.adobe.com / KI-generiert)
Softwarefehler gehören zu den größten Herausforderungen bei der Entwicklung moderner IT-Systeme – ob es sich dabei nun um eine App, ein Betriebssystem oder komplexe IT-Infrastrukturen handelt.
(© Julia – stock.adobe.com / KI-generiert)

Fehlerfreie Software ist eine Illusion. Selbst mit den besten Vorsätzen und Voraussetzungen können Bugs nicht vollständig vermieden werden. Der Crowdstrike-Zwischenfall im Juli 2024, der europaweit Flughäfen, Kliniken und Supermärkte lahmgelegt hat, hat dies sicherlich bei vielen ins Bewusstsein gerufen. Ähnliche Zwischenfälle können also immer wieder passieren, denn es wird niemals möglich sein, eine Software komplett zu testen. Das liegt unter anderem daran, dass Software immer komplexer wird und die Vielzahl an möglichen Szenarien schlichtweg zu groß ist. Dennoch muss neue Software auf Herz und Nieren – oder auch auf Codes und Befehle – getestet werden.

Der Alltag von Softwaretestern besteht deshalb meist darin, neue Funktionen zu prüfen, behobene Fehler erneut zu testen und sicherzustellen, dass die Software auch nach Änderungen stabil funktioniert. Dafür nutzen wir eine Vielzahl von Testmethoden wie manuelle Prüfungen, Regressionstests und auch Testautomatisierungen. Gerade diese entlasten uns bei wiederkehrenden Aufgaben und steigern die Effizienz. Unser Ziel ist es, Fehler vor einem Release zu finden und zu beheben – denn jeder unentdeckte Bug kann unabsehbare Folgen haben.

Eine Teststrategie ist unverzichtbar

In strukturierten Testprojekten geht es nicht ohne Plan. Wir müssen von Beginn an wissen, auf welche Punkte wir den Fokus bei der Testerstellung und der Testdurchführung legen. Die Schwerpunkte ergeben sich dabei aus den Softwarequalitätskriterien nach ISO 25010: Dazu gehören Funktionalität, Zuverlässigkeit, Gebrauchstauglichkeit, Sicherheit, Effizienz, Wartbarkeit, Portabilität und Kompatibilität.

In den meisten Softwareprojekten ist es nicht nur unökonomisch, sondern auch technisch unmöglich, alle Kriterien zu 100 Prozent zu testen. Deshalb priorisieren wir die Qualitätskriterien und setzen Schwerpunkte. Dabei geht es darum, zwischen den Kosten der Fehlervermeidung und den potenziellen Kosten eines Fehlerausfalls abzuwägen. Ein Beispiel ist die Sicherheit von Zugriffen auf Maintenance-Systeme für medizinische Geräte, die Remotezugriffe erlauben. Das Risiko, das hier durch einen Fehler entstehen kann, ist ungleich höher als bei einem Verwaltungssystem für Bücher. In solchen Fällen hat die Sicherheit Priorität und wird entsprechend intensiv getestet.

In der öffentlichen Verwaltung kommt es auf Präzision an

In Behörden als Teil der Kritischen Infrastruktur spielen Sicherheit und Zuverlässigkeit eine noch wichtigere Rolle als in anderen Bereichen. Ein Ausfall eines Verwaltungsprogramms könnte den Zugang der Bürgerinnen und Bürger zu wichtigen Dienstleistungen verzögern. Noch gravierender wären die Folgen, wenn beispielsweise eine Steuerungssoftware bei einem Energieversorger fehlerhaft arbeitet und den Betrieb lahmlegt.

Deshalb ist es wichtig, in solchen Bereichen besonders intensiv den Sicherheits- und Stabilitätsaspekt zu testen und sehr gezielte Tests durchzuführen, die spezifisch auf die Sicherheitsanforderungen dieser Systeme zugeschnitten sind. Dazu zählen unter anderem Penetrationstests, um potenzielle Schwachstellen in der Software aufzudecken, bevor sie von Angreifern ausgenutzt werden können.

Ein drastisches Beispiel für eine unzureichende Teststrategie ist der Bug im System einer britischen Behörde, bei dem 1,9 Millionen Menschen zu viel und 700.000 Personen zu wenig Geld ausgezahlt bekamen. Dieser Fehler entstand während der Umstrukturierung des Softwaresystems und hätte durch gezielte Tests verhindert werden können. Solche Fälle verdeutlichen, wie wichtig es ist, Fehlerquellen frühzeitig zu identifizieren und die Teststrategie sorgfältig auf die jeweilige Software und ihr Umfeld abzustimmen.

Zwischen Grauzonen und Features

Testing ist immer auch eine Frage der Wirtschaftlichkeit. Neben der Teststrategie arbeiten wir bei KIX deshalb auch mit einer Kategorisierung. Bei schwerwiegenden Fehlern der Klasse A, wie das Nicht-Erstellen von Tickets, lassen wir alles stehen und liegen und beheben sie sofort. Kleinere Fehler der Klasse E, wie etwa ein falsch ausgerichtetes Icon, wirken sich höchstwahrscheinlich nicht geschäftsschädigend aus, weshalb wir uns ihnen erst widmen, sobald alle größeren Probleme behoben sind.

Es ist allerdings nicht immer zwingend notwendig, einen Bug zu beheben. Manchmal zeigt sich nämlich, dass ein vermeintlicher Bug sich als nützliches Feature entpuppt. Ein bekanntes Beispiel dafür stammt aus dem Videospiel Space Invaders, wo ein Fehler im Code dazu führte, dass sich die Gegner schneller auf den Spieler zubewegten, je mehr Schiffe abgeschossen wurden. Dieser unbeabsichtigte Effekt erhöhte den Schwierigkeitsgrad und wurde schließlich im Spiel beibehalten. Auch in unserem Alltag begegnen uns Bugs, die am Ende in die Software integriert werden. Solche „glücklichen Unfälle“ kommen zwar eher selten vor, aber sie verdeutlichen, dass nicht jeder Fehler zwangsläufig ein Problem darstellt.

Jetzt Newsletter abonnieren

Wöchentlich die wichtigsten Infos zur Digitalisierung in der Verwaltung

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Am Ende geht es im Softwaretesting darum, Stabilität, Zuverlässigkeit und Sicherheit zu gewährleisten. Besonders in der öffentlichen Verwaltung sind diese Aspekte essenziell, um das Vertrauen der Anwendenden, Bürgerinnen und Bürger zu gewinnen. Obwohl es nicht möglich ist, jede Eventualität zu testen, können wir durch Priorisierung und eine durchdachte Teststrategie sicherstellen, dass die wichtigsten Funktionen fehlerfrei sind. Und wenn uns doch ein Fehler durchrutscht, können wir sicher sein, dass wir früher oder später auch diesem auf die Schliche kommen – wie jeder gute Detektiv.

Frank Krahl
Testing-Koordinator bei KIX Service Software.

Bildquelle: Team Code Zero

(ID:50194783)