Upload
others
View
28
Download
0
Embed Size (px)
Citation preview
From System.out to Executable Specifications
Vorstellung
• Langjährige Erfahrungen als Entwickler, Architekt & Coach in verschiedenen Projekten mit Fokus eGovernment und Automobilindustrie
• Leiter der Competence Area " Client Architecture & Technology " mit 3 dazugehörigen Competence Groups und ca. 15 Mitarbeitern
• Mehrjährige Durchführung von Vorlesungen an der Dualen Hochschule Baden-Württemberg
3
Die Anfänge
Fachexperte
Kunde
Entwickler
Entwurf, Design
Implementierung
Test
_________________ ?
4
Die Zeit danach…
• Komplexere Anforderungen
Komplexere Lösungen
Grössere Teams
Aufgabenteilung , Spezialisierung
5
Wasserfall Trennung der Experten
Fach-
experten
Entwickler
Test & QA
Architekt
Anforderungen Anforderungen
Bug-Report Design /
Architecture
Deliverables
Overhead !
6
Probleme
Kein gemeinsames Verständnis !
7
Probleme
Redundanzen Hoher Pflegeaufwand
Fach-
experten Entwickler
Test & QA
Requirement
Management Tool
Architekt
Models
Deliverables
Source Code
Test scripts
Bug
reports
Documen
tation
Test
Specification
8
Traceability als Lösungsansatz
Fach-
experten Entwickler
Test & QA
Requirement
Management Tool
Architekt
Models
Deliverables
Source Code
Documen
tation
Test
Specification
Test scripts
Bug
reports
9
Traceability als Lösungsansatz?
• Nur Verlinkung Keine Synchronisierung
• Eigentlich Schuldzuweisung !
EIN crossfunctional TEAM !
Besser : Mauern brechen !
Fach-
experten Entwickler
Test & QA Architekt
1. Specification Workshops
Kollaboration aller Experten ! 11
Fachbereich
Anwender
Product Owner
Developer
Architects
Test & QA
12
2. Verfeinerung mit Schlüsselbeispielen
Sind Grundlage für
13
Ergebnis : Specification with Examples
User story
Scenarios, Akzeptanzkriterien
Schlüsselbeispiele
14
3. Automatisierung der Validierung
Die Spezifikation inkl. Beispiele & Szenarien
Die Fixture als Glue-Code
Das System Under Test
15
Ergebnis: ausführbare Spezifikation
Vorteile
• Trennung WAS WIE testen
Testdaten nicht im Code
Schlankerer Code !
Vorteile
• Einfache Erfassung Testfälle & -
szenarien
• Schnellere Entwicklung der Tests
18
4. Regelmässige Validierung
1. Strukuturierung der ausführbaren Spezifikationen
2. Einbindung in die CI-Umgebung
19
Ergebnis: Living Documentation
• Für alle zugänglich
• Verständlich für alle !
• Abbildung des aktuellen Stands der entwickelten Software
20