COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
CHRISTIAN HASSA, TECHTALK
[email protected], @CHRISHASSA
Swiss Testing Day Zürich, 13. März 2013
Testen in agilen ProjektenWettlauf mit Entwicklung oder gemeinsames Ziel?
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
4
Herausforderungen
•Was tun zu Projekt- und Sprintbeginn?•Wann wird das Sprintergebnis getestet?• Regressionstests?
5
Erfolgsrezepte
• Cross-funktionale Teams• Testautomatisierung• Spezifikation mit Beispielen
5
COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
Cross-funktionale Teams
Mix aus RollenSchnelles Feedback
7
Wasserfall im Sprint
Planung
Analyse
Design
Implement.
Test
Deploy
Planung
Analyse
Design
Implement.
Planung
Analyse
Design
Implement.
Sprint 1 Sprint 2 Sprint 3
Test
Deploy
Test
DeployKonflikt
Die “eigentliche” Iterationsdauer
…
8
Cross-funktionale Arbeit
Sprint 1 Sprint 2 Sprint 3
Kurze Iteration
US4
Plan
Implement & autom. test
US5
Plan
Implement & autom. test
US2
Plan
Implement & autom. test
US3
Plan
Implement & autom. test
US6
Plan
Implement & autom. test
US1
Plan
Implement & autom. test
US7
Plan
Implement & autom. test
US8
Plan
Implement & autom. test
US9
Plan
Implement & autom. test
Explo
ratory Test
Spezifikation und Test
Mitwirkung DefinitionAkzeptanzkriterien
ZusammenarbeitAutomatisierung
Fehler vermeiden anstattnur Fehler zu finden!
Erweiterung“Test Cases” +
Ziele Explor. Test
LimitierungWIP
gemein-same
manuelleTestaus-führung
Retrospektive:OptimierungZusammenarbeit
9
Regression
If something
hurts,do it
more
often!(frequency reduces difficulty)
Test-auto-
matisierung
10
Testautomatisierung wird teuer,wenn …
• man versucht,
manuelle Tests zu
automatisieren
• Tests durch die
Automatisierung
unlesbar werden
• man nach Abschluss
der Entwicklung
automatisiert
Struktur
Lesbarkeit
Zeitpunkt
11
StrukturManueller Test
Überprüft Mehrere Featuresin Kombination
Struktur ACT-ASSERT-ACT-ASSERT-ACT-ASSERT-…
Abhängige FeaturesLanger Testpfad:änderungsanfälligUrsache/Wirkungschwer zu korrelieren
Automat. Check
Isolierter Aspekteines Features
ARRANGE –ACT –ASSERT
Unabhängige FeaturesKurzer Testpfad:robust f. ÄnderungenUrsache/Wirkungleichter zu korrelieren
12
Testautomatisierungspyramide
User-journeys
Akzeptanz-kriterien
Units
ExplorativesTesten
nach Mike Cohn
viele
wenige
schwieriger
einfacher
Automatisierbarkeit
13
// Go to web page 'http://localhost:40001/' using new browser instanceBrowserWindow localhostBrowser = BrowserWindow.Launch(
new System.Uri(this.RecordedMethod1Params.Url));
// Click 'Register found item' linkMouse.Click(uIFundstückerfassenHyperlink, new Point(56, 9));
// Click 'Save' buttonMouse.Click(uISpeichernButton, new Point(44, 14));
int fundNr1 = int.Parse(uIFundNr127Pane.InnerText.Substring(9));
// Click 'Register found item' linkMouse.Click(uIFundstückerfassenHyperlink, new Point(63, 7));
// Click 'Save' buttonMouse.Click(uISpeichernButton, new Point(34, 11));
int fundNr2 = int.Parse(uIFundNr128Pane.InnerText.Substring(9));
Assert.IsTrue(fundNr1 + 1 == fundNr2);
// Click 'Close' buttonMouse.Click(uICloseButton, new Point(26, 11));
Lesbarkeit
14
Ein lesbarer TestfallSzenario: 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
15
Zeitpunkt des Tests
Akzeptanzkriterien(ATDD, BDD)
Unit Tests(TDD)
Anwendersicht
Technische Sicht
Explorative Tests Workflow Tests
Performance, Skalierbarkeit, Sicherheit, …
Def
init
ion
de
s P
rod
ukt
sK
ritik am P
rod
ukt
Neue Dimension: Definition des Produkts!Synergie: Spezifikation für Anforderungen und Test!
Agile Testing Quadrants, Brian Marick
18
Besprechung von Akzeptanzkriterien …
public void TestInitialOrderDiscount()
{
Customer newCustomer = new Customer();
Order newOrder = new Order(newCustomer);
newOrder.AddBook(
Catalog.Find(“ISBN-0955683610”)
);
Assert.Equals(33.75,
newOrder.Subtotal);
}
Register as “bart_bookworm”Go to “/catalog/search”Enter “ISBN-0955683610”Click “Search”Click “Add to Cart”Click “View Cart”Verify “Subtotal” is “$33.75”
Wir wollen neue Benutzer ermutigen, etwas zu bestellen. Daher bieten wir 10% Rabatt für die erste Bestellung eines Kunden an.
Originalidee Illustration: George Dinwiddiehttp://blog.gdinwiddie.com
19
Spezifikation mit Beispielen
Beispiele …• machen abstrakte
Beschreibungen besserverständlich
• werden normalerweise nichtformalisiert ausgetauscht/ dokumentiert Brian Marick
Beispiele Tests
Anforderungen
bestehen aus
beschreiben verifizierenErfüllung von
20
Besprechung von Akzeptanzkriterien …
public void TestInitialOrderDiscount()
{
Customer newCustomer = new Customer();
Order newOrder = new Order(newCustomer);
newOrder.AddBook(
Catalog.Find(“ISBN-0955683610”)
);
Assert.Equals(33.75,
newOrder.Subtotal);
}
Register as “bart_bookworm”Go to “/catalog/search”Enter “ISBN-0955683610”Click “Search”Click “Add to Cart”Click “View Cart”Verify “Subtotal” is “$33.75”
Wir wollen neue Benutzer ermutigen, etwas zu bestellen. Daher bieten wir 10% Rabatt für die erste Bestellung eines Kunden an.
Originalidee Illustration: George Dinwiddiehttp://blog.gdinwiddie.com
21
… 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 Dinwiddiehttp://blog.gdinwiddie.com
22
Aufdeckung impliziter Erwartungen
Eigentlich stimmt das nicht ganz:Bücher im Angebot sollen davon ausgenommen werden.
Originalidee Illustration: George Dinwiddiehttp://blog.gdinwiddie.com
23
Zusammenarbeit: 3 Amigos
“HappyPath”
TechnischeMachbarkeit
Ausnahmen, Grenzfälle
Originalidee Illustration: George Dinwiddiehttp://blog.gdinwiddie.com
24
Abstrakte Akzeptanzkriterien
Als Webshop Besucherwill ich Bücher in einen Warenkorb legenweil 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
25
Beispiele für Akzeptanzkriterien
Als Webshop Besucherwill ich Bücher in einen Warenkorb legenweil 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
26
Als Webshop Besucherwill ich Bücher in einen Warenkorb legenweil ich mehrere Bücher auf einmal bezahlen können will.
Bücher können dem Warenkorb hinzugefügt werden
Beispiele für Akzeptanzkriterien
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
Das gleiche Buch kann mehrmals hinzugefügt werden
27
Struktur der Beispiele
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
Titel: Beschreibt Intention/abstraktes Akzeptanzkriterium
Arrange: Kontext, Zustand des Systems vor Ausführung
Act: Ausführung des Features
Assert: Prüfung beobachtbares Verhalten
Und eine Warnung wird ausgegeben: “Gleiches Buch hinzugefügt”
Triple-Aconstraint“Checks”
VerkettungvonSchritten
Das gleiche Buch kann mehrmals hinzugefügt werden
28
Fachlich lesbare Automatisierung
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
System
„Step Definitions“ binden einzelne Schrittean eine automatisierbare Schnittstelle der Applikation
AutomatisierbareSchnittstelle
UIAutomatisierung
Automatisierung muss nicht unbedingt über das UI erfolgen.
Unterstützung der Automatisierbarkeit mit der Entwicklung.
29
Manuelles Testen ist immer notwendig!
Userjourneys
Akzeptanz-kriterien
Units
ExplorativesTesten
Source: Mike Cohn
viele
wenige
schwieriger
einfacher
Automatisierbarkeit
ManuellePrüfungwennUser StoryDone
Hauptpfadedurch Applikation
Nicht entdeckteAkzeptanzkriterien
Keine/(wenige)manuelleRegressions-checks
Wenige Pfadesind ausreichen
Mehr Zeit fürExploration
30
Fallbeispiel: Aufwand vs. Nutzen
• Individualentwicklung: Finanzdienstleistungsbereich• Testaufwand klassisches Vorgehen: 15% des Gesamtaufwands• Einführung agiles Vorgehen: Auswirkung auf Anteil Testaufwand
Projekt GesamtaufwandProjekt in PT
TestaufwandAnteil
Agiles Projekt mit manuellen Test
~200 35%
Agiles Projektmit Testautomatisierung
~600 19%
31
Exploratives Testen
Design Ausführung Entdeckung
Simultan in einer time-boxed Sitzung
• Ziel: Entdeckung von impliziten Annahmen, neue Akzeptanzkriterien, unerwartetes Verhalten
• Testcharta mit priorisierten Zieldefinitionenfür unterschiedliche Explorative Testing Sitzungen
Lernen
32
Beispiel: ET-Sitzungsdefinitionen
Bereich der Applikation:Feature, Modul, Workflow, ...
Ressourcen:Werkzeug, Konfiguration, Datensets,Technik, abhängiges Feature, …
Explorationsziel:Inkonsistenzen, Unsicherheiten,RisikenVerletzung von: spezifizierten ACs,Geschäftsregeln,“Menschenverstand”,Nicht-funktionale Anforderungen,Cross-Cutting Concerns, …
Quelle Template: Elisabeth Hendrickson
33
Nie wieder Bugs?
Verletzte dokumentierteAnnahmen
Vergessene dokumentierteAnnahmen
Vergessene impliziteAnnahmen
Neue Annahmen aufgrunddes Ergebnisses
UnerwartetesFehlverhalten
manuelleExploration
automatischeRegression
Root Cause Analysevon Bugs
Definition of Done
Nicht funktionaleAnforderungen
Cross-cuttingConcerns
Eindrücke ausder Planung
RisikoanalyseSource Code
TeamKommunikation
Quellen für möglicheExplorationsziele
35
Werkzeuge
User-journeys
Akzeptanz-kriterien
Units
ExplorativesTesten
Test Manager 2010Virtual Lab ManagementCodedUI
CodedUI, Selenium, …
MS-Test, NUnit, …
Fachlich lesbare Test:.NET, Java, Ruby, JavaScript, PHP, C++
38
Literatur
Elisabeth HendricksonExplore IT!
Gojko AdzicSpecification byExample
Lisa CrispinJanet GregoryAgile Testing
39
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
COPYRIGHT, TECHTALK - WWW.TECHTALK.CH
Nutzen Sie die Chancenagiler Testmethodik!
KONTAKT UND FRAGEN
Christian Hassa
@chrishassa
Top Related