• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Agiles Testen (German)
 

Agiles Testen (German)

on

  • 973 views

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

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

Statistics

Views

Total Views
973
Views on SlideShare
973
Embed Views
0

Actions

Likes
1
Downloads
14
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Agiles Testen (German) Agiles Testen (German) Presentation Transcript

    • 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
    • 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
    • Herausforderungen• Was tun zu Projekt- und Sprintbeginn?• Wann wird das Sprintergebnis getestet?• Regressionstests?4
    • Erfolgsrezepte • Cross-funktionale Teams • Testautomatisierung • Spezifikation mit Beispielen5 5
    • Cross-funktionale TeamsMix aus RollenSchnelles Feedback COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
    • 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
    • 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
    • Regression If something hurts, Test- do it auto- more matisierung often!(frequency reduces difficulty)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
    • 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
    • Testautomatisierungspyramide wenige Exploratives schwieriger Testen Automatisierbarkeit User- journeys Akzeptanz- kriterien Units einfacher viele12 nach Mike Cohn
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • … 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
    • Aufdeckung impliziter Erwartungen Eigentlich stimmt das nicht ganz: Bücher im Angebot sollen davon ausgenommen werden. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com22
    • Zusammenarbeit: 3 Amigos Ausnahmen, “Happy Technische Grenzfälle Path” Machbarkeit Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com23
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Literatur Elisabeth Hendrickson Gojko Adzic Lisa Crispin Explore IT! Specification by Janet Gregory Example Agile Testing38
    • 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
    • Nutzen Sie die Chancenagiler Testmethodik!KONTAKT UND FRAGEN Christian Hassa christian.hassa@techtalk.ch @chrishassa COPYRIGHT, TECHTALK - WWW.TECHTALK.CH