INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN?



Ähnliche Dokumente
INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN?

Design for Testability in der Praxis David Völkel, codecentric AG

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Testen und Testautomatisierung in agilen Projekten

Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen

Der frühe Tester fängt den Bug

Inhalt. 3.1 Der inkrementelle Entwurf im Überblick Flache Aufwandskurve Qualitätskriterien für den inkrementellen Entwurf...

STRICT TDD DIE UNTERSCHÄTZTE WAFFE DES ENTWICKLERS

Software - Testung ETIS SS05

Weboberflächen testen

Automatisiertes End-to-end Testen von Enterprise Applikationen

Service Virtualisierung

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Business-Rule-Management als Instrument des Software-Reengineering

Qualitätsmanagement im Projekt

Kontinuierliche Architekturanalyse. in 3D

Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt

Zum Beispiel ein Test

Fragen Arthur Zaczek. Apr 2015

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer


Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Projektmanagement und Softwarequalität

Powermanager Server- Client- Installation

Design Patterns 2. Model-View-Controller in der Praxis

T1 - Fundamentaler Testprozess

Test Driven Development

Verzahnung von Detailspezifikationen mit automatisierbaren Testfällen

Integrierte und automatisierte GUI-Tests in Java

Trotz Agilität nicht ins Abseits geraten Modellierung in einem agilen Umfeld. Susanne Mühlbauer, Philip Stolz, HOOD GmbH MID Insight 2012

Generatives Programmieren

Automatisiertes UI Testing. Mark Allibone, , #2

Testen im Software- Entwicklungsprozess

BIF/SWE - Übungsbeispiel

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

CONTINUOUS LEARNING. Agile Anforderungsanalyse mit Impact Mapping

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert

Das Handwerkszeug. Teil I

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Vector Software. Verwendung des VectorCAST/Requirement Gateways mit DOORS > > >

T2 Fundamentaler Testprozess

Webinar. Mach Dir die Welt, wie sie Dir gefällt! Die Antriebskräfte des Lebens nach dem Reiss-Profil erkennen

Was versteht man unter Softwaredokumentation?

lohmeyer White Paper Use Cases II UX+Prozessanalyse

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

KVIrc installieren (win) i. KVIrc installieren (win)

mobile Responsive Design Lässt Ihre Anwendungen und Inhalte auf jedem Gerät einfach gut aussehen

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

UX Erlebnisse am Frontend

Formwerk AG. Die Sicherstellung konsistenter Nutzungserlebnisse über den gesamten SW-Produktlebenszyklus durch Human Centered Design.

Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht

Reporting Services und SharePoint 2010 Teil 1

OWB 10.2 Experts im Einsatz: Automatisierung von Designschritten bei der Bayer Healthcare AG. Referent: Lutz Bauer, Senior Systemberater, MT AG

Anleitung über den Umgang mit Schildern

Digitaler*Ausstellungsbegleiter*für*Mobilgeräte ** * * * Alter: Studiengang: Geschlecht: $ $ $ $ Datum: Falls%Ja,%welches? Falls%ja, %welches?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Maven 2 Softwareprojekte mit Kultur

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Praxisbeispiel: Mobile Lösung für Kontrollen im Agrarbereich mit durchgängigen Prozessen

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Softwareentwicklung aus Sicht des Gehirns

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Vermögen sichern - Finanzierung optimieren

Grundbegriffe der Informatik

REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet

Automatische Testfallgenerierung aus Modellen. 8. Neu-Ulmer Test-Engineering-Day Martin Miethe

Auf Diät Wie Sie Ihre Entwicklung verschlanken. Job Merkblätter. Einmal drucken pro Team

Teststrategie festlegen und Teststufen aufeinander abstimmen

Abschnitt 16: Objektorientiertes Design

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013!

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

T3 Testen im Software- Lebenszyklus

Entwicklung und Einsatz von Signaturserverdiensten

Die Bundes-Zentrale für politische Bildung stellt sich vor

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

Für den ersten Eindruck gibt es keine zweite Chance:

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

Wissensmanagement im Geschäftsalltag: Wie unterstützt es mich in der beruflichen Praxis?

Conigma CCM (3G) - Überblick -

Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren

Multichannel Challenge: Integration von Vertriebsorganisation und Contact Center in der Versicherung

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Inklusion in Dänemark

Systemisches Projektmanagement - Komplexe Projekte sicher(er) zum Erfolg führen

Essen als Event? Essen als Event! Strukturierte Beobachtungen mit Dementia Care Mapping DCM

Requirements Engineering WS 11/12

Transkript:

INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN? David Völkel XPDays Germany 14.11.2013

ÜBER MICH David Völkel IT-Consultant für codecentric Twitter: @davidvoelkel Schwerpunkte: Test-Driven Development Softwaredesign & Clean Code Software Craftsman @softwerkskammer 2

PROBLEM INTEGRATION TEST HELL? Fehler trotz Unit- Tests zu viele integrative Tests Kosten $$$ 3

Integrationsgrad Integrative Tests LÖSUNG: TESTPYRAMIDE UI Service Unit-Tests. & Unit effektive Teststrategie Pyramide nach Martin Fowler 4

so what 5

DOCH KOMPLEXER 6

?? Unit 7

AGENDA - Kosten vs. Nutzen - Isolation vs. Integration - Akzeptanztests - GUI? - Resume

WELCHES QUALITÄTSLEVEL BRAUCHE ICH? $(Tests) = Nutzen - Kosten (A)TDD unterstützt Entwicklung Risikominimierung Risiko = Schaden * Wahrscheinlichkeit unangemessene Testauswahl 20% der Tests 80% Nutzen Menge, Art, Integrationsgrad Tests Risikobewertung unterschiedlich je Domäne Prototyp bis sicherheitkritisch Tests an an Kosten und Nutzen ausrichten!

EIGENSCHAFTEN DER TESTARTEN Isolierende Tests Feedback schnell langsam Fehlerfindung einfach schwer Fragilität gering hoch Kosten Entwicklung & Wartung Aussagekraft für Nutzer Stärken billig gering Breite, Logik, Komplexität Integrierende Tests teuer hoch Tiefe, Datenflüsse, Integration 10

WAS SAGEN DIE EXPERTEN? UI Service Unit Unit "Integrated Tests Are a Scam" J.B. Rainsberger ATDD z.b. GOOS, Continuous Delivery wörtliche Interpretation 11

ATDD Akzeptanztest E2E treibt jedes Feature Systemdesign Auslegungssache Extrem Jez Humble Abschwächung mit Testpyramide Tests ggf. runterdrücken Nat Pryce James Crisp (70%, 20%, 10%) 1 x Akzeptanztest N x Unittests 12

"INTEGRATED TESTS ARE A SCAM" Splitting integrated test Decomposition Fallacy? #Testfälle: n x m => n + m! integrated test n x m collaboration test test double contract test n + m 13

SRP FÜR TESTS? Deduplizierung von Testfalllogik Integrativer Test enthält Teile der Unittests auf dem Weg Fokus: Integration Orthogonalisierung http://commons.wikimedia.org/wiki/file:divide-and-conquer.jpg?uselang=de

ORTHOGONALISIERUNG Beispiel: Email-Validierung Funktionaler Test schmal und tief Service oder UI Fokus: Integration Eingabe ungueltige@email gültige@email.de Ausgabe Mail ungültig Mail OK Unittests breit, jedes Detail testen GUI Test Double Validator

AKZEPTANZTESTS

AKZEPTANZTESTS Fokus Kundennutzen Funktionale- statt Entwicklertests Sprache der Fachlichkeit Orthogonal zum Integrationsgrad

PYRAMIDE FÜR AKZEPTANZTESTS UI Service Unit

PROZESS FÜR AKZEPTANZTESTS Akzeptanztests User Stories Scenarios Implementierung Step Definitions Unittests BDD ATDD Richtige Ebene?

Integrationsgrad INTEGRATIONSGRAD VS. FACHLICHKEIT E2E business readable technical Service 2 Dimensionen ( etwas abhängig ) Unit Inspiriert durch "the testing iceberg von Seb Rose / Matt Wynne

GUI TESTS

Stabilität & Klarheit 3 EBENEN VON GUI-TESTS Rule Workflow Oberen Ebenen eigentlich Akzeptanztests Tests hoch drücken Page Objects wrappen scripting Smell Wiederverwendung? Beispiele Technisches Scripting Gojko Adzics "UI testing without shooting yourself in the foot"

GUI-TESTS Isolation? Subcutanous Testing (z.b. MVP) Kompletter Presentation Layer + Service Doubles Menge wenige Grober Pfad über alle Seiten und Elemente ohne Logik! viele extrahierte User Journeys vollständig alle Stories

FAZIT Fokus auf Wert der Tests Risiken sind extrem kontextabhängig => Spitzheit der Pyramide Test Pyramide Hohe Unittest-Abdeckung Wenige integrative Tests, da teuer Orthogonal zueinander, SRP für Tests Viele Dimensionen Integrationsgrad funktional vs. technisch GUI

QUELLEN Bücher "Continuous Delivery" - Jez Humble, Dave Farley "Growing Object-Oriented Software, Guided by Tests" - Steve Freeman, Nat Pryce "Specification by Example" - Gojko Adzic GOOS Mailingliste https://groups.google.com/forum/#!forum/growing-objectoriented-software "Integrated Tests are a scam" - J.B. Rainsberger http://www.jbrains.ca/permalink/using-integration-testsmindfully-a-case-study http://www.jbrains.ca/permalink/integrated-tests-are-a-scampart-1 "The Testing Iceberg" - Matt Whyne und Seb Rose http://claysnow.co.uk/the-testing-iceberg/

QUELLEN End-to-end Tests? http://www.higherorderlogic.com/2010/01/responding-to-brianmarick http://www.exampler.com/blog/2010/01/08/some-preliminarythoughts-on-end-to-end-testing-in-growing-object-orientedsoftware/ Testing-Pyramide im Kontext Continuous Delivery, James Crisp http://jamescrisp.org/2011/05/30/automated-testing-and-thetest-pyramid/ Wartbare Acceptance Tests, Jez Humble http://de.slideshare.net/jezhumble/creating-maintainableautomated-acceptance-tests http://skillsmatter.com/podcast/agile-testing/the-long-termvalue-of-acceptance-tests

FRAGEN UND DISKUSSION David Völkel Landsberger Str. 302 80687 München Twitter: @davidvoelkel david.voelkel@codecentric.de www.codecentric.de blog.codecentric.de www.meettheexperts.de http://commons.wikimedia.org/wiki/file:orange_question_mark.svg?uselang=de 27

LIZENZ Attribution-ShareAlike 3.0 Germany http://creativecommons.org/licenses/by-sa/3.0/de/ 28

ERGÄNZUNGEN

Ports-and-Adapters Architecture ports = system interfaces adapters = übersetzen zwischen bounded contexts domain dependency inversion => testbare domain System Domain Adapters

Hexagonal Architecture Klassifizierung der Ports input vs output "us vs. them" 3rd Party Systems System User Domain Adapters

UNIT TESTS test doubles zur Isolation ausgehender Adapter Trennung Mapping von Transport möglich? Proprietäres Format? z.b. HTTP vs. JDBC => nur dann isoliert testbar Unit Tests System 3rd Party Systems Domain Adapters Unit Tests

INTEGRATION TESTS Vorsicht: 3 Bedeutungen!!! Komponententest Komponententest Integrationstest zu Drittsystemen allgemein integrativer Test z.b. auch Systemtest Domain Integrationtest Adapters

Systemtest im Backdoor Fall - test als test double - alternativ Simplicator Pattern Systemtest System Domain Adapters

END-TO-END-TESTS Besonders teuer System & Drittsystem unter Test Reicht "Front Door"? Drittsystem Herschafft des Drittsystems? Kopplung? End-to-End-test Domain Adapters End-to-End-test Front Door

ABKOPPLUNG DRITTSYSTEME Integration Contract Test Impersonator Pattern evtl. als Self initializing Fakes Simplicator, falls proprietär Integration Contract Tests End-to-End-test Impersonator Domain Adapters