29,99 €
Softwaretests werden in der Automobilbranche zunehmend automatisiert. Das Behaviour Driven Development ist eine Technik der agilen Softwareentwicklung, die automatisierte Tests ermöglicht. Dabei wählen Softwareentwickler Testwerkzeuge nach bestimmten Prinzipien aus und wenden diese bei Tests wie dem Akzeptanztest an. Aber welches Framework eignet sich zur Automatisierung von Akzeptanztests? Welche Probleme ergeben sich beim Einsatz von Werkzeugen des Behaviour Driven Development? Und welche Kriterien sind bei der Auswahl eines Testframeworks wichtig? Pascal Mödinger vergleicht anhand eines Testszenarios die Tools Cucumber und Spock miteinander. Er implementiert diese und prüft nach ausgewählten Kriterien, welches Framework sich zur Automatisierung von Akzeptanztests besser eignet. Aus dem Inhalt: - Behaviour Driven Development; - Agile Projekte; - Softwaretest; - Akzeptanztest; - Automobilbranche; - Testautomatisierung
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 70
Inhaltsverzeichnis
Abstract
1 Einleitung, Motivation und Überblick
2 Problemstellung und Forschungsfrage
3State of the Art von Softwaretesting
3.1 Testautomatisierung
3.1.1 Testebenen
3.1.2 Akzeptanztests
3.1.3 Zu beachtenden Themen bei der Testautomatisierung
3.2 Test Driven Development (TDD)
3.3 Behaviour Driven Development (BDD)
3.4 Unterschied zwischen TDD und BDD
3.5 Aktuelle Forschungsarbeiten zu dem Thema
4 Methodisches Vorgehen
5 Ergebnis
5.1 Vorstellung und Auswahl der BDD-Frameworks
5.2 Testszenario
5.3 Kriterienkatalog
5.3.1 Usability des Frameworks
5.3.1.1 Hilfestellungen für den Umgang mit dem Framework
5.3.1.2 Einfaches Setup
5.3.1.3 Einfaches Erstellen von Testfällen
5.3.1.4 Einfaches Anpassen von vorhandenen Tests
5.3.1.5 Verwaltung / Pflege von Testdaten
5.3.2 Auswertung der Ergebnisse
5.3.2.1 Performance und Laufzeit
5.3.2.2 Möglichkeiten der Darstellung der Testergebnisse
5.3.2.3 Anzeige der Code Coverage
5.3.3 Wiederverwendbarkeit des Frameworks in weiteren Projekten
5.3.3.1 Kompatibilität mit den eingesetzten Frameworks
5.3.3.2 Einbaubarkeit in andere Projekte
5.3.3.3 Kosten für die Nutzung des Frameworks
5.4 Ergebnisse der Implementierung mit Cucumber
5.4.1 Usability des Cucumber Frameworks
5.4.1.1 Hilfestellungen für den Umgang mit dem Framework
5.4.1.2 Einfaches Setup
5.4.1.3 Einfaches Erstellen von Testfällen
5.4.1.4 Einfaches Anpassen vorhandener Testfälle
5.4.1.5 Verwaltung / Pflege von Testdaten
5.4.2 Auswertung der Ergebnisse mit Cucumber
5.4.2.1 Performance und Laufzeit
5.4.2.2 Möglichkeiten der Darstellung der Testergebnisse
5.4.2.3 nzeige der Code Coverage
5.4.3 Wiederverwendbarkeit von Cucumber in weiteren Projekten
5.4.3.1 Kompatibilität mit den eingesetzten Frameworks
5.4.3.2 Einbaubarkeit in andere Projekte
5.4.3.3 Kosten für die Nutzung des Frameworks
5.5 Ergebnisse der Implementierung mit Spock
5.5.1 Usability des Spock Frameworks
5.5.1.1 Hilfestellung für den Umgang mit dem Framework
5.5.1.2 Einfaches Setup
5.5.1.3 Einfaches Erstellen von Testfälle
5.5.1.4 Einfaches Anpassen vorhandener Tests
5.5.1.5 Verwaltung / Pflege von Testdaten
5.5.2 Auswertung der Ergebnisse mit Spock
5.5.2.1 Performance und Laufzeit
5.5.2.2 Möglichkeiten der Darstellung der Testergebnisse
5.5.2.3 Anzeige der Code Coverage
5.5.3 Wiederverwendbarkeit von Spock in weiteren Projekten
5.5.3.1 Kompatibilität mit den eingesetzten Frameworks
5.5.3.2 Einbaubarkeit in andere Projekte
5.5.3.3 Kosten für die Nutzung des Frameworks
5.6 Vergleich der Frameworks
6 Fazit
6.1 Zusammenfassung
6.2 Limitations
6.3 Next Steps
6.4 Lessions Learned
6.5 Contribution to Practice
6.6 Contribution to Science
Abbildungsverzeichnis
Tabellenverzeichnis
Literaturverzeichnis
Anhang
Behaviour Driven Development (BDD) ist sowohl in der Forschung als auch in der Praxis ein relevantes Thema. Besonders in Projekten, die nach agilen Projektmanagementmethoden vorgehen hat BDD in den vergangenen Jahren immer mehr an Bedeutung gewonnen. Es gibt mittlerweile eine Vielzahl an Testwerkzeugen, die bei der Testautomatisierung von Softwaretests nach den BDD Prinzipien herangezogen werden können. Dabei ist es nicht immer einfach, ein Werkzeug für die speziellen Anforderungen in einem Projekt auszuwählen. Bei der Auswahl eines Testwerkzeuges ist auch darauf zu achten, welche Ebene von Softwaretests automatisiert werden soll. Diese Arbeit soll einen Überblick über gängige Tools zur Testautomatisierung nach den BDD-Prinzipien geben und bei der Auswahl eines Behaviour Driven Development Frameworks helfen. Dazu werden in dieser Arbeit verschiedene BDD-Tools miteinander verglichen.
Aktuell gibt es in dem Projekt die Herausforderung mit der Automatisierung der Softwaretests. In diesem Projekt für die Arbeit wird ein Konfigurator für KFZ-Fahrzeuge entwickelt. Dieser Konfigurator stellt verschieden Schnittstellen zur Verfügung, die beispielsweise den Preis und die Emissionswerte für ein konfiguriertes Fahrzeug errechnen und zurückgeben. Die eigens entwickelten Funktionen des Konfigurators sollen entsprechend mit Akzeptanztests abgedeckt werden. Ein Akzeptanztest ist eine bestimmte Art von Softwaretest und wird zu einem späteren Zeitpunkt in Kapitel 3.1.3 noch genauer vorgestellt. Derzeit werden noch viele Akzeptanztests der Konfigurator-Software manuell ausgeführt. Dabei müssen teilweise die Preise für konfigurierte Fahrzeug noch manuell errechnet, und mit dem richtigen Preis abgeglichen werden. Für den implementierten Konfigurator wurden aber auch schon einige Akzeptanztests mit dem Behaviour Driven Development (BDD) Werkzeug Cucumber automatisiert. Allerdings schlagen die bereits automatisierten Tests fehl, wenn veraltete Testdaten verwendet werden. In dem entwickelten Konfigurator werden sehr häufig neue Fahrzeugkonfigurationen hinzugefügt und veraltete Fahrzeuge entfernt. Diese veralteten Konfigurationen von Fahrzeugen müssen sehr zeitaufwändig manuell entfernt und mit neuen, gültigen Fahrzeugkonfigurationen ersetzt werden.
Zu Beginn dieser Arbeit wird beschrieben, welche Vorteile Testautomatisierung von Softwaretests gerade in Agilen Projekten mit sich bringt. Danach werden in Kapitel 3.1.1 die verschiedenen Testebenen, in die Softwaretests unterschieden werden können, vorgestellt. Da in dieser Arbeit Akzeptanztests im Mittelpunkt der Testautomatisierung stehen, werden diese noch einmal gesondert näher vorgestellt. In Kapitel 3.1.5 wird aufgezeigt, was es bei der Testautomatisierung in agilen Projekten zu beachten gilt. Dabei wird auch der Bezug zur Problemstellung dieser Arbeit deutlich. Anschließend werden die beiden Ansätze Test Driven Development und Behaviour Driven Development und deren Unterschiede vorgestellt. In Kapitel 4 wird das methodische Vorgehen dieser Arbeit beschrieben. Danach wird eine Übersicht über die gängigsten Tools, die den Ansatz BDD verfolgen, gegeben. Dazu werden die Frameworks sowie die Stärken und Schwächen in einseitigen Factsheets beschrieben. Zwei Factsheets sind in Kapitel 7.1 abgebildet. Weiter Factsheets von BDD-Frameworks sind im Anhang abgebildet. Anhand dieser Factsheets werden die Frameworks für den Vergleich ausgesucht. In Kapitel 7.3 wird ein Testszenario beschrieben. Dieses Testszenario wird mit den zu vergleichenden BDD-Tools implementiert. Im darauffolgenden Abschnitt wird ein Kriterienkatalog beschrieben. Die darin enthaltenen Kriterien sind mithilfe einer Umfrage erarbeitet worden. An der Umfrage haben Entwickler teilgenommen die bereits Erfahrung mit BDD-Tools haben. Daneben sind dem Kriterienkatalog weitere Kriterien hinzugefügt worden, die durch die Literaturrecherche ebenfalls als wichtig erachtet werden. In Kapitel 7.7 und Kapitel 7.9 sind die Ergebnisse der Implementierung des Cucumber und des Spock Frameworks abgebildet. Anhand der Ergebnisse aus der Implementierung und den festgelegten Kriterien entsteht ein Vergleich der Frameworks, der in Kapitel 7.11 aufgeführt wird. Der Vergleich der Frameworks wird mithilfe einer Nutzwertanalyse durchgeführt. Zum Abschluss dieser Arbeit wird noch ein Fazit in Kapitel 8 gegeben. Dieses beinhaltet zu Beginn eine Zusammenfassung der Hauptereignisse mit anschließendem Aufzeigen der Einschränkungen und der nächsten Schritte dieser Arbeit. Was es bei einem erneuten Vergleich von verschiedenen Frameworks zu beachten gibt, wird in Kapitel 9.7 gezeigt. Die beiden letzten Punkte dieser Arbeit erläutern anschließend, welchen Beitrag diese Arbeit zur Praxis und Forschung liefert.
Es gibt mittlerweile viele Tools, die nach den BDD Prinzipien die Testautomatisierung ermöglichen. Aber nicht jedes dieser Werkzeuge eignet sich für die Anforderungen in einem Projekt. In dem aktuellen Projekt soll eine Software mit Akzeptanztests nach den BDD Prinzipien getestet werden. Dabei tritt das Problem auf, dass immer wieder bereits automatisierte Tests aufgrund veralteter Testdaten fehlschlagen. Auch werden einige Tests noch manuell ausgeführt und auf Richtigkeit überprüft. Die Wahl des richtigen Frameworks für die Bedürfnisse eines Projektes ist nicht immer leicht zu treffen. Diese Arbeit beschäftigt sich mit der Forschungsfrage: „Welches Behaviour Driven Development Framework eignet sich zur Automatisierung von Akzeptanztests am besten?“. Zur Beantwortung der Forschungsfrage werden noch die Fragen, „Welche Probleme gibt es bei dem Einsatz von BDD-Tools in agilen Softwareprojekten?“ und „Welche Kriterien sind bei der Auswahl eines Testframeworks wichtig?“ aufgegriffen und bearbeitet.