Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Akzeptanztestgetriebene Entwicklung
mit Hilfe von stabilen UI-Tests
NovaTec Consulting GmbH
Leinfelden-Echterdingen, München, Frankfurt am Main, Berlin, Jeddah / Saudi-Arabien
Frankfurter Entwicklertag
am 19.2.2014
© NovaTec 19.02.2014 2 © NovaTec 19.02.2014 2
Vorstellung Johannes Schlaudraff
Studium an der Universität Stuttgart mit Abschluss Master of Science
Softwareentwickler bei der NovaTec GmbH
Mitarbeiter in der Competence Group „Agile Quality Engineering“ mit dem Schwerpunkt
Testautomatisierung
© NovaTec 19.02.2014 3
Vorstellung Andreas Falk
Studium Technische Informatik an der BA Stuttgart mit Abschluss als Diplom-Ingenieur (BA)
Studium Wirtschaftsingenieur an der Hochschule für Technik Esslingen (Dipl-Wirt.-Ing (FH))
Beginn der Berufslaufbahn 1995 bei der IBL Ingenieurbüro Letters GmbH.
Verschiedene Stationen bei u.a T-Systems und sd&m bzw. CapGemini
Seit 2011 bei der NovaTec Consulting GmbH
Als Senior Consultant unterwegs im Beratungsgeschäft der NovaTec Consulting GmbH
© NovaTec 19.02.2014 4
Vorstellung Johannes Schlaudraff
Studium an der Universität Stuttgart mit Abschluss Master of Science
Softwareentwickler bei der NovaTec GmbH
Mitarbeiter in der Competence Group „Agile Quality Engineering“ mit dem Schwerpunkt
Testautomatisierung
© NovaTec 19.02.2014 5
Motivation
Softwareprojekte erzielen nicht das, was der Kunde fordert
Anforderungen zu formulieren ist schwer
Fachabteilung Entwickler
„One of the most effective ways of specifiying s.th is to describe in detail how you accept it if someone gave it to you!“
Bill Hetzel The Complete Guide to Software Testing
1991
Tester
© NovaTec 19.02.2014 6
Motivation - Kein Gemeinsames Verständnis
Spezifikation / User Stories oft mehrdeutig
Je später das Feedback desto aufwändiger
Tests decken Missverständnisse auf
Spezifikation
Code Tests
Tester Entwickler
?
Programmierfehler
Anforderung falsch verstanden
Tests können helfen Missverständnisse zu vermeiden
© NovaTec 19.02.2014 7
ATDD – Prozess
Kunde
Entwickler
Test & QA
Entwickler
Akzeptanz
-tests
Test & QA
erhalten
Feedback
ergänzen
Kunde
Software
implementieren
testen
Iteration 1
Specification Workshop
Entwicklung
© NovaTec 19.02.2014 8
Specification Workshops
Ausarbeitung der Akzeptanztests
– Gemeinsames Verständnis
– Gemeinsame Spezifikation
• Alle
• „Three Amigos“
Kollegiale Atmosphäre
Effizientere Lösungen
Wissen warum man etwas tut
Kunde
Entwickler
Tester
© NovaTec 19.02.2014 9
Was sind Akzeptanztests?
Akzeptanztests prüfen, ob ein System das Richtige tut
Geben sprachlich wie der Kunde das Problem versteht
Beinhalten keine Implementierungsdetails (Was nicht Wie)
Quelle: Test Driven: Practical TDD and Acceptance TDD for Java Developers von Lasse Koskela, S.36.
© NovaTec 19.02.2014 10
Beispiel
Keine Implementierungsdetails
Kein Testskript
Was nicht Wie
Kostenlose Lieferung
• VIP Kunden erhalten eine kostenlose Lieferung wenn sie 5 oder mehr Bücher bestellen.
• Eine kostenlose Lieferung wird für normale Kunden oder VIP Kunden, die etwas anderes als
Bücher kaufen, nicht angeboten.
Akzeptanztests Kundentyp Warenkorb Lieferung
VIP 5 Bücher Kostenlos
VIP 4 Bücher Standard
Normal 10 Bücher Standard
VIP 5 Waschmaschinen Standard
VIP 5 Bücher, 1 Waschmaschine Standard
Quelle: Specification by Example: How Successful Teams Deliver the Right Software von Gojko Adzic
© NovaTec 19.02.2014 11
HTML
Automatisierte Akzeptanztests
Unit-Test-Framework
– Details gehen verloren
– Diskussion mit Fachabteilung schwierig
Acceptance test framework
– Tests bleiben lesbar
– Concordion, FitNess, JBehave
Akzeptanztests Glue-Code System Under Test
Reg.
Use
r?
Regi
ster
ed
r
P
rite
m
ri
c
Y
e
s
3
y
1
0
3
0
Y 3 1
0
4
N
o
1
0
6
0
public void
…
Kundentyp Warenkorb Lieferung
VIP 5 Bücher Kostenlos
VIP 4 Bücher Standard
Normal 10 Bücher Standard
VIP 5 Waschmaschinen Standard
VIP 5 Bücher, 1
Waschmaschine
Standard
© NovaTec 19.02.2014 12
Automatisierte Akzeptanztests
Herausforderungen aus Testsicht bei agilem Vorgehen
– Iteratives Testen
– Viele Regressionstests
– Testkapazität begrenzt (Budget für das Testen erhöht sich i. Allg. nicht)
Automatisierte Regressionstests
– Schneller und häufiger durchführbar
– Continuous Integration
Sicherheitsnetz beim Refactoring des Codes
– Jede Code-Änderung kann bestehende Funktionalität kaputt machen
Living Documentation
© NovaTec 19.02.2014 13
Agile Testing Pyramide
Technik
Fachlichkeit
Detail
Komplexität / Aufwand
Manuelle Tests
Automat. UI-Tests
Automat. Integrationstests
Automat. Unit Tests
Anzahl
Automat. API-Tests
© NovaTec 19.02.2014 14
UI-Testing sinnvoll?
++ Tests auf Anwenderebene (inkl. CSS, Javascript, …)
++ Mehr Vertrauen von Kunden/Anwendern ohne
technisches Verständnis
+ Identifizierung weiterer automatisierbarer Tests
-- Hoher Aufwand
Alternative: Http- oder Service-Level
! Nicht automatisierbar…
…Usability Tests
…Design-Tests / Corporate Identity
http://www.timpeter.com/
2012/04/02/the-funny-thing-about-online-
review-sites-is
© NovaTec 19.02.2014 15
Capture-Replay Werkzeuge vermeiden
http://itapashya.blogspot.com
© NovaTec 19.02.2014 16
Stabile Element-Lokatoren
http://www.3qilabs.com/wp-
content/uploads/2012/02/selenium-locators-
apple-tree-diagram-dashed-fixed.png
driver.findElements(
By.xpath("/html/body/div[3]/table/tbody/tr/td")
);
driver.findElements(By.id(„myUniqueID"));
driver.findElements(By.name(„myName"));
© NovaTec 19.02.2014 17
Set-Up vordefinierter Referenz-Daten
Akzeptanztest
Arrange
Referenz-
Testdaten laden Testaktion Prüfung
Act Assert
API-Call
DB
© NovaTec 19.02.2014 18
Workflow-Pattern - Überblick
IT- Consulting,
Produktvorentwicklung
http://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/
© NovaTec 19.02.2014 19
Workflow-Pattern - Beispiel
IT- Consulting,
Produktvorentwicklung
Navigation
1
Navigation
2
Navigation
4
Navigation
3
© NovaTec 19.02.2014 20
Page Abstractions - Überblick
IT- Consulting,
Produktvorentwicklung
Page
Object
Page
Fragment
Page
Fragment
Graphene
© NovaTec 19.02.2014 21
Page Abstractions - Vorteile
IT- Consulting,
Produktvorentwicklung
Page
Object
Login
Fragment
Auto-
complete
Fragment
Page-Objects
Entkopplung von Technik (HTML, Swing, usw.) und fachlichem Testcode
Unabhängigkeit der Tests vom UI-Testframework
Stabile Tests, Änderungen meist auf Page Objects beschränkt
Page-Fragments
Wiederverwendbare Komponenten für alle Tests
Bessere Wartbarkeit
Vermeidung unnötig großer Page-Objects
© NovaTec 19.02.2014 22
Demo /
Test
Abnahme
Akzeptanztest - Technologiestack
Entwicklung
/ Integration
© NovaTec 19.02.2014 23
Demo: Stabile UI-Akzeptanztests (1)
http://www.lesegefahr.de/wp-content/uploads/2013/10/Schl%C3%BCters_Demo-1024x555.jpg
© NovaTec 19.02.2014 24
Demo: Stabile UI-Akzeptanztests (2)
Akzeptanztest
Spezifikation
(HTML)
Fixture-Code
(Java)
System Under
Test
(JEE)
http://www.concordion.org DVD Store
© NovaTec 19.02.2014 25
Nichtfunktionale Akzeptanztests
http://www.myindiapictures.com/car-security-in-india-funny.jpg
Security?
ZAP
Proxy
Akzeptanztest
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
Injection
XSS
CSRF
© NovaTec 19.02.2014 26
OWASP Top 10 (2013)
https://www.owasp.org
© NovaTec 19.02.2014 27
Fazit
http://villateddy.blogspot.com/2013/01/gaste-wc.html
Damit sowas nicht
(mehr) passiert!
Was wird getestet: Spezifikation (Business-Level)
Wie wird getestet: Automatisierungsschicht (Technik), Daten
Wo wird getestet: Service-Level, Http, UI
© NovaTec 19.02.2014 28
Weiterführendes…
http://gojko.net
“@NT_AQE” – Quality Engineering
http://www.novatec-gmbh.de/schulungen
- Wir führen IT-Projekte zum Erfolg -
NovaTec Consulting GmbH
NovaTec Zentrale
Dieselstr. 18/1
D-70771 Leinfelden-Echterdingen
Telefon: +49 711 22040-700
Fax: +49 711 22040-899
E-Mail: [email protected]
Internet: www.novatec-gmbh.de
Frankfurt
Friedrich-Ebert-Anlage 36
D-60325 Frankfurt am Main
München
Landshuter Allee 8-10
D-80637 München
Naher Osten
P.O. Box 140611
Jeddah 21333, Saudi-Arabien
Berlin
Potsdamer Platz 11
D-10785 Berlin
Niederlassungen
Vielen Dank für Ihre Aufmerksamkeit!