Q-Event «Spice up your Test!»

Testautomatisierung in der agilen Software Entwicklung Q-Event «Spice up your Test!» Einsatz und Nutzen von Testautomatisierung in agilen Software Pr...
6 downloads 0 Views 262KB Size
Testautomatisierung in der agilen Software Entwicklung

Q-Event «Spice up your Test!» Einsatz und Nutzen von Testautomatisierung in agilen Software Projekten Urs Müller Senior Testautomation Engineer www.bbv.ch www.bbv.ch

Agenda • Agil testen • Agil und Automatisierung − Die Automatisierungspyramide − Agile Automatisierungsstrategie • Agiles (Test) Projekt: ein erfolgreiches Beispiel • Testautomatisierung im agilen Projekt: Beispielprojekt bei bbv

www.bbv.ch

Agil Testen Was ein Tester im agilen Software Umfeld können sollte oder erwarten muss.

www.bbv.ch www.bbv.ch

Der agile Tester • Ist Bindeglied zwischen Product Owner und Entwicklung • Hilft bei der Ausarbeitung von Stories • Stellt sicher, dass jede Entwicklerstory durch (automatisierte) Testfälle abgedeckt wird • Automatisiert Integrations- und GUI-Testfälle • Unterstützt Benutzer/Kunden beim User Akzeptanz Test (UAT) • Testet neue Stories explorativ • Denkbar: Review von Unit Tests

www.bbv.ch

Agil Testen: Auf den Punkt gebracht • Der Testprozess bleibt der gleiche, die Basis bleibt der fundamentale Testprozess. Grundlegend anders sind: − Die Testbasis − Die Wichtigkeit der Automatisierung − Integration der Tester ins Scrum-Team

www.bbv.ch

Agil und Automatisierung Welche Arten von Automatisierung kann man in agilen Projekten einsetzen und wie und wo soll man mit der Automatisierung anfangen?

www.bbv.ch www.bbv.ch

Testautomatisierungspyramide (nach Cohn) • Technologieseitige Tests (Unit / Integration) Wenige

Manueller Test

− Automatisiert − Sicherheitsnetz

• GUI Tests Anzahl Testfälle

GUI Tests Integrationstest

− Im Idealfall automatisiert

• Manueller Test − Exploratives Testen − User Akzeptanz Test

Unit/Komponententest

Viele

Warum automatisieren?

• Sicherheitsnetz • Zeitbedarf (Regressionstest) www.bbv.ch

Agil und Automatisierung: Strategie • Es gibt keine «beste» Strategie! Analyse • • •

Grundlage: Gute Entwicklungspraktiken! Herausfinden: Wo tut es dem Team am meisten weh? Herausfinden: Was ist für die Anwendung am wichtigsten? Guidelines

• • •

Im Vordergrund: Entwicklung vorantreiben Das richtige Werkzeug für die richtige Test-Stufe «Good enough solution» - aber keine «technical debt» Vorgehen

• •

Schichtweiser Ansatz (siehe Pyramide!) Design und Wartung berücksichtigen − Haupthandlung abdecken, ausbauen (Slices – Prinzip) − 1 Testfall = 1 Business Rule − Möglichst tief in der Pyramide ansetzen www.bbv.ch

Agilität und Testautomatisierung: Prinzipien Keep it simple! Coding Techniques

Quick Feedback Agile Prinzipien

«Whole Team Approach»

Learning by doing – do it! Do it right!

Prinzipien und anpassbare Regeln statt starre Prozesse www.bbv.ch

Praxisbeispiele agiler Testprojekte

Projekt 1: Ein erfolgreiches Projekt als Idealbeispiel Projekt 2: Agiles Testprojekt bei bbv Software Services AG

www.bbv.ch www.bbv.ch

Agiles Test-Projekt: ein erfolgreiches Beispiel

Erfahrungen aus einem erfolgreichen Projekt (Lisa Crispin, Beautiful Testing)

www.bbv.ch www.bbv.ch

Erfolgreiches Projekt: Allgemein • • • •

Applikation zur Darlehensverwaltung 2003: Legacy System ohne Form von Testautomatisierung Ziele und Regeln (Retrospektive als wichtiges Mittel) Ziele und Regeln: Beispiele − Jede Story muss getestet werden − Alle High Level Tests bis Tag 4 definiert − 1 Story für Test bereit am Tag 4 − Keine neuen Funktionen am letzten Sprint Tag • Toolauswahl durch ganzes Team • Ganzes Team für gesamte Automatisierung verantwortlich

www.bbv.ch

Erfolgreiches Projekt: Automatisierung • Schrittweise Automatisierung − Legacy Code mit neuem Design (logische Trennung) und Unit Tests neu schreiben − Nie mehr als 1 Tool/1 Technologie auf einmal neu einführen

• Projekt-Zeitachse:

GUI Smoketests Beginn: Unit Tests Funktionale Tests mit «Fitnesse»

2004

2005

99 Web Test Skripte 474 «Fitnesse» Tests 3864 Unit Tests

2009

www.bbv.ch

Agile Testautomatisierung: Beispielprojekt bei bbv

Erfahrungen aus einem laufenden Projekt bei bbv

www.bbv.ch www.bbv.ch

Beispielprojekt: allgemeine Informationen • Abrechnungssystem − Zahlreiche Schnittstellen − Serverbasiertes Drucksystem − Komplexe Buchungs- und Verrechnungsvorgänge − Desktop Client für Mitarbeiter − Webinterface für Kunden • Projektbeginn: 2002 • Technologien: .Net, ASP.Net, C, Java • Ab Januar 2009: Umstellung auf Scrum • Team: 4-7 Entwickler, 1-3 Tester • Seit Juli 2010: TFS 2010

www.bbv.ch

Beispielprojekt: «Going Agile» • Automatisierung von GUI Tests: 66 logische Testfälle • Refactoring des bestehenden Codes − Unit Tests erstellen − Zahl der Codezeilen verkleinern

Coverage

Codezeilen

30%

6000000

25%

5000000

20%

4000000

15%

Coverage 3000000

10%

2000000

5%

1000000

0%

0

LOC Unvisited LOC

www.bbv.ch

Beispielprojekt: Automatisierung (Zeitachse)

Wenige Unit Tests Ausbau Unit Testing, “Verify” Funktional: manuell, explorativ Aufbau RfT Framework Mit QC/QTP

Bis Januar 2010

Mai 2010

Ausbau Unit Testing, “Verify” Umstieg Coded UI Tests Microsoft TM

Juli 2010

Ausbau Unit Testing Ausbau Agiler Prozess Ausbau Coded UI Beginn: Aufbau Tests Acceptance Test Layer Beginn: Agiles Testing

September 2010

April 2011

www.bbv.ch

Beispielprojekt: Erfahrungen Allgemein • Automatisierung allgemein − Suchen/Generieren von Testdaten braucht am meisten Zeit! − Aufbau eines Frameworks und Umgebung: 3 Monate − Automatisierte Testfälle müssen unabhängig voneinander sein • «Agile Testing» − Schrittweise Umstellung/Einführung − Anpassung der Testaktivitäten an die Bedürfnisse des Teams − Person mit Testerrolle muss für das Team/Projekt voll verfügbar sein

www.bbv.ch

Erfahrungen: Werkzeuge • QC/QTP − viele Funktionen und Möglichkeiten (Scheduler, Testset Management, Checkpoints, Bearbeitung von Recordings) − Schwerfällig, komplex, teure Lizenz

• MTM/Coded UI Test − Echte IDE und echte Programmiersprache (entwicklerfreundlich) − Schnell (Testfallprogrammierung, IDE) − Noch nicht ausgereift (Scheduling, Bearbeitung von Recordings, Steuerung UI Element Erkennung)

www.bbv.ch

Schlusswort

Agil Software entwickeln – und testen…

Do it – have fun!

www.bbv.ch

???

www.bbv.ch

Danke! Urs Müller [email protected] www.bbv.ch 28.04.2011

www.bbv.ch