Agiles Testen (German)

2.195 Aufrufe

Veröffentlicht am

Testen in agilen Projekten, Swiss Testing Day Zürich 2013

Agile Projekte verursachen massive Probleme im klassischen Testvorgehen: Detailspezifikationen sind erst (wenn überhaupt) kurz vor der Implementierung verfügbar und der Test soll gleichzeitig mit der Entwicklung am Ende jeder Iteration abgeschlossen sein. Bei Iterationslängen von wenigen Wochen verursacht das beträchtlichen Mehraufwand für den Test, der sich noch dazu am Ende der Iteration konzentriert, wodurch das Ziel eines voll getesteten Systems am Ende jeder Iteration oft nicht erreicht werden kann.
Der Vortrag stellt drei wichtige Erfolgsrezepte für Testen in agilen Projekten vor (1. Multifunktionale Teams, 2. Testautomatisierung und 3. Spezifikation mit Beispielen) und zeigt, welche Änderungen notwendig sind, damit Test und Entwicklung effizient in agilen Projekten zusammenarbeiten. Neben der Vorstellung von wichtigen Konzepten für agiles Testen (agile Testquadranten, Testautomatisierungspyramide und Specification-By-Example) zeigt der Vortrag auch, wie diese Methoden mit Werkzeugen unterstützt werden können, und berichtet von deren praktischer Anwendung in unterschiedlichen Projekten.

Video: http://www.youtube.com/watch?v=LL2kOToKUF0

0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.195
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
37
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Agiles Testen (German)

  1. 1. Testen in agilen ProjektenWettlauf mit Entwicklung odergemeinsames Ziel?CHRISTIAN HASSA, TECHTALKCH@TECHTALK.CH, @CHRISHASSASwiss Testing Day Zürich, 13. März 2013 COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
  2. 2. TechTalk auf einen Blick• Agile Software Entwicklung• Beratung und Umsetzung (Nearshoring)• Standorte: Zürich, Wien, Budapest• Ca. 50 Mitarbeiter• Gegründet: 1993 TechTalk office, Vienna/Austria COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
  3. 3. Herausforderungen• Was tun zu Projekt- und Sprintbeginn?• Wann wird das Sprintergebnis getestet?• Regressionstests?4
  4. 4. Erfolgsrezepte • Cross-funktionale Teams • Testautomatisierung • Spezifikation mit Beispielen5 5
  5. 5. Cross-funktionale TeamsMix aus RollenSchnelles Feedback COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
  6. 6. Wasserfall im Sprint Planung Planung Planung Analyse Analyse Analyse … Design Design Design Implement. Implement. Implement. Test Test Test Konflikt Deploy Deploy Deploy Sprint 1 Sprint 2 Sprint 3 Die “eigentliche” Iterationsdauer7
  7. 7. Cross-funktionale ArbeitLimitierung Erweiterung Mitwirkung Definition Zusammenarbeit WIP “Test Cases” + Akzeptanzkriterien Automatisierung US1 Ziele Explor. Test Plan Implement & US4 US7 Exploratory Test autom. test US5 US8gemein- Plan Plan US6 Plan US9 Plan same Implement & Plan Implement & Plan US2 Implement & Implement &manuelle US3 autom. test autom. testTestaus- Plan autom. test & Implement autom. test & Implement Plan autom. testführung Implement & autom. test autom. test & Implement autom. test Spezifikation und Test Sprint 1 Sprint 2 Sprint 3 Kurze Iteration Retrospektive: Fehler vermeiden anstatt Optimierung nur Fehler zu finden! Zusammenarbeit 8
  8. 8. Regression If something hurts, Test- do it auto- more matisierung often!(frequency reduces difficulty)9
  9. 9. Testautomatisierung wird teuer,wenn … • man versucht, manuelle Tests zu Struktur automatisieren • Tests durch die Automatisierung Lesbarkeit unlesbar werden • man nach Abschluss der Entwicklung Zeitpunkt automatisiert10
  10. 10. Struktur Manueller Test Automat. Check Überprüft Mehrere Features Isolierter Aspekt in Kombination eines Features Struktur ACT-ASSERT- ARRANGE – ACT-ASSERT- ACT – ACT-ASSERT- ASSERT … Abhängige Features Unabhängige Features Langer Testpfad: Kurzer Testpfad: änderungsanfällig robust f. Änderungen Ursache/Wirkung Ursache/Wirkung schwer zu korrelieren leichter zu korrelieren11
  11. 11. Testautomatisierungspyramide wenige Exploratives schwieriger Testen Automatisierbarkeit User- journeys Akzeptanz- kriterien Units einfacher viele12 nach Mike Cohn
  12. 12. Lesbarkeit // Go to web page http://localhost:40001/ using new browser instance BrowserWindow localhostBrowser = BrowserWindow.Launch( new System.Uri(this.RecordedMethod1Params.Url)); // Click Register found item link Mouse.Click(uIFundstückerfassenHyperlink, new Point(56, 9)); // Click Save button Mouse.Click(uISpeichernButton, new Point(44, 14)); int fundNr1 = int.Parse(uIFundNr127Pane.InnerText.Substring(9)); // Click Register found item link Mouse.Click(uIFundstückerfassenHyperlink, new Point(63, 7)); // Click Save button Mouse.Click(uISpeichernButton, new Point(34, 11)); int fundNr2 = int.Parse(uIFundNr128Pane.InnerText.Substring(9)); Assert.IsTrue(fundNr1 + 1 == fundNr2); // Click Close button Mouse.Click(uICloseButton, new Point(26, 11));13
  13. 13. Ein lesbarer TestfallSzenario: Ein neues Fundstück bekommt dienächste Fundnummer des laufenden JahresAngenommen das letzte Fundstück deslaufenden Jahres hatte die Fundnummer 145Wenn ich ein neues Fundstück erfasseDann hat das letzte Fundstück des laufendenJahres die Fundnummer 14614
  14. 14. Zeitpunkt des Tests Anwendersicht Definition des Produkts Kritik am Produkt Akzeptanzkriterien Explorative Tests (ATDD, BDD) Workflow Tests Unit Tests Performance, Skalierbarkeit, (TDD) Sicherheit, … Technische Sicht Agile Testing Quadrants, Brian Marick Neue Dimension: Definition des Produkts! Synergie: Spezifikation für Anforderungen und Test!15
  15. 15. Besprechung von Akzeptanzkriterien … Wir wollen neue Benutzer ermutigen, etwas zu bestellen. Daher bieten wir 10% Rabatt für die erste Bestellung eines Kunden an. public void TestInitialOrderDiscount() Register as “bart_bookworm” { Go to “/catalog/search” Customer newCustomer = new Customer(); Enter “ISBN-0955683610” Order newOrder = new Order(newCustomer); Click “Search” newOrder.AddBook( Catalog.Find(“ISBN-0955683610”) Click “Add to Cart” ); Click “View Cart” Assert.Equals(33.75, Verify “Subtotal” is “$33.75” newOrder.Subtotal); } Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com18
  16. 16. Spezifikation mit Beispielen Beispiele … • machen abstrakte Beschreibungen besser verständlich • werden normalerweise nicht formalisiert ausgetauscht/ dokumentiert Brian Marick bestehen aus Beispiele Tests beschreiben verifizieren Erfüllung von Anforderungen19
  17. 17. Besprechung von Akzeptanzkriterien … Wir wollen neue Benutzer ermutigen, etwas zu bestellen. Daher bieten wir 10% Rabatt für die erste Bestellung eines Kunden an. public void TestInitialOrderDiscount() Register as “bart_bookworm” { Go to “/catalog/search” Customer newCustomer = new Customer(); Enter “ISBN-0955683610” Order newOrder = new Order(newCustomer); Click “Search” newOrder.AddBook( Catalog.Find(“ISBN-0955683610”) Click “Add to Cart” ); Click “View Cart” Assert.Equals(33.75, Verify “Subtotal” is “$33.75” newOrder.Subtotal); } Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com20
  18. 18. … illustriert mit formalisierten Beispielen Angenommen der Benutzer hat noch keine Bestellung Wenn der Benutzer ein Buch zum Preis von EUR 37,50 in den Einkaufwagen legt Dann zeigt der Einkaufswagen eine Zwischensumme von EUR 33,75. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com21
  19. 19. Aufdeckung impliziter Erwartungen Eigentlich stimmt das nicht ganz: Bücher im Angebot sollen davon ausgenommen werden. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com22
  20. 20. Zusammenarbeit: 3 Amigos Ausnahmen, “Happy Technische Grenzfälle Path” Machbarkeit Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com23
  21. 21. Abstrakte Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Bücher können aus dem Warenkorb entfernt werden Der Warenkorb ist zu Beginn leer Das gleiche Buch kann mehrmals hinzugefügt werden24
  22. 22. Beispiele für Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Angenommen ich habe einen leeren Warenkorb Wenn ich das Buch “Harry Potter” in den Warenkorb lege Dann sollte mein Warenkorb 1 Exemplar von “Harry Potter” enthalten25
  23. 23. Beispiele für Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Das gleiche Buch kann mehrmals hinzugefügt werden Angenommen mein Warenkorb enthält 1 Exemplar von “Harry Potter” Wenn ich das Buch “Harry Potter” in den Warenkorb lege Dann soll mein Warenkorb 2 Exemplare von “Harry Potter” enthalten26
  24. 24. Struktur der Beispiele Titel: Beschreibt Intention/abstraktes Akzeptanzkriterium Arrange: Kontext, Zustand des Systems vor Ausführung Triple-A Act: Ausführung des Features constraint “Checks” Assert: Prüfung beobachtbares Verhalten Das gleiche Buch kann mehrmals hinzugefügt werden Angenommen mein Warenkorb enthält 1 Exemplar von “Harry Potter” Wenn ich das Buch “Harry Potter” in den Warenkorb lege Dann soll mein Warenkorb 2 Exemplare von “Harry Potter” enthalten Und eine Warnung wird ausgegeben: “Gleiches Buch hinzugefügt” Verkettung von Schritten27
  25. 25. Fachlich lesbare Automatisierung „Step Definitions“ binden einzelne Schritte an eine automatisierbare Schnittstelle der Applikation Automatisierung muss nicht unbedingt über das UI erfolgen. Unterstützung der Automatisierbarkeit mit der Entwicklung. Angenommen mein Warenkorb enthält 1 Exemplar von “Harry Potter” Wenn ich das Buch “Harry Potter” in den Warenkorb lege Dann sollte mein Warenkorb 2 Exemplare von “Harry Potter” enthalten UI System Automatisierung Automatisierbare Schnittstelle28
  26. 26. Manuelles Testen ist immer notwendig! wenige Nicht entdeckte Akzeptanzkriterien Mehr Zeit für Exploratives Exploration schwieriger Testen Hauptpfade durch Applikation Wenige Pfade Automatisierbarkeit User sind ausreichen journeys Manuelle Keine/(wenige) Prüfung manuelle wenn Akzeptanz- Regressions- User Story Done kriterien checks Units einfacher viele29 Source: Mike Cohn
  27. 27. Fallbeispiel: Aufwand vs. Nutzen• Individualentwicklung: Finanzdienstleistungsbereich• Testaufwand klassisches Vorgehen: 15% des Gesamtaufwands• Einführung agiles Vorgehen: Auswirkung auf Anteil Testaufwand Projekt Gesamtaufwand Testaufwand Projekt in PT Anteil Agiles Projekt mit ~200 35% manuellen Test Agiles Projekt ~600 19% mit Testautomatisierung30
  28. 28. Exploratives Testen Lernen Design Ausführung Entdeckung Simultan in einer time-boxed Sitzung• Ziel: Entdeckung von impliziten Annahmen, neue Akzeptanzkriterien, unerwartetes Verhalten• Testcharta mit priorisierten Zieldefinitionen für unterschiedliche Explorative Testing Sitzungen31
  29. 29. Beispiel: ET-Sitzungsdefinitionen Bereich der Applikation: Feature, Modul, Workflow, ... Ressourcen: Werkzeug, Konfiguration, Datensets, Technik, abhängiges Feature, … Explorationsziel: Inkonsistenzen, Unsicherheiten, Risiken Verletzung von: spezifizierten ACs, Geschäftsregeln, “Menschenverstand”, Nicht-funktionale Anforderungen, Cross-Cutting Concerns, …32 Quelle Template: Elisabeth Hendrickson
  30. 30. Nie wieder Bugs? Quellen für mögliche Explorationsziele manuelle Unerwartetes Exploration Risikoanalyse Fehlverhalten Source Code Neue Annahmen aufgrund Eindrücke aus Team der Planung Kommunikation des Ergebnisses Root Cause Analyse Vergessene implizite von Bugs Annahmen Cross-cutting Nicht funktionale Concerns Anforderungen Vergessene dokumentierte Annahmen Definition of Done Verletzte dokumentierte automatische Annahmen Regression33
  31. 31. Werkzeuge Exploratives Testen Test Manager 2010 Virtual Lab Management CodedUI User- journeys Fachlich lesbare Test: .NET, Java, Ruby, JavaScript, PHP, C++ Akzeptanz- kriterien CodedUI, Selenium, … MS-Test, NUnit, … Units35
  32. 32. Literatur Elisabeth Hendrickson Gojko Adzic Lisa Crispin Explore IT! Specification by Janet Gregory Example Agile Testing38
  33. 33. Erfolgsrezepte Zusammenfassung• Crossfunktionale Teams • Mix aus Rollen: schnelles Feedback und Fehlerbehebung • Gemeinsames Ziel: Fertig getestetes Produkt am Sprintende • Exploratives Testen: Testcharta mit priorisierten Zielen• Testautomatisierung (Struktur, Lesbarkeit, Zeitpunkt) • Verringerung der Regressionskosten • Automatisierbarkeit unterstützt manuelles Testen, Entwicklung und Design der Applikation • Richtiger Mix aus manuellen und automatisierten Tests• Spezifikation mit Beispielen • Spezifikationstechnik für gemeinsames Verständnis der Details • Fachlich lesbare Tests als Spezifikation • „Lebende Dokumentation“ des Systems39
  34. 34. Nutzen Sie die Chancenagiler Testmethodik!KONTAKT UND FRAGEN Christian Hassa christian.hassa@techtalk.ch @chrishassa COPYRIGHT, TECHTALK - WWW.TECHTALK.CH

×