Um agile Entwicklungsprozesse umzusetzen und in die tägliche Arbeit zu integrieren, können Lösungen für das Application Lifecycle Management (ALM) eine wertvolle Unterstützung sein. ALM-Tools stellen eine einheitliche Umgebung zur Verwaltung aller Entwicklungsaktivitäten sowie zur fach- und abteilungsübergreifenden Kommunikation und Zusammenarbeit zwischen Softwareentwicklungsteams, Testabteilungen, Customer Support und weiteren Stakeholdern zur Verfügung.
Werden in einer Entwicklungsumgebung Spezialwerkzeuge wie beispielsweise DOORS, Jira oder Jenkins für unterschiedliche Aufgaben eingesetzt, können ALM-Tools helfen, diese Werkzeuge in einen gemeinsamen Entwicklungsprozess zu integrieren. Dazu stellen sie Funktionen bereit, um die Übersicht über den Projektfortschritt zu behalten und die Traceability zwischen einzelnen Arbeitsprodukten sicherzustellen.
Ein Beispiel hierfür ist die ALM-Plattform codebeamer von PTC. Ein zentrales Instrument zur Verwaltung von Projektinformationen, Artefakten, Anforderungen, Change Requests, Rollen und Beziehungen in codebeamer sind sogenannte Tracker – eine Art generisches Artefakt (siehe Abbildung 1).
Mit Trackern können alle Artefakte wie Anforderungen, Probleme, Bugs, Testfälle und andere Arbeitselemente definiert, verwaltet und verfolgt werden. Jeder Tracker kann an die spezifischen Projektanforderungen angepasst werden. Er kann eigene Attribute, Workflows, Zustände und Regeln besitzen, um den Lebenszyklus von Artefakten zu steuern. Tracker können Beziehungen zwischen Artefakten abbilden und ihren Fortschritt im Laufe der Zeit verfolgen. Sie ermöglichen somit eine bessere Verwaltung des Softwareentwicklungsprozesses und stellen sicher, dass Anforderungen umgesetzt, Probleme behoben und Tests nachvollziehbar durchgeführt werden.
Durch die Verknüpfung der einzelnen Tracker entsteht eine durchgängige Nachverfolgbarkeit der Entwicklungsartefakte. Anforderungen können mit Implementierungsaufgaben, Änderungsanfragen, Fehlerberichten und Testfällen in Beziehung gesetzt werden. Dadurch lässt sich jederzeit nachvollziehen, welche Anforderungen bereits umgesetzt wurden, welche Änderungen im Rahmen der Entwicklung vorgenommen wurden und mit welchen Tests die jeweiligen Funktionen verifiziert wurden. Insbesondere in größeren Projekten unterstützt diese Traceability die Analyse von Auswirkungen geplanter Änderungen und erleichtert die Dokumentation des Entwicklungsfortschritts.
Neben der Verwaltung von Artefakten unterstützen Tracker auch die Steuerung von Entwicklungsprozessen. Typische Statusübergänge reichen von der Erstellung eines Arbeitspakets über die Implementierung und Integration bis hin zur erfolgreichen Verifikation durch den Test. Auf diese Weise können Projektfortschritte transparent dokumentiert und der aktuelle Bearbeitungsstand einzelner Aufgaben jederzeit nachvollzogen werden.
Für die Arbeit in Projekten können Tracker einfach hinzugefügt werden. Dabei können sowohl Sets vordefinierter Tracker genutzt als auch benutzer- und prozessspezifische Tracker individuell definiert und konfiguriert werden. Verknüpfungen können nicht nur zwischen Trackern hergestellt werden, sondern auch mit anderen codebeamer-Elementen, Dokumenten und sogar externen Quellen.
In einem typischen Entwicklungsprozess entstehen Arbeitspakete dabei nicht isoliert, sondern werden aus bestehenden Entwicklungsartefakten abgeleitet. Neue Aufgaben können beispielsweise durch Anforderungen, Änderungsanfragen oder gemeldete Fehler ausgelöst werden. Durch die Verknüpfung dieser Elemente bleibt jederzeit nachvollziehbar, aus welchem fachlichen oder technischen Ursprung eine Implementierungsaufgabe hervorgegangen ist. Dies erleichtert sowohl die Planung als auch die spätere Analyse und Dokumentation des Entwicklungsprozesses.
Die Rückverfolgbarkeit endet dabei nicht auf Ebene der Anforderungen oder Testfälle. Auch Änderungen im Quellcode können über entsprechende Referenzen mit den zugehörigen Arbeitspaketen verknüpft werden. Dadurch lässt sich später nachvollziehen, welche Implementierungen zur Umsetzung einer bestimmten Anforderung oder zur Behebung eines Fehlers durchgeführt wurden. Die Verbindung zwischen Anforderungen, Implementierung und Test schafft somit eine konsistente Informationsbasis über den gesamten Entwicklungszyklus hinweg. Abbildung 2 zeigt mögliche Relationen zwischen den durch Tracker abgebildeten Entwicklungsartefakten.
Im Testmanagement können Tracker zur Steuerung des Testprozesses in einer integrierten Toolumgebung genutzt werden. Ein Beispiel ist in Abbildung 3 dargestellt. Hier wird ein Continuous-Integration-Szenario dargestellt. Das Testobjekt ist in diesem Fall die Softwaresimulation eines Notbremsvorgangs im Zusammenspiel mit der Blinkanlage eines Fahrzeugs.
Im dargestellten Demonstrator wird das Verhalten eines automatischen Notbremswarnblinkens untersucht. Die Testplattform simuliert hierzu einen Fahrzustand, bei dem ein Fahrzeug zunächst auf 120 km/h beschleunigt und anschließend auf 60 km/h abbremst. Während dieses Bremsvorgangs soll die Software automatisch das Notbremswarnblinken aktivieren. Nach einer definierten Zeitspanne wird wieder auf den zuvor aktiven Fahrtrichtungsanzeiger zurückgeschaltet. Der Testfall überprüft, ob die Software die vorgesehenen Zustandswechsel korrekt ausführt und die erwarteten Reaktionen in den jeweiligen Fahrsituationen erzeugt.
Über Jenkins, das den CI-Prozess verwaltet, erfolgt eine Anbindung der übrigen Testumgebung mittels REST-API an das ALM-Tool. Die Steuerung des Datenflusses zwischen codebeamer und Jenkins erfolgt über Curl- und Groovy-Skripte (siehe Abbildung 3).
Der Prozess wird in diesem Beispiel manuell in codebeamer angestoßen und kann mit Hilfe geeigneter Tracker überwacht und gesteuert werden.
Über Jenkins wird zunächst der Quellcode des Systems unter Test (SUT) aus dem Repository kompiliert. Anschließend wird die Testausführung durch ContinoProva gestartet. Die Testergebnisse werden nach Abschluss der Testläufe an codebeamer zurückgegeben und die zugehörigen Tracker automatisch mit den neuen Informationen aktualisiert.
Durch die Integration der beteiligten Werkzeuge entsteht eine durchgängige Informationskette über den gesamten Entwicklungs- und Testprozess. Anforderungen, Implementierungsaufgaben, Quellcodeänderungen, Testfälle und Testergebnisse bleiben miteinander verknüpft und können gemeinsam ausgewertet werden. Treten während eines Testlaufs Fehler auf, lässt sich schnell nachvollziehen, welche Anforderungen betroffen sind, welche Änderungen zuletzt vorgenommen wurden und welche Testergebnisse im Zusammenhang mit dem jeweiligen Arbeitspaket stehen.
Gerade in agilen Entwicklungsprojekten mit häufigen Änderungen und kurzen Release-Zyklen unterstützt eine solche Werkzeugkette die Qualitätssicherung erheblich. Durch die automatisierte Bereitstellung und Verknüpfung von Informationen können manuelle Aufwände reduziert und Entwicklungsentscheidungen auf einer konsistenten Datenbasis getroffen werden.
ALM-Tools lassen sich auf diese Weise für ein erweitertes Testmanagement nutzen. Sie bieten eine Vielzahl von Möglichkeiten, die jedoch passgenau auf die vorhandenen Prozesse und Werkzeuge zugeschnitten werden müssen. Bei entsprechender Planung und Vorbereitung lassen sich damit effiziente Automatisierungslösungen schaffen und für den eigenen Testprozess nutzbar machen.
ITPower Solutions unterstützt Unternehmen bei der Einführung und Anpassung von ALM-Plattformen, der Integration von Continuous-Integration-Prozessen sowie der Umsetzung automatisierter Testlösungen. Dabei begleiten wir unsere Kunden von der Konzeption geeigneter Toolketten über die Integration bestehender Systeme bis hin zur Implementierung individueller Automatisierungs- und Testmanagementlösungen.
Ich bin Ihr vertrieblicher Ansprechpartner und berate Sie gerne zu allen Fragen rund um unsere Dienstleistungen und Produkte! Melden Sie sich oder vereinbaren Sie einfach einen Termin für ein kostenloses Beratungsgespräch.
Sebastian Stritz
E-Mail: sebastian.stritz@itpower.de
Telefon: +49 (0)30 6098501-17
