SlideShare a Scribd company logo
1 of 34
Download to read offline
Testen in agilen Projekten
Wettlauf mit Entwicklung oder
gemeinsames Ziel?
CHRISTIAN HASSA, TECHTALK
CH@TECHTALK.CH, @CHRISHASSA




Swiss 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 Beispielen




5   5
Cross-funktionale Teams




Mix aus Rollen
Schnelles 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” Iterationsdauer


7
Cross-funktionale Arbeit
Limitierung                                                       Erweiterung
                               Mitwirkung Definition                                  Zusammenarbeit
   WIP                                                           “Test Cases” +
                                Akzeptanzkriterien                                    Automatisierung
                  US1                                           Ziele Explor. Test
                  Plan
              Implement &                                   US4                      US7

                                 Exploratory Test
               autom. test                                    US5                      US8
gemein-                                                     Plan                     Plan
                                                                US6
                                                              Plan                       US9
                                                                                       Plan
 same                                                  Implement &
                                                                Plan            Implement &
                                                                                         Plan
                  US2                                    Implement &              Implement &
manuelle            US3                                 autom. test              autom. test
Testaus-          Plan                                    autom. test &
                                                           Implement               autom. test &
                                                                                    Implement
                    Plan                                                             autom. test
fü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
              automatisiert
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 korrelieren
11
Testautomatisierungspyramide
                        wenige

                      Exploratives   schwieriger
                        Testen




                                      Automatisierbarkeit
                          User-
                        journeys


                      Akzeptanz-
                       kriterien


                         Units
                                     einfacher
                          viele
12
     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 Testfall
Szenario: Ein neues Fundstück bekommt die
nächste Fundnummer des laufenden Jahres

Angenommen das letzte Fundstück des
laufenden Jahres hatte die Fundnummer 145

Wenn ich ein neues Fundstück erfasse

Dann hat das letzte Fundstück des laufenden
Jahres die Fundnummer 146

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
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.com
18
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
                           Anforderungen

19
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.com
20
… 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.com
21
Aufdeckung impliziter Erwartungen
     Eigentlich stimmt das nicht ganz:
     Bücher im Angebot sollen davon
     ausgenommen werden.




        Originalidee Illustration: George Dinwiddie
        http://blog.gdinwiddie.com
22
Zusammenarbeit: 3 Amigos
                                                     Ausnahmen,
     “Happy                       Technische          Grenzfälle
      Path”                       Machbarkeit




       Originalidee Illustration: George Dinwiddie
       http://blog.gdinwiddie.com
23
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 werden




24
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” enthalten




25
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” enthalten




26
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
                                                                         Schritten

27
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
                                                                  Schnittstelle

28
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
                                viele
29
        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
     Testautomatisierung

30
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 Sitzungen
31
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                                               Regression

33
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, …
            Units

35
Literatur




     Elisabeth Hendrickson   Gojko Adzic        Lisa Crispin
     Explore IT!             Specification by   Janet Gregory
                             Example            Agile Testing




38
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 Systems


39
Nutzen Sie die Chancen
agiler Testmethodik!
KONTAKT UND FRAGEN
   Christian Hassa
    christian.hassa@techtalk.ch
    @chrishassa




                                  COPYRIGHT, TECHTALK - WWW.TECHTALK.CH

More Related Content

What's hot

Making the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingMaking the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingSauce Labs
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeIndicThreads
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
sample-test-plan-template.pdf
sample-test-plan-template.pdfsample-test-plan-template.pdf
sample-test-plan-template.pdfempite
 
(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플SangIn Choung
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)Terry Cho
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)SangIn Choung
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefitsnazeer pasha
 

What's hot (20)

Agile QA Process
Agile QA ProcessAgile QA Process
Agile QA Process
 
Making the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingMaking the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated Testing
 
Istqb lesson 2
Istqb lesson 2Istqb lesson 2
Istqb lesson 2
 
Test Planning
Test PlanningTest Planning
Test Planning
 
Istqb lesson 1
Istqb lesson 1Istqb lesson 1
Istqb lesson 1
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
sample-test-plan-template.pdf
sample-test-plan-template.pdfsample-test-plan-template.pdf
sample-test-plan-template.pdf
 
(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플
 
Istqb ctal tm
Istqb ctal tmIstqb ctal tm
Istqb ctal tm
 
ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)ALM (Application Lifecycle Management)
ALM (Application Lifecycle Management)
 
Junit
JunitJunit
Junit
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
 
Istqb lesson 5
Istqb lesson 5Istqb lesson 5
Istqb lesson 5
 
automation testing benefits
automation testing benefitsautomation testing benefits
automation testing benefits
 
Agile testing
Agile testingAgile testing
Agile testing
 
Módulo 6. Agile Testing
Módulo 6. Agile TestingMódulo 6. Agile Testing
Módulo 6. Agile Testing
 
Istqb lesson 6
Istqb lesson 6Istqb lesson 6
Istqb lesson 6
 

Viewers also liked

Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...
Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...
Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...Ayelt Komus
 
Agile Projectmanagement
Agile ProjectmanagementAgile Projectmanagement
Agile ProjectmanagementManfred Rieder
 
Agiles Projektmanagement: Kanban vs. Scrum
Agiles Projektmanagement: Kanban vs. ScrumAgiles Projektmanagement: Kanban vs. Scrum
Agiles Projektmanagement: Kanban vs. ScrumTWT
 
Einführung zur Projektmanagement mit Scrum
Einführung zur Projektmanagement mit Scrum Einführung zur Projektmanagement mit Scrum
Einführung zur Projektmanagement mit Scrum Pierre E. NEIS
 

Viewers also liked (6)

Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...
Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...
Expertentagung Agiles Projektmanagement 2015: Projektmanagement neu gedacht: ...
 
Agile Projectmanagement
Agile ProjectmanagementAgile Projectmanagement
Agile Projectmanagement
 
Agiles Projektmanagement: Kanban vs. Scrum
Agiles Projektmanagement: Kanban vs. ScrumAgiles Projektmanagement: Kanban vs. Scrum
Agiles Projektmanagement: Kanban vs. Scrum
 
Einführung zur Projektmanagement mit Scrum
Einführung zur Projektmanagement mit Scrum Einführung zur Projektmanagement mit Scrum
Einführung zur Projektmanagement mit Scrum
 
Scrum In 15 Minutes
Scrum In 15 MinutesScrum In 15 Minutes
Scrum In 15 Minutes
 
Die richtige Projektmethode
Die richtige ProjektmethodeDie richtige Projektmethode
Die richtige Projektmethode
 

Similar to Agiles Testen (German)

Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Digicomp Academy AG
 
Erfolgsfaktoren für modellbasiertes Testen
Erfolgsfaktoren für modellbasiertes TestenErfolgsfaktoren für modellbasiertes Testen
Erfolgsfaktoren für modellbasiertes Testentrossner
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDSwissQ Consulting AG
 
Automatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaAutomatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaGFU Cyrus AG
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Nico Orschel
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAPCadaxo GmbH
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP UnitsCadaxo GmbH
 
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...Intelliact AG
 
DevOps - Programmierst Du noch oder betreibst Du schon?
DevOps - Programmierst Du noch oder betreibst Du schon?DevOps - Programmierst Du noch oder betreibst Du schon?
DevOps - Programmierst Du noch oder betreibst Du schon?Jean-Pierre König
 
iOS Testautomation bei mobile.de
iOS Testautomation bei mobile.deiOS Testautomation bei mobile.de
iOS Testautomation bei mobile.deHolger Hammel
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftChristian Drumm
 
Mobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentMobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentTestObject
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascriptjoergreichert
 
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Leiter AK Software - Dr. Schönefeld
 
SE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen ProjektenSE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen ProjektenPeter Haberl
 
Mobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentMobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentShlwagner
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
 

Similar to Agiles Testen (German) (20)

Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
 
Erfolgsfaktoren für modellbasiertes Testen
Erfolgsfaktoren für modellbasiertes TestenErfolgsfaktoren für modellbasiertes Testen
Erfolgsfaktoren für modellbasiertes Testen
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 
Automatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaAutomatisierter Software-Test unter Java
Automatisierter Software-Test unter Java
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012Test Management mit Visual Studio 2012
Test Management mit Visual Studio 2012
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAP
 
Scrum Rocks, Testing Sucks?! (de)
Scrum Rocks, Testing Sucks?! (de)Scrum Rocks, Testing Sucks?! (de)
Scrum Rocks, Testing Sucks?! (de)
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
 
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
 
DevOps - Programmierst Du noch oder betreibst Du schon?
DevOps - Programmierst Du noch oder betreibst Du schon?DevOps - Programmierst Du noch oder betreibst Du schon?
DevOps - Programmierst Du noch oder betreibst Du schon?
 
iOS Testautomation bei mobile.de
iOS Testautomation bei mobile.deiOS Testautomation bei mobile.de
iOS Testautomation bei mobile.de
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 
Mobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentMobile App Testing In Agile Environment
Mobile App Testing In Agile Environment
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
 
SE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen ProjektenSE2013 ANECON Testen in agilen Projekten
SE2013 ANECON Testen in agilen Projekten
 
Mobile App Testing In Agile Environment
Mobile App Testing In Agile EnvironmentMobile App Testing In Agile Environment
Mobile App Testing In Agile Environment
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
 

More from Christian Hassa

Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Christian Hassa
 
Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Christian Hassa
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
Scrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingScrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingChristian Hassa
 
Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Christian Hassa
 
Impact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungImpact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungChristian Hassa
 
Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Christian Hassa
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Christian Hassa
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltChristian Hassa
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowChristian Hassa
 
Impact Maps and Story Maps: delivering what really matters
Impact Maps and Story Maps: delivering what really mattersImpact Maps and Story Maps: delivering what really matters
Impact Maps and Story Maps: delivering what really mattersChristian Hassa
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Impact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltImpact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltChristian Hassa
 
How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.Christian Hassa
 
Story Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernStory Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernChristian Hassa
 
Live it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileLive it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileChristian Hassa
 

More from Christian Hassa (20)

Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
 
Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
Scrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingScrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact Mapping
 
Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!
 
Impact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungImpact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile Entwicklung
 
Upcoming events 2017
Upcoming events 2017Upcoming events 2017
Upcoming events 2017
 
Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)
 
Impact Map Your Project
Impact Map Your ProjectImpact Map Your Project
Impact Map Your Project
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zählt
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlow
 
Agile Requirements
Agile RequirementsAgile Requirements
Agile Requirements
 
Impact Maps and Story Maps: delivering what really matters
Impact Maps and Story Maps: delivering what really mattersImpact Maps and Story Maps: delivering what really matters
Impact Maps and Story Maps: delivering what really matters
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Impact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltImpact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zählt
 
How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.
 
Story Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernStory Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG Bern
 
Live it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileLive it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into Agile
 

Agiles Testen (German)

  • 1. Testen in agilen Projekten Wettlauf mit Entwicklung oder gemeinsames Ziel? CHRISTIAN HASSA, TECHTALK CH@TECHTALK.CH, @CHRISHASSA Swiss Testing Day Zürich, 13. März 2013 COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
  • 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. Herausforderungen • Was tun zu Projekt- und Sprintbeginn? • Wann wird das Sprintergebnis getestet? • Regressionstests? 4
  • 4. Erfolgsrezepte • Cross-funktionale Teams • Testautomatisierung • Spezifikation mit Beispielen 5 5
  • 5. Cross-funktionale Teams Mix aus Rollen Schnelles Feedback COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
  • 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” Iterationsdauer 7
  • 7. Cross-funktionale Arbeit Limitierung Erweiterung Mitwirkung Definition Zusammenarbeit WIP “Test Cases” + Akzeptanzkriterien Automatisierung US1 Ziele Explor. Test Plan Implement & US4 US7 Exploratory Test autom. test US5 US8 gemein- Plan Plan US6 Plan US9 Plan same Implement & Plan Implement & Plan US2 Implement & Implement & manuelle US3 autom. test autom. test Testaus- Plan autom. test & Implement autom. test & Implement Plan autom. test fü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. Regression If something hurts, Test- do it auto- more matisierung often! (frequency reduces difficulty) 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 automatisiert 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 korrelieren 11
  • 11. Testautomatisierungspyramide wenige Exploratives schwieriger Testen Automatisierbarkeit User- journeys Akzeptanz- kriterien Units einfacher viele 12 nach Mike Cohn
  • 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. Ein lesbarer Testfall Szenario: Ein neues Fundstück bekommt die nächste Fundnummer des laufenden Jahres Angenommen das letzte Fundstück des laufenden Jahres hatte die Fundnummer 145 Wenn ich ein neues Fundstück erfasse Dann hat das letzte Fundstück des laufenden Jahres die Fundnummer 146 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. 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.com 18
  • 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 Anforderungen 19
  • 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.com 20
  • 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.com 21
  • 19. Aufdeckung impliziter Erwartungen Eigentlich stimmt das nicht ganz: Bücher im Angebot sollen davon ausgenommen werden. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com 22
  • 20. Zusammenarbeit: 3 Amigos Ausnahmen, “Happy Technische Grenzfälle Path” Machbarkeit Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com 23
  • 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 werden 24
  • 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” enthalten 25
  • 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” enthalten 26
  • 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 Schritten 27
  • 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 Schnittstelle 28
  • 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 viele 29 Source: Mike Cohn
  • 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 Testautomatisierung 30
  • 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 Sitzungen 31
  • 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. 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 Regression 33
  • 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, … Units 35
  • 32. Literatur Elisabeth Hendrickson Gojko Adzic Lisa Crispin Explore IT! Specification by Janet Gregory Example Agile Testing 38
  • 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 Systems 39
  • 34. Nutzen Sie die Chancen agiler Testmethodik! KONTAKT UND FRAGEN Christian Hassa christian.hassa@techtalk.ch @chrishassa COPYRIGHT, TECHTALK - WWW.TECHTALK.CH