Anbieter zum Thema
Dies lasse sich vermeiden, indem es gelinge, die Mitarbeiter aus der Qualitätssicherung unmittelbar in die Entwicklerteams zu integrieren und parallel dazu die Test-Automatisierung voranzutreiben. Doch gerade an der sensiblen Schnittstelle zwischen Mensch und Technik treten die größten Schwachstellen hervor.
Ein Grund, warum neue Methoden vom Markt teilweise zögerlich aufgenommen werden, ist, dass der Return of Invest oftmals nicht nachweisbar ist, also für alle Beteiligten transparent gemacht werden kann.
Wie sich der Knoten zwischen zu teurer und zu simpel gestrickter Softwareentwicklung lösen lässt, skizziert Bernhard Merkle, Research & Development Software Engineering bei der Sick AG. Das Unternehmen setzt bereits frühzeitig in der Design-Architektur an, um die Erosion bei Softwareapplikationen zu vermeiden. So gehört die fundierte statische Analyse für Software auf Code und Architektur-Ebene bei dem Hersteller von Sensoren für industrielle Anwendungen inzwischen zum Entwicklungsprozess. Nur durch einen kontinuierlichen, automatisierten Überprüfungsprozess kann die Qualität entsprechend gewährleistet und langfristig gesichert werden.
„Das Investment in diese Schritte zahlt sich über die Dauer auf jeden Fall aus“, bilanziert der Experte. „Ansonsten entsteht Chaos, wenn die bestehenden Sourcecode-Architekturen nicht regelmäßig analysiert werden.“ Seiner Auffassung nach gilt es nicht nur die Produktentwickler von der Einhaltung von Qualitätsstandards zu überzeugen, sondern vor allem das Management dafür einzunehmen, „und zwar indem die Spezialisten sichtbar machen, auf welchen Gebieten also ein konkreter Handlungsbedarf besteht.“
Viele Testverfahren decken nur Teilbereiche ab
Mittlerweile wieder in Mode kommt auch das klassische Requirement-Engineering. Mit Hilfe dieses Verfahrens lassen sich gleich zwei Fehlerquellen minimieren. Einerseits wird mit dem Autraggeber klar abgestimmt, was beziehungsweise wie sein Produkt am Ende sein soll. Auf der anderen Seite profitiert auch der Auftragnehmer von einer möglichst konkreten Aufgabenstellung.
Unter Experten noch umstritten sind selektiv angewendete Testverfahren ohne Bindung zur ganzheitlichen Organisation und zum gesamten Produktlebenszyklus, wie das „blinde“ Testen, Fuzzing oder die statische Quellcodeanalyse. Die Verfahren greifen oftmals nur an isolierter Stelle und drohen somit nur begrenzt effektiv zu sein.
„Die genannten Testverfahren sind hilfreich, decken aber nur einen kleinen Teilbereich ab, weil sie hauptsächlich Formalfehler finden, aber das dynamische Anwendungsverhalten nicht berücksichtigen und auch den Sinn der Anwendung nicht kennen“, sagt Bernd Greifeneder von Dynatrace Software. Deshalb sei das hauptsächliche Augenmerk darauf zu richten, Programmierrichtlinien einzuhalten und zu automatisieren, um „Anfängerfehler“ möglichst frühzeitig abzufangen. Der Experte plädiert dazu für fortlaufende Code-Reviews und Unit Tests als das beste methodische Instrumentarium, um so früh wie möglich Programmierprobleme zu erkennen.
(ID:280047)