22
Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen Präsentation bei den Stuttgarter Testtagen 21.März 2013 NovaTec - Ingenieure für neue Informationstechnologien GmbH Leinfelden-Echterdingen, München, Frankfurt am Main, Jeddah / Saudi-Arabien

Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

Entwicklung von effizienten UI-basiertenAkzeptanztests für Webanwendungen

Präsentation bei den Stuttgarter Testtagen21.März 2013

NovaTec - Ingenieure für neue Informationstechnologien GmbHLeinfelden-Echterdingen, München, Frankfurt am Main, Jeddah / Saudi-Arabien

Page 2: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 2

Annahita Oswald-Röhrig

Studium Bioinformatik (gemeinsamer Studiengang zwischen Ludwig-Maximilians-Universität und Technische Universität München)Promotion am Institut für Informatik der Ludwig-Maximilians-Universität München Seit 2011 bei der NovaTec GmbH in der Competence Group Agile Quality Engineering

Page 3: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 3

Fach-experten

Entwickler

Test & QA

Architekt

Anforderungen Anforderungen

Bug-ReportDesign /

Architecture

Deliverables

Traditionelle Rollen

Page 4: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 4

Kein gemeinsames Verständnis

http://misterirrelevant.com/wp-content/uploads/2009/10/telephone-game-girls.jpg

Page 5: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 5

Redundanz

Fach-experten

EntwicklerTest & QA

RequirementManagement Tool

RequirementManagement Tool

Architekt

ModelsModelsDeliverablesDeliverables

Source CodeSource Code

Test scriptsTest scripts

Bug reports

Bug reports

Documentation

Documentation

Test Specification

Test Specification

Page 6: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 6

Lösung? Ein funktionsübergreifendes TEAM

Fach-experten

EntwicklerTest & QAArchitekt

Page 7: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 7

Specification Workshops

FachbereichAnwenderProduct Owner

EntwicklerArchitekten

Test & QA

Single source of

truth

Single source of

truth

Page 8: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 8

Schlüsselbeispiele definieren

Sind Grundlage fSind Grundlage fSind Grundlage fSind Grundlage füüüürrrrSind Grundlage fSind Grundlage fSind Grundlage fSind Grundlage füüüürrrr

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren prprprprüüüüf

enfen

fen

fen

prprprprüüüüf

enfen

fen

fen

Sind Grundlage fSind Grundlage fSind Grundlage fSind Grundlage füüüürrrrSind Grundlage fSind Grundlage fSind Grundlage fSind Grundlage füüüürrrr

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren

konkretisieren prprprprüüüüf

enfen

fen

fen

prprprprüüüüf

enfen

fen

fen

Page 9: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 9

Ergebnis : Spezifikation durch Beispiele

User story

Scenarios, Akzeptanzkriterien

Schlüsselbeispiele

Page 10: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 10

Automatisierung der Validierung

Die Spezifikation inkl. Beispiele & Szenarien

Die FixtureFixture als Glue-Code

Das System Under Test

Page 11: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 11

GreenPepper

http://www.greenpeppersoftware.com/confluence/display/GPW/Home

•afaik Java, C++/.net•Spezifikation in Confluence•Mächtige Interpreter•Versionierungskontrolle•Hierarchische Testsuiten•Einfach zu bedienen

Page 12: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 12

1. Strukturierung der ausführbaren Spezifikationen

2. Einbindung in die CI-Umgebung

Regelmässige Validierung

Für alle zugänglich!Für alle verständlich!Abbildung des aktuellen Stands der Software

Page 13: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 13

Technik

Fachlichkeit

Detail

Komplexität / Aufwand

ManuelleTests

Automat.UI-Tests

Integrationstests(API-Ebene)

Unit Tests

Anzahl

Agile Testing Pyramide

By Mike Cohn

Page 14: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 14

Selenium

Testautomatisierung für WebanwendungenSelenium WebDriverOpen SourceInternet Explorer, Firefox, Chrome, Opera, iOS , AndroidJava, C, PHP, Pyhton, RubyWebDriver API

http://seleniumhq.org/http://code.google.com/p/selenium/

Selenium 2

Page 15: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 15

Ein einfaches Beispiel

Page 16: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 16

Was testen?

WorkflowsSessionsUI-Logik

Page 17: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 17

Page Object Pattern: WIE?

• Methoden repräsentieren Services, die eine Seiteanbietet.

• Die interne Struktur der Seite wird versteckt• Kapselt das WIE soll der Browser etwas machen• Eine PageObject kann auch nur Teile einer Seite

repräsentieren.• Methoden geben PageObjects zurück

Page 18: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 18

PageFactory

Page 19: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 19

PageObject

Page 20: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 20

Page Object Pattern: WARUM?

Leicht verständlicher TestcodeVermeidung von mehrfachen API Aufrufen

Wiederverwendbarer CodeBessere WartbarkeitAustauschen des Testframeworks? => nur die Page Base Klasse müsste erneuert werden

Page 21: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

© NovaTec 20.03.2013 21

GreenPepper und Selenium

Page 22: Entwicklung von effizienten UI-basierten Akzeptanztests ... · Page Object Pattern: WIE? • Methoden repräsentieren Services, die eine Seite anbietet. • Die interne Struktur der

- Wir führen IT-Projekte zum Erfolg -

Vielen Dank für Ihre Aufmerksamkeit!

NovaTec - Ingenieure für neue Informationstechnologi en GmbH

HauptniederlassungDieselstr. 18/1D-70771 Leinfelden-Echterdingen

Telefon: +49 711 22040-700Fax: +49 711 22040-899

Niederlassung FrankfurtFriedrich-Ebert-Anlage 36D-60325 Frankfurt am Main

Niederlassung MünchenLandsberger Straße 439D-81241 München

E-Mail: [email protected]: www.novatec-gmbh.de

NiederlassungMittlerer OstenP.O. Box 140611Jeddah 21333Saudi-Arabien