Testautomatisierung ist seit Jahrenauf dem Vormarsch
Kosten-
druck
Spezielles
Szenarien
Agile
Entwicklung
steigende
Komplexität
In immer komplexeren Systemen
übernimmt die Automatisierung
einfache, wiederholbare Tests.
agile Softwareentwicklung verkürzt
Entwicklungszyklen und braucht
Automatisierung, um angemessene
Testabdeckung zu gewährleisten.
Manche Szenarien sind nur durch
Automatisierung sinnvoll und
wirtschaftlich abbildbar etwa ein
Lasttest mit über 10.000 Nutzern.
Von Automatisierung verspricht man
sich sinkende Testkosten.
© kees veenenbosthe netherlands
Automatisierung wird meistens
unterschätzt
■
■
■
unreflektierte Nutzung
von Capture- & Replay
Automatisierer haben keine Kenntnisse
im Software-Engineering
Es herrschen falsche Erwartungen an
Funktionalität und Folgekosten
© Gentside – nasa.gov
Fundamentaler Testprozess –Alle Phasen können mit Tools unterstützt werden
ISTQB®
2012
Beginn
Planung,
Überwachung &
Steuerung
Analyse & Entwurf
Realisierung &
Durchführung
Bewertung
Endekriterien &
Bericht
Abschluss
Ende
© Photo ESO
Analyse & Entwurf:Mit Model Based Testing Testfälle generieren
Model Based Testing wird von
Model Based Design abgeleitet.
Ein Modell beschreibt das zu
testende System.
Aus diesem Modell können
automatisiert die Testfälle abgeleitet
werden.
Je abstrakter das Modell, desto
abstrakter sind die Testfälle. Man
spricht von logischen Testfällen.
Aus diesen werden die konkrete
Testfälle abgeleitet, indem man
Testdaten hinzufügt.
Testfall-
DB
Testfall
Generator
© Photo ESO
Planung, Überwachung und Steuerung:Wissen, wo die Software steht
Test misst Software-Qualität und
ist Grundlage für die
Produktivsetzung.
Zu jedem Zeitpunkt im Test
muss die bestmögliche Qualität
sichergestellt sein.
Man muss Trends erkennen, um
Maßnahmen einleiten zu
können.
Basis für Kennzahlen und Berichte ist das
Testmanagementtool.
Oft sind Informationen auf verschiedene Tools
verteilt oder nicht einheitlich abgreifbar.
Dann müssen eigene, tragfähige Reporting-
Lösungen entwickelt werden.
Testberichte
CreditPlus
Bank AG
© Gentside – nasa.gov
Realisierung und Durchführung: Hier ist Automatisierung am stärksten ausgeprägt
Oberflächen-tests
Last- & Performancetests
Schnittstellentests
Tests vonWebseiten
DB- & Migrations-tests
Integrationstests
funktionaleTests
Testen vonMobile Apps
Konformitäts-Tests
© Gentside – nasa.gov
Voraus-
setzungen
Nutzen-
AbwägungSE-getriebenes
Vorgehen
Auswahl
der Tools
dauerhafte
Erfolgsfaktoren
Erfolgreich Durchstarten mit geplantem und strukturierten Vorgehen
© Gentside – nasa.gov
Nutzenabwägung:Am einfachsten ist es automatisierte und manuelle Testdurchführung gegenüberzustellen.
𝑅𝑂𝐼 =𝐸𝑟𝑙ö𝑠−𝐼𝑛𝑣𝑒𝑠𝑡𝑖𝑡𝑖𝑜𝑛𝑒𝑛
𝐼𝑛𝑣𝑒𝑠𝑡𝑖𝑡𝑖𝑜𝑛𝑒𝑛=
𝐾𝑜𝑠𝑡𝑒𝑛𝑒𝑖𝑛𝑠𝑝𝑎𝑟𝑢𝑛𝑔 𝐾𝑒𝑖𝑛𝑒 𝑚𝑎𝑛𝑢𝑒𝑙𝑙𝑒𝑛 𝑇𝑒𝑠𝑡𝑠 − 𝐾𝑜𝑠𝑡𝑒𝑛 𝐴𝑢𝑡𝑜𝑚𝑎𝑡𝑖𝑠𝑖𝑒𝑟𝑢𝑛𝑔 (𝐼𝑛𝑖𝑡𝑖𝑎𝑙+𝑇𝑒𝑠𝑡𝑑𝑢𝑟𝑐ℎ𝑓üℎ𝑟𝑢𝑛𝑔)
𝐾𝑜𝑠𝑡𝑒𝑛 𝐴𝑢𝑡𝑜𝑚𝑎𝑡𝑖𝑠𝑖𝑒𝑟𝑢𝑛𝑔 (𝐼𝑛𝑖𝑡𝑖𝑎𝑙+𝑇𝑒𝑠𝑡𝑑𝑢𝑟𝑐ℎ𝑓üℎ𝑟𝑢𝑛𝑔)
Multi Channel Store
ROI-
RechnerReturn-on-Investment (ROI):
Renditekennzahl, gemessen am
Gewinn im Verhältnis zum
eingesetzten Kapital. Ein ROI >1
bedeutet, dass sich die Investitionen
rentieren.
Erlös:
Errechnet sich aus dem Wegfall
manueller Tests.
Investition:
200 Scripts für Multi Channel, 750
Scripts für Store initlal erstellen,
Aufwand für Durchführung und
Pflege der ScriptsNutzen-
abwägung in
einem
Projekte© Gentside – nasa.gov
Voraussetzungen:Mit Bedacht auswählen welche Tests wann automatisiert werden sollen
wenige Wiederholungen
ko
mp
lexe
Te
sts
ein
fach
eTe
sts
viele Wiederholungen
wenige,
komplexe Tests
Manuell
Automatisiert
viele
einfache Tests
Die Automatisierung sollte so früh wie
möglich starten, besonders
Oberflächentests setzen eine gewisse
Grundreife voraus, zum Beispiel ein
„Release 1“.
Testautomatisierung ist prädestiniert
für einfache, oft wiederholte Tests und
in der Regel zu aufwändig für
komplexe, selten durchgeführte Tests.
In agilen Entwicklungsmodellen
verschiebt das Koordinatenkreuz
besonders für Entwickler-Tests zu
Gunsten der Automatisierung.
© Gentside – nasa.gov
Auswahl der Tools:Automatisierungstools müssen dem Einsatzzweck angemessen sein
Anfor-
derungen
aufstellen
Markt-
übersicht
verschaffen
Vorauswahl &
Pilotierung
Review der
ErgebnisseEntscheidung
Evaluation
Daimler
© AstroTerry – nasa.gov
Pattern gibt es auch
für Tests
4 Phase Test: Jeder Test
besteht aus Setup,
Excercise, Verify, Teardown
Erratic Test: Test scheitert
nicht deterministisch.
Wissen welcher Teil des
Systems verfügbar ist
Nichtverfügbare
Komponenten durch Stubs
& Mocks ersetzen
Komponenten simulieren,
um Testergebnisse zu
kontrollieren
Bau, Installation und
Testdurchführung erfolgen
automatisch
Ausführung dedizierter Tests
direkt bei Codeänderung,
nächtlich alle Tests ausführen
Ergebnisse stehen aufbereitet
auf dem Buildserver zur
Verfügung
Continuous
Integration
Stubs &
Mocks
Pattern &
Antipattern
Software Engineering getriebenes Vorgehen:Entwicklertests mit Struktur und Methode erstellen
© Gentside – nasa.gov
Quelle: martin fowler
(http://martinfowler.com/bliki/PageObject.html)
Software Engineering getriebenes Vorgehen:
Standards und Frameworks nutzen
In der Testautomatisierung gibt es wie
in der Softwareentwicklung
Standards und Frameworks
populäre Beispiele sind das
Page Object Pattern und die Page
Factory für Webseiten
Viele Automatisierer, die mit Selenium
arbeiten verwenden das Page Object
Pattern
Eine ausführliche Beschreibung
findet man im Selenium-wiki.
© Gentside – nasa.gov
1. Stufe: Capture & Replay
2. Stufe: Data Driven Testing
3. Stufe: Function Libraries
4. Stufe: Keyword Driven Testing
5. Stufe: Object Oriented
Software Engineering getriebenes Vorgehen:Automatisierungsarchitekturen durchlaufen verschiedene Entwicklungsstufen
© Barry Wilmore–nasa.gov
Software Engineering getriebenes Vorgehen:Testautomatisierungen können selber komplexe Softwaresystem werden
Nightly
Build
dynamische
Bedingungen
statische
Bedingungen
Berichts-
wesen
Kommu-
nikation
Testver-
teilung
…
Controller
VM
GU
IAPI
System
VM
VM
ALM
AL
M-A
da
pte
r
TA
-AP
I
Administrator-Oberfläche
GU
IAPI
System
TA
-AP
I
GU
IAPI
System
TA
-AP
I
zentrales
Framework
Daimler
© Gentside – nasa.gov
Dauerhafte Erfolgsfaktoren:Grundlagen für den Erfolg sind realistische Erwartungen und ein professionelles Vorgehen
Lösung nicht
beherrscht
Falsche
Erwartungen
qualifizierte
Automatisier
tragfähige
Konzeption
Timing der
Umsetzung
Umgebung ist
instabil
© Gentside – nasa.gov
Testautomatisierung ist Software-Engineering!
KonzeptionPlanung Umsetzung
„In unserer heutigen digitalen Welt ist
jede Information nur einen Klick weit
entfernt, viele unserer Freunde sind
digital.
Um aber wirklich etwas zu erleben
muss man selbst den Schritt tun und es
machen. Dann kann man wirklich
mitreden!“
Zitat frei aus dem Film „The Art of Flight“, Red Bull TV
© Gentside – nasa.gov
Verantwortung. Exzellenz. Leidenschaft.
Alexander HofmannHolger WolffJens Rieger Volker Maiborn
Frühe Phasen
IT-Sanierung
Software Design &
Development
Fahrzeug-IT
Mobile Engineering
Test-Management
4 Standorte
12 Mio Euro Umsatz
25 Jahre Erfahrung
135 Mitarbeiter
Und jede Menge Herz-
blut für Ihr IT-Projekt
MaibornWolff GmbH | IT-Beratung & Software-Engineering | Theresienhöhe 13 | 80339 München | 089 544 253 000 | maibornwolff.de