Software ist heute ein elementarer Bestandteil des Wirtschaftslebens. Unternehmen und Behörden sind in vielen Bereichen davon abhängig, dass Software-Systeme reibungslos funktionieren und die Anwender bei der täglichen Arbeit optimal unterstützen. Doch daran hapert es häufig. Das zeigen diverse Studien, wie etwa der seit 1994 alle zwei Jahre veröffentlichte Chaos Report des Marktforschers Standish Group.
Entwicklung als geschlossener Kreislauf
Die harte Realität ist also, dass neu entwickelte Software häufig diverse Qualitäts-Mängel aufweist. So werden etwa Anforderungen von Anwendern nur unzureichend erfüllt, was zu einer geringen User-Akzeptanz führt. Auch enthalten neue Software-Lösungen oft Fehler, deren nachträgliche Behebung Unternehmen viel Zeit und Geld kostet. Fehlerhafte Software kann darüber hinaus einen nicht unbeträchtlichen wirtschaftlichen Schaden verursachen. Fällt deswegen die Produktion aus, können Kunden nicht mehr beliefert werden, und Marktanteile gehen verloren.
IT- und Software-Entwicklungsprojekte sind jedoch keine Geheimwissenschaft, sondern ein Prozess wie jeder andere und damit über den gesamten Lebenszyklus hinweg exakt steuerbar. An diesem Punkt setzt Application Lifecycle Management (ALM) an, das die Software-Entwicklung als geschlossenen Kreislauf ineinander greifender Phasen versteht, in denen es genau definierte, reproduzier- und messbare Prozesse gibt. Das umfasst alle Prozesse von Planung über die Definition der Anforderungen, Design, Entwicklung und Konfiguration bis hin zu Tests und der Bereitstellung von Software.
Frühzeitige und häufige Tests …
Um späteren Problemen und Fehlern vorzubeugen, müssen die Qualitäts-Kriterien und -ziele bereits zu Beginn eines Software-Entwicklungsprojekts festlegt und während des Herstellungsprozesses kontinuierlich überprüft werden. In der Regel werden in Projekten zwar Anforderungen erfasst und Software-Tests durchgeführt, aber beides ist häufig nicht sinnvoll miteinander verknüpft. Oft haben Lösungsarchitekten sowie Entwickler keine klare Vorstellung, was sie wirklich umsetzen sollen.
Dieses Risiko wird durch anforderungsbasiertes Testen (Requirements Based Testing = RBT) entscheidend verringert. RBT verankert die Qualitäts-Sicherung schon am Anfang eines Entwicklungsprojekts, nämlich bei der Definition der Anforderungen. Diese werden beispielsweise durch den Aufbau detaillierter Geschäfts-Szenarien sowie Storyboards festgelegt, in einem Repository abgelegt und so allen Projektteilnehmern, ob Lösungsarchitekt, Entwickler oder Testanwender, zugänglich gemacht.
RBT ist vollständig in den gesamten Software-Entwicklungszyklus integriert und findet parallel dazu statt. Unmittelbar nach Fertigstellung der Anforderungen, des Designs und der Code-Artefakte werden diese geprüft und durch Tests mit Best Practices, Unternehmenszielen, Anforderungen, Anwendungsfällen und Testfällen abgeglichen. Die Testfälle werden methodisch und systematisch erstellt sowie durchgespielt.
… steigern den Wertbeitrag von Software
Mögliche Abweichungen oder Fehler im Entwicklungsprozess werden frühzeitig erkannt und mit überschaubarem Zeit- sowie Kostenaufwand behoben. Das schützt vor unangenehmen Überraschungen nach Abschluss der Implementierung. Darüber hinaus orientiert sich die Entwicklung an den Erfordernissen der Anwender, was von Beginn an für eine hohe Akzeptanz sorgt und die Produktivität messbar steigert. Damit stellt anforderungsbasiertes Testen den größtmöglichen wirtschaftlichen Nutzen von Software sicher und erhöht deren Wertbeitrag an der gesamten Unternehmensleistung.