Softwaretests wurden noch vor einiger Zeit als lästiges Übel klassischer Entwicklungsprojekte angesehen. Doch viele Unternehmen haben mittlerweile ihren Standpunkt geändert und geben einen erheblichen Teil ihres IT-Etats für das Testen von Software aus.
Denn nur so können langfristig die Qualitätserwartungen der Kunden erfüllt werden. Allerdings: Welche Teststrategie ist die richtige? Welche Risiken gibt es und wie plant und organisiert man am besten Softwaretests?
Die neue Buchungsplattform ist endlich online, doch aus softwaretechnischen Gründen fällt sie am ersten Tag immer wieder aus. In einem Online-Marketplace kommt es durch Sicherheitslücken im System zum Diebstahl von Kunden- oder Kreditkarteninformationen. Oder, jüngstes Beispiel, die Corona-Massentests in Österreich starteten mit massiven IT-Pannen, weil das System für die elektronische Erfassung der Daten immer wieder ausfiel und schließlich alles auf Papier notiert werden musste. Diese Beispiele zeigen ganz klar, dass durch fehlende effiziente Softwaretests erhebliche kommerzielle, materielle und auch Imageschäden entstehen können.
Um nicht erst mit Software-Qualitätsproblemen konfrontiert zu werden, wenn es eigentlich schon zu spät ist, nehmen viele Unternehmen das Testen vor der Einführung sehr ernst. Laut dem Continuous Testing Report von Capgemini, der auf Basis einer Umfrage unter 500 leitenden Entscheidungsträgern in der Unternehmens-IT entstand, hat eine Mehrheit (55 Prozent) der befragten Unternehmen inzwischen einen Ansatz für kontinuierliche Tests eingeführt, Tendenz steigend. „Eine gut durchdachte und fundierte Testplanung ist der Schlüssel für ein erfolgreiches Testprojekt, auch wenn das Testen über den Lebenszyklus einer Applikation betrachtet zwischen 25 und 50 Prozent der anfallenden Gesamtkosten in Anspruch nimmt”, so Frank Witte, Inhaber der Firma Testmanagement.de, die sich auf Strategie, Monitoring und Controlling von Softwaretests in Unternehmen spezialisiert hat.
Das könnte Sie auch interessieren:
Software Quality & Testing
Automatisiertes Testen ist heutzutage kein Hexenwerk mehr. Jedes gute Unternehmen entwickelt Software mit automatisierten Unit-Tests und Integrationstests. Es ist klar, dass neue Programmiersprachen und Verfahren die tägliche Arbeit erleichtern. Egal ob DevOps, Low-Code und was auch immer da kommen mag, das Stichwort heißt Evolution.
Deutsch, 52 Seiten, PDF 8 MB, kostenlos
Was sind Risiken und Herausforderungen von Softwaretests in Unternehmen?
Bevor Softwaretests konzipiert und geplant werden, ist es wichtig, sich über die Probleme und Risiken klar zu werden. So kann man diese von vornherein ausschließen oder zumindest darauf vorbereitet sein. Der Testmanager fühlt sich dann nicht als Getriebener im Reaktionsmodus, sondern kann von Anfang an aktiv agieren. Auch wenn dieser Fakt vielleicht überrascht, so haben laut Capgemini Studie 62 Prozent der Befragten Schwierigkeiten, qualifizierte Fachkräfte für Strategie, Konzeption, Aufbau und Umsetzung kontinuierlicher Softwaretests zu finden. Das Personal ist gemäß Wittes Erfahrung tatsächlich eine Herausforderung bei der Planung von Softwaretests. Die Unternehmen sollten vorher abklären, ob genügend erfahrene Tester zur Verfügung stehen und ob sie motiviert sind. „Dafür spielt auch eine Rolle, ob der Mitarbeiter überhaupt Ressourcen hat oder ob er überlastet ist. Das Unternehmen sollte auch abklären, ob es persönliche Differenzen im Team gibt”, so Witte. Sein weiterer Rat: Das Team überschaubar halten, um die Kommunikationswege zu reduzieren, und Aufgabenstellungen klar formulieren.
Wenn der Softwaretest hinterfragt wird: das Risiko in Euro umrechnen
Neben dem Faktor Personal kann auch die Priorität des Projektes innerhalb des Unternehmens eine Herausforderung sein. Laufen zeitgleich andere Projekte, die der Geschäftsführung wichtiger sind, kann es ebenfalls zu Schwierigkeiten im Ablauf kommen. Gleiches gilt, wenn das Management überzogene Erwartungen hinsichtlich Terminsituation, Kosten und Qualität stellt. Neben diesen „soften“ Faktoren gibt es auch einige hard facts zu bedenken. Eine Umstellung der Server oder der Datenhaltung in der Cloud kann etwa Auswirkungen auf die zu testende Software haben, genauso wie die Änderung von Datenbanken. Wenn generell der Sinn des Softwaretests hinterfragt wird, hilft es, vorhandene Risiken in Euro umzurechnen, hat Witte festgestellt: „Zu sagen, wegen mangelhafter Testabdeckung beträgt das Risiko 750.000 Euro, ist natürlich wesentlich eindringlicher als zu sagen, dass wahrscheinlich fünf Prozent der geplanten Testfälle nicht termingerecht getestet werden können”.
Strategie für Softwaretests sollte sich an der IT-Strategie orientieren
Wenn die Herausforderungen hinreichend bekannt sind, kann mit der Konzeption, Planung und Organisation des Tests begonnen werden. Erster Schritt ist das Erarbeiten einer Teststrategie als Grundlage für die richtigen Testprozesse. Die Strategie sollte zudem unternehmensweit gültig sein und sich an der IT-Strategie orientieren. In der Dokumentation sollten mit Hilfe einer Testrichtlinie auf hohem Abstraktionsniveau die Prinzipien, der Ansatz und die wichtigsten Ziele einer Organisation in Bezug auf das Testen zusammengefasst werden. Handelt es sich um ein kleines Projekt von nur wenigen Tagen, zum Beispiel für die Einführung einer App, können nur Teile der Testrichtlinie umgesetzt werden. Es empfiehlt sich, für die Umsetzung der Projektstrategien und Erfolgskontrolle geeignete Metriken und Balanced Scorecards zu verwenden.
In der Teststrategie muss auch definiert werden, wie intensiv auf welcher Stufe getestet werden soll. Das hängt von unterschiedlichen Faktoren ab, beispielsweise dem verfügbaren Budget, dem Risiko, der Komplexität des zu entwickelnden Systems, der Menge der Teams oder auch dem Wissen über Testaktivitäten.
Im Review-Prozess die Zustimmung von allen Beteiligten einholen
Nach dem Erarbeiten der Strategie gilt es dann mittels des Testkonzeptes einen Bauplan zu erstellen. Dabei helfen vom IEEE (Institute of Electrical and Electronic Engineers) veröffentlichte Standards wie der „IEEE 829 Standard for Software Test Documentation“. Auch wenn vielleicht nicht alle Teile relevant sind, ist es sinnvoll, die Vorlage als grobe Leitlinie und Kompass zu verwenden. Denn in diesem Bauplan wird genau definiert, was die Testobjekte sind, welche Testaufgaben bestehen und welche Infrastruktur dafür notwendig ist. „Das Testkonzept ist kein Produkt, das im stillen Kämmerlein entsteht. Sondern es muss schrittweise im Dialog mit Experten und mit zukünftig Betroffenen im Projekt erarbeitet werden, damit es funktioniert”, weiß Witte. Steht das Konzept sollte ein Review-Prozess mit allen Beteiligten durchgeführt werden. Nur so kann jeder sein Feedback geben und ein Konsens wird erreicht. Durch das aktive Einbinden wird das Konzept gleichzeitig mit Leben erfüllt, denn ein Dokument mit Alibifunktion, das lediglich aus Gründen der Revisionssicherheit erstellt wurde, erfüllt seinen Zweck nicht.
Bei agilen Projekten muss sich die Testorganisation an stärkere Dynamik anpassen
Steht das Konzept, kann mittels der Testorganisation die praktische Umsetzung organisiert werden. Für die Testplanung empfiehlt sich dabei eine „rollierende“ Vorgehensweise. Das bedeutet, dass zu Beginn eine grobe Planung für das gesamte Projekt vorgenommen wird, die für jede einzelne anstehende Projektphase weiter detailliert wird. In dieser Phase geht es hauptsächlich um die Organisation der Testressourcen, zum Beispiel Personal, benötigte Hardware oder Datenbereitstellung. „Damit der Softwaretest geordnet abläuft, sind regelmäßige Statusmeetings, wöchentliche Testfortschrittsberichte und Abstimmungen unerlässlich“, fügt Witte hinzu. „Falls es sich um ein agiles Projekt handelt, muss sich der Testprozess an die stärkere Dynamik anpassen. Das sollte auch bereits bei der Organisation bedacht werden.“
Künstliche Intelligenz verändert die Prozesse bei Softwaretests
Trends wie künstliche Intelligenz (KI), kognitive Technologien oder Blockchain bieten neue Methoden, Verfahren und Ansätze, um Testabläufe effizienter umzusetzen. Denn der Einsatz von KI macht es möglich immer komplexer werdende Softwaresysteme in kürzerer Zeit zu verifizieren. Ist die Software bereits im Einsatz, übernimmt KI eine Wächterfunktion und warnt in Echtzeit vor zukünftigen Veränderungen und Abweichungen, die zu Fehlern führen können. Auch die Analyse von Big Data, um beispielsweise Fehlertaxonomien zu identifizieren oder die Testabdeckung zu steigern, wird möglich sein. Obwohl die Nutzung von KI in der Softwareentwicklung noch ganz am Anfang steht, wird die Arbeit mit KI-gestützten Werkzeugen in Zukunft auch für Softwaretester immer wichtiger. „KI kann wesentliche und reproduktive Aufgaben wie die Testdurchführung oder den Entwurf der Testfälle übernehmen“, so Witte. „Das schafft dem Softwaretester mehr Zeit für kreative und geistig anspruchsvollere Aufgaben.“
Fazit
Für den Erfolg von Softwaretests ist ein durchdachtes und ausgefeiltes Management erforderlich. Mit dem richtigen Testmanagement lassen sich Herausforderungen und Risiken bereits vor dem Projekt visualisieren. Dementsprechend sind Testmanager in der Phase der Konzepterstellung schon darauf sensibilisiert und können diese Punkte mit ins Konzept einfließen lassen. Damit das Konzept wirklich zum zentralen Dokument im Entwicklungs- und Testprozess wird, sollten alle Beteiligten die Möglichkeit haben, ihr Feedback zu geben. Die Bedeutung von Softwaretests wird in den nächsten Jahren weiter steigen, umso wichtiger ist eine strukturierte Vorgehensweise mit strategischer Planung und Organisation von Testprojekten.
Claudia Ballhause, IT-Journalistin Wordfinder PR