29
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

Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

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

Page 2: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 3: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 4: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 5: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 6: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 7: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 8: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 9: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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.

Page 10: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 11: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 12: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 13: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 14: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 15: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 15

Capture-Replay Werkzeuge vermeiden

http://itapashya.blogspot.com

Page 16: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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"));

Page 17: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 17

Set-Up vordefinierter Referenz-Daten

Akzeptanztest

Arrange

Referenz-

Testdaten laden Testaktion Prüfung

Act Assert

API-Call

DB

Page 18: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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/

Page 19: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 19

Workflow-Pattern - Beispiel

IT- Consulting,

Produktvorentwicklung

Navigation

1

Navigation

2

Navigation

4

Navigation

3

Page 20: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 20

Page Abstractions - Überblick

IT- Consulting,

Produktvorentwicklung

Page

Object

Page

Fragment

Page

Fragment

Graphene

Page 21: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 22: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 22

Demo /

Test

Abnahme

Akzeptanztest - Technologiestack

Entwicklung

/ Integration

Page 23: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 24: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 25: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 26: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 26

OWASP Top 10 (2013)

https://www.owasp.org

Page 27: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© 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

Page 28: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

© NovaTec 19.02.2014 28

Weiterführendes…

http://gojko.net

“@NT_AQE” – Quality Engineering

http://www.novatec-gmbh.de/schulungen

Page 29: Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit Hilfe von stabilen UI-Tests NovaTec Consulting GmbH Leinfelden-Echterdingen, München,

- 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!