Von der berühmten Spitze des Eisbergs redet normalerweise, wer auf Unzulänglichkeiten im Verborgenen aufmerksam machen will. Doch genau dieses Pareto-Prinzip mit seiner geheimnisvoll naturwüchsigen 80-zu-20-Regel beschäftigt auch Softwareingenieure: Bei der ungleichen Masselagerung von schwimmendem Eis gilt das Prinzip - zumindest statistisch gesehen - ebenso wie bei der Verteilung von Reichtum, in der Versicherungsmathematik oder für die Fehlerwahrscheinlichkeit in einem Computerprogramm. "Selbst wenn die Streuung in Einzelfällen hoch ist - diese Verteilung zeigt sich auch hier: 80 Prozent der Fehler einer Software stecken in nur 20 Prozent der Komponenten" , weiß Rudolf Ramler vom Software Competence Center Hagenberg (SCCH). Und dieses Wissen nutzt das oberösterreichische Forschungszentrum nun für das Qualitätsmanagement von Software.

Erklärtes Ziel der Hagenberger ist es, die Fehler in einer Software bereits vor deren Auslieferung zu finden. Für Anwender klingt das zunächst einmal selbstverständlich, eine technische Lösung für dieses Vorhaben ist dennoch schwer umsetzbar und arbeitsintensiv. Um Software annähernd fehlerfrei zu bekommen, muss mit bis zu 50 Prozent des Aufwands, der für die Entwicklung notwendig war, gerechnet werden. Für die Suche nach Fehlern im System - durchschnittlich sind es 60 pro 1000 Zeilen Programmcode - gibt es recht unterschiedliche Ansätze. Um den Aufwand für Tests zu reduzieren und die Durchführung zu beschleunigen, werden Werkzeuge zur Testautomatisierung verwendet. Solche Werkzeuge stoßen jedoch schnell an ihre Grenzen, wenn es zum Testen der Kombination von Software und Hardware kommt.

Typische Fehlerquellen

Wichtiger wäre es, meinen daher die Forscher des SCCH, die Test dort einzusetzen, wo Fehler wahrscheinlich sind: etwa in den komplexesten Teilen des Systems oder in den typischerweise unter Zeitdruck entstandenen. Die Arbeit des Programmierers in der letzten Woche vor einem großen Software-Update gilt also als besonders ertragreich für Fehlerdetektive.

Erfolgreich aufgespürt werden solche Risikobereiche mit "data mining" , also durch ein systematisches Überprüfen von Daten aus der Softwareentwicklung auf verdächtige Muster. Diese wiederkehrenden Auffälligkeiten bilden schließlich die Grundlage für eine Prognosemodell, welches fehlerbehaftete Teile einer Software vorhersagen kann.

Um den generell hohen Aufwand für das Testen und die Automatisierung in einem vertretbaren Rahmen zu halten, müssen diese Methoden aber selektiv eingesetzt werden: etwa dort, wo computergesteuerte Maschinen nicht nur auf die Produktivität, sondern auch auf die Gesundheit von Menschen Einfluss haben.

Gemeinsam mit dem oberösterreichischen Trumpf-Werk, einem Hochtechnologieunternehmen in der Fertigungs- und Medizintechnik, haben die Hagenberger eine angewandte Lösung entwickelt. Oswin Strohmayer, Leiter der Softwaresteuerungstechnik bei Trumpf Maschinen Austria, freut sich jedenfalls über das neue Werkzeug zum Testen der Software ihrer Biegemaschinen: "Damit können wir die Hälfte der bisher manuell durchgeführten, ressourcenintensiven Softwaretests aufzeichnen - zudem finden die Testläufe nur mehr während der Nacht statt." Die menschlichen Tester bekämen so deutlich mehr Freiraum für die Analyse neuer Funktionen, oder wie es Ramler ausdrückt: "Wir wollen den Experten die Knochenarbeit abnehmen."

Mit "data mining" zur Vorhersage hat man am SCCH bereits in anderen Projekten gute Erfahrungen gemacht. Diese Verfahren kommen aktuell bei der Prognose des lokalen Wetters zum Einsatz. Umgelegt auf andere Softwareprojekte, wird so also eine Art Wetterbericht inklusive Unwetterwarnung für die verschiedenen Teile von Systemen möglich. (Sascha Aumüller/DER STANDARD, Printausgabe, 09.02.2011)