Akzeptanztestgetriebene Entwicklung mit Hilfe von …...Akzeptanztestgetriebene Entwicklung mit...

Preview:

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: info@novatec-gmbh.de

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!

Recommended