Test First yes we can - ASQF€¦ · © 2012 Experian Limited. All rights reserved. 1 Experian...
Transcript of Test First yes we can - ASQF€¦ · © 2012 Experian Limited. All rights reserved. 1 Experian...
-
1 © 2012 Experian Limited. All rights reserved. Experian Public.
Test First – yes we can !
ASQF Regionalgruppentreffen Agilität NRW Köln, MID GmbH 23.10. 2012 Ulrich Freyer-Hirtz
-
2 © 2012 Experian Limited. All rights reserved. Experian Public.
Agenda
Vorstellung Das Problem - Motivation Der Prozess Die Werkzeuge Diskussion
-
3 © 2012 Experian Limited. All rights reserved. Experian Public.
Vorstellung Ulrich Freyer-Hirtz
Dipl-.Ing. Elektrotechnik / Uni Duisburg Entwicklung / Product Management Embedded Systems / ZN GmbH
IT Berater Programmierung – Test / Valtech GmbH IT Berater QA / SQS AG
Team Lead QA / Experian Deutschland GmbH
-
4 © 2012 Experian Limited. All rights reserved. Experian Public.
Click to edit Master subtitle style
© 2012 Experian Limited. All rights reserved. Experian and the marks used herein are service marks or registered trademarks of Experian Limited. Other products and company names mentioned may be the trademarks of their respective owners. No part of this copyrighted work may be reproduced, modified, or distributed in any form or manner without prior written permission of Experian Limited. Experian Public.
Führende Lösungen in den Bereichen: Digitales Marketing, Zielgruppendaten und Datenmanagement
-
5 © 2012 Experian Limited. All rights reserved. Experian Public.
Experian Marketing Services Weltweit führende Lösungen im digitalen Marketing
● 19 Standorte in 13 Ländern ● > 1.300 Mitarbeiter weltweit ● > 80 Mitarbeiter in Deutschland ● Standorte: Düsseldorf, München ● Regelmäßige Veröffentlichung von
Studien und White Papern www.experian.de/wissenscenter
Experian Marketing Services Seit > 10 Jahren führender Anbieter am deutschen Markt Leistungsstarke E-Mail Marketing Technologie kombiniert mit strategischen Beratungsleistungen und Creative Services in den Bereichen Konzeption, Design und HTML Programmierung.
E-Mail Marketing
Kundenakquise und –ausbau via Facebook & Co. Social CRM zur Bereitstellung und Verknüpfung umfangreicher Zielgruppendaten und Microtargeted Ads auf Facebook.
Social Media Marketing
Zielgruppendaten und Datenmanagement Datenbereitstellung und –anreicherung mit der Konsumenten.-segmentierung Mosaic für On- und Offline-Kommunikation.
Targeting Services
www.experian.de/marketing-services
-
6 © 2012 Experian Limited. All rights reserved. Experian Public.
Vorstellung Team
Programmierer
Product Owner
QA / Tester
-
7 © 2012 Experian Limited. All rights reserved. Experian Public.
Arbeiten Sie Test First? Automatisieren Sie Tests, bevor der
Anwendungscode (vollständig) programmiert wurde?
Wenn nein, warum nicht? Geht nicht? Warum nicht?
-
8 © 2012 Experian Limited. All rights reserved. Experian Public.
Das Problem
Ich kann ohne laufende
Anwendung nicht Testen und
vor allem nicht automatisieren.
Also warte ich bis die Programmierer
mir etwas liefern.
-
9 © 2012 Experian Limited. All rights reserved. Experian Public.
Das Problem
Tester, du musst noch
warten bis ich fertig bin.
Ich bin aber fast fertig,
ich muss nur noch ...
-
10 © 2012 Experian Limited. All rights reserved. Experian Public.
Das Problem
Tester, du musst noch
warten bis ich fertig bin.
Ich bin aber fast fertig,
ich muss nur noch ...
Arrrgh!
!!! 90% Syndrom Alarm !!!
-
11 © 2012 Experian Limited. All rights reserved. Experian Public.
Agilist: Stop ! Einwand!!
Wie könnt ihr anfangen zu
entwickeln, wenn ihr nicht
wisst, wann ihr fertig seid,
also wie „fertig“ definiert
ist, und wann das Feature
akzeptiert wird ??
-
12 © 2012 Experian Limited. All rights reserved. Experian Public.
Tester: Stop ! Einwand!!
Testen ist nicht nur die
Ausführung von Tests.
Tests müssen
systematisch ermittelt
werden. Das kann man
auch ohne Code tun.
-
13 © 2012 Experian Limited. All rights reserved. Experian Public.
Dieser Vortrag:
Es ist sogar möglich
Automatisierungs Code zu
schreiben, bevor die
Anwendung da ist. Gegen
diese „ausführbaren
Spezifikationen“ wird dann
entwickelt.
-
14 © 2012 Experian Limited. All rights reserved. Experian Public.
Retrospektive: Idee 1
Wir führen vor Ende des
Sprints / der Iteration
eine Testphase ein. Dann
Stellen wir sicher,das am
Ende alles ausgeliefert
werden kann
-
15 © 2012 Experian Limited. All rights reserved. Experian Public.
Problem
Ich sitze am Anfang
des Sprints rum und
warte bis irgendwas
fertig ist.
Wenn ich fertig gecodet habe,
muss ich warten, bis die Sachen
Fertig getestet sind und habe
nichts sinnvolles zu tun.
-
16 © 2012 Experian Limited. All rights reserved. Experian Public.
Problem
Ich sitze am Anfang
des Sprints rum und
warte bis irgendwas
fertig ist.
Wenn ich fertig gecodet habe,
muss ich warten, bis die Sachen
Fertig getestet sind und habe
nichts sinnvolles zu tun.
Lean: Wartezeiten sind Verschwendung !!
-
17 © 2012 Experian Limited. All rights reserved. Experian Public.
Retrospektive: Idee 1
Ok, das hat nicht funktioniert.
Lass uns doch im folgenden Sprint testen,
was vorher implementiert wurde.
So sind alle immer ausgelastet. Dev n n+1 n+2
Test n n+1
-
18 © 2012 Experian Limited. All rights reserved. Experian Public.
Problem
Oh, Mann hier funktioniert
ja gar nichts. Muss ich das
Ticket wieder zurückgeben..
So werden wir nie fertig!
Kommt der wieder mit so
altem Kram an. Ich habe gerade
anderes zu tun.
Ich muss die aktuellen Stories
fertig stellen!
Und wann soll ich eigentlich die alten
Stories testen (Regression)?
-
19 © 2012 Experian Limited. All rights reserved. Experian Public.
Zusammenfassung: Testen als nachgelagerter Prozess ist immer eine schlechte Idee.
Die Trennung der Programmier- und Testprozesse führt zu: Verschwendung durch Leerlaufzeiten Verschwendung durch zu viele „Task-Switches“ Eine „wir“ und „die“ Mentalität (die Entwickler haben wieder Mist geliefert – die Tester nerven wieder mit Bugs). Dies führt zu Demotivation und Unproduktivität! Es muss vorab klar definiert sein, was entwickelt werden soll und wann es fertig ist. Testen, Spezifizieren und Entwickeln muss parallel in möglichst kleinen Schritten mit möglichst großer Kommunikationsbandbreite ausgeführt werden! Es besteht ein hoher Bedarf an Automatisierung, um bei den „Taktraten“ auch Regressionstests ausführen zu können.
-
20 © 2012 Experian Limited. All rights reserved. Experian Public.
Lean / Agile Sicht
Wie kannst Du anfangen zu entwickeln,
wenn Du nicht weißt,was gebaut werden soll?
Insbesondere was der potentielle Anwender will! Jede Story braucht Akzeptanzkriterien.
Man versteht die Story häufig erst,
wenn man mit ihr „rumspielt“.
Mach die Dinge ganz -
Eins nach dem Anderen!
-
21 © 2012 Experian Limited. All rights reserved. Experian Public.
Agil dreht die Welt
-
22 © 2012 Experian Limited. All rights reserved. Experian Public.
Was tun?
Iterativ inkrementelles Vorgehen
Interdisziplinäre Teams
Start mit Tests (Test first)
SelbstorganisierteTeams
Das gesamte Team ist für Qualität verantwortlich (Whole Team Approach)
Hoher Grad an Autoamtion
Dies führt zu nicht zu unterschätzenden Änderungen der: Prozesse Kultur Rollenbeschreibungen Hierarchien ...
-
23 © 2012 Experian Limited. All rights reserved. Experian Public.
Änderung: Scrum, ein (!) agiler Ansatz (http://de.wikipedia.org/wiki/Scrum)
-
24 © 2012 Experian Limited. All rights reserved. Experian Public.
Agile Praktiken (nicht nur Scrum)
Gesamtes Team (!):
Regelmässige Diskkussion der Anforderungen,bevor sie in den „Sprint Backlog“ gelangen.
Iterationsplanung mit Zusage der zu erledigenden Anforderungen durch das Team.
Iterationsplanung mit erstellen der konkreten Teilaufgaben inkl. Definition der Akzeptanzkriterien durch das gesamt Team und PO
Definition von Definitions/Level of Done, in denen definiert wird, wann Aufgaben erledigt sind und welche Qualitätskriterien erfüllt werden müssen.
Automatisierung, Automatisierung, Automatisierung
Demo Meeting, auf dem den Stakeholdern das Erreichte präsentiert wird und z.B. Akzeptanztests „vorgeführt“ werden.
-
25 © 2012 Experian Limited. All rights reserved. Experian Public.
Genug geredet – wie geht dat nun? - Übersicht -
Schätzmeeting → Alle lernen die Anforderung kennen, klären Fragen, schätzen den Aufwand und klären Akzeptanzkriterien.
Iterationsplanungsmeeting → Auswahl der Stories und Definition konkreter Aufgaben inklusive der Akzeptanztests. Identifizierung von notwendigen Vorbedingungen..
Sprint / Iteration
Gemeinsam - Spezifikation und Implementierung erster Gutfall - Testfall.
Parallel- Implementierung Code und Ermittlung weiterer Testfälle.
Interaktiv – Ermittlung und Automatisierung weiterer Testfälle und Kodierung zugehörigen Codes.
Abstimmung Applikationsverhaltens anhand der Testfälle mit dem PO.
Abnahme Story
Test aller implementierten Stories
Demo Meeting
Vorstellen der implementierten Stories für interessierte Stakeholder.
Übersicht der durchgeführten Tests.
Nachweis zu Regressionstests.
Offizielle Abnahme durch den PO
-
26 © 2012 Experian Limited. All rights reserved. Experian Public.
Beispiel Login – Schätzmeeting http://www.allaboutagile.com/user-story-example/
-
27 © 2012 Experian Limited. All rights reserved. Experian Public.
Beispiel Login – Schätzmeeting http://www.allaboutagile.com/user-story-example/
Ok, wir verstehen die Story und wissen, was zu tun ist. Die ist
nicht sehr komplex und aufwendig, also schätzen wir sie mit 3.
-
28 © 2012 Experian Limited. All rights reserved. Experian Public.
Iteration Planung. Die Login Story wurde vom Team in den Sprint genommen.
Die z.T. vorher aufgeschriebenen Akzeptanzkriterien werden noch mal analysiert und Testthemen definiert.
Test valides Login
Test alle Fehlerfälle Test „Remember me“
Welche Browser? Nach drei fehlerhaften Eingaben wird der User account gesperrt.
Test Ergebnis in max. 10 sec. „Forgot Passwort“ Storie ist nicht
Teil dieser Story! .....
-
29 © 2012 Experian Limited. All rights reserved. Experian Public.
Im Sprint. Start mit dem einfachen Gut-Fall „Valides Login“ - gemeinsam!
User = new User() . WithName(„[email protected]“)
.withPwd(„4711“)
LoginPage loginPage =driver.openUrl(„http://...“) OverviewPage overviewPage = loginPage.login(user)
overviewPage.checkSubscribercontent(user)
Anwendungscode
Test passed!
mailto:[email protected]
-
30 © 2012 Experian Limited. All rights reserved. Experian Public.
Die neuen Testfälle schlagen meist fehl. Der Programmierer erweitert den Code, bis die Tests „grün“ sind. Der Programmierer unterstützt den QA in Programmierfragen. PO steht für Fragen zur Verfügung, z.B. Feldergrößen müssen noch definiert werden. PO reviewed Testfälle.
Im Sprint. Start mit dem einfachen Gut-Fall „Valides Login“.
Testfall Ermittlung Mehr Testfälle automatisieren
Mehr Anwendungscode
-
31 © 2012 Experian Limited. All rights reserved. Experian Public.
Demo (Review) Meeting. Die realisierten Stories werden vorgeführt.
-
32 © 2012 Experian Limited. All rights reserved. Experian Public.
Vorteil
Wenig Taskwechsel, kein „Ticket Ping Pong“.
Klare Kommunikation von Fehlern durch die Tests.
Klarer Status des Fortschritts.
Klare Definition of Done: Wenn alle Tests „grün“ sind.
Miteinander statt gegeneinander.
Regressionstests, die nahezu ständig laufen.
Zielorientierte Arbeit – keine goldenen Klinken
-
33 © 2012 Experian Limited. All rights reserved. Experian Public.
Voraussetzungen
Rollen müssen definiert sein.
PO muss zur Verfügung stehen, und entscheiden können!
Interdisziplinäre Teams
Tester müssen sich auf Technik einlassen.
Programmierer müssen an den Sinn von Tests glauben.
-
34 © 2012 Experian Limited. All rights reserved. Experian Public.
Tools
FitNesse
Spock /Groovy
jBehave
Concordia
Cucumber
Jubula
Selenium
jUnit
TestNG
-
35 © 2012 Experian Limited. All rights reserved. Experian Public.
FitNesse
• Kombination aus Wiki und Treiber ermöglicht freies Schreiben der Tests!
-
36 © 2012 Experian Limited. All rights reserved. Experian Public.
Spock / Groovy Tests werden im Code formuliert und dann ausprogrammiert. Meistens in einer „Given-When-Then“ Struktur
Def „Test mit einem validen User“(){
Given: „Ein User mit Passwort “ Code
When: „Das Login ausgeführt wird.“ Code
Then: „Wird die Startseite geladen“ Code
And: „die Daten von Erika werden angezeigt.“ Code
Where: „Valide User“ [email protected] |123xyz | ok [email protected] | abcd123 | ok }
-
37 © 2012 Experian Limited. All rights reserved. Experian Public.
Selenium Suite of WebGUI Testtools. Unterstützt Multi-Browser, Multi-Language, ...
Public class LoginPage { Private WebDriver driver = new FirefoxDriver(); Private String editBoxUserId = „name“; Private String editBoxPwdId = „pwd“ Private String buttonLoginId = „submit“ Private String chkBoxRememberId = „remember“ Public OverviewPage login(User user, boolean remember){ driver.findElement(editBoxUserId).sendKeys(user.name) driver.findElement(editBoxPwdId).sendKeys(user.name) driver.findElement(chkBoxRemember).set(remember) driver.findElement(buttonLoginId).click(); Return new OverviewPage }
}
Einsatz des „Page Object“ Musters. Dies kann als ausführbare Spezifikation verwendet werden.
-
38 © 2012 Experian Limited. All rights reserved. Experian Public. 38 © 2012 Experian Limited. All rights reserved. Experian Public.
Vielen Dank für Ihre Aufmerksamkeit!