Agiles Testen - Patrick Koglin

15
Agiles Testen 17. November 2013 - Patrick Koglin Gedankensammlung

description

Agilität in der Software-Entwicklung? Wo? Quality is erveryone´s responsibility Qualität in der Software möglich machen Was ist zu tun? Quality gates

Transcript of Agiles Testen - Patrick Koglin

Page 1: Agiles Testen - Patrick Koglin

Agiles Testen

17. November 2013 - Patrick Koglin

Gedankensammlung

Page 2: Agiles Testen - Patrick Koglin

Inhalt

2

Reflektion: Agilität notwendig? Wo? Eigenschaften agiler Entwicklung „Quality is everyone´s responsibility“ Qualität möglich machen Was ist zu tun?

10.04.23

Page 3: Agiles Testen - Patrick Koglin

Reflektion: Agilität notwendig? Wo?

Es entstehen nie Fehler in meinem Code

Es entstehen eine Vielzahl von Fehlern in meinem Code

Die Fehler die entstehen erkenne ich durch genaues analysieren

Software muss erweitert werden

Kunde ruft an verlangt neue

Features

Der Kunde ruft verärgert an und

meldet einen kritischen Fehler

Mehrere Entwickler

arbeiten parallel

Meine Komponenten werden plötzlich von

jemanden anders verwendet

Jemand anderes muss meine

Software übernehmen

Jemand anderes muss meine Software

jetzt wartenErweiterung notwendig weil

bestimmte Anforderungen noch nicht erfüllt werden (Funktional,

Nicht funktional)

310.04.23

Page 4: Agiles Testen - Patrick Koglin

Reflektion: Agilität notwendig? Wo?

SoftwarekomponenteSoftwarekomponenteAnforderung

Feedback

EntwicklungsprozessEntwicklungsprozessFrüher 6-12 MonateHeute 2-4 WochenFrüher 6-12 MonateHeute 2-4 Wochen

Agilität ist genau hier (erforderlich)

„Performancemessung bis Ende der Woche“

„Wir brauchen bis morgen…“

„Können wir mal die Variante x vertesten…“

„Der gemeldete Fehler muss schnellstmöglich beseitigt werden…“

Schneller Abschluss der AufgabenSchnelles Feedback

410.04.23

Page 5: Agiles Testen - Patrick Koglin

Eigenschaften agiler Entwicklung

Häufige Auslieferung der Software– durch neue Features, Bugfixes und äußere Anforderungen– kurze Auslieferungszyklen

Permanentes Refactoring – Erweiterungen, Korrekturen und Änderungen N-fache Integration (Zusammenspiel mehrerer Einzelkomponenten) „Schreiben von Testplänen und deren manuelle Ausführung mit Hilfe eines Testteams ist

somit keine Option mehr, da dieser Ansatz nicht Schritt halten kann mit der geforderten Geschwindigkeit und Flexibilität des agilen Entwicklungsprozesses.“*

*http://blog.codecentric.de/2009/08/agiles-testen-das-herzstuck-agiler-softwareentwicklung/

Auf die Wünsche und Anforderungen des Kunden zeitnah reagieren zu können

510.04.23

Page 6: Agiles Testen - Patrick Koglin

Vorteile agiler Entwicklung

(Eleganter) Abschluss der AufgabenSchnelles FeedbackHohe MotivationNeue Aufgaben realisierbarQualität steigt mit jeder Iteration

610.04.23

Page 7: Agiles Testen - Patrick Koglin

Wie kann das ermöglicht werden?

Agiles Vorgehen erfordert Agiles Testen

Evolvierbare SoftwareHohe Anforderungen an

die Software ArchitekturStetig hohe

Qualität

„Clean Craftmanship“Keine schriftliche

Dokumentation

„One Team“Entwickler und Tester

Stabile, automatisierte

Tests

Schneller Deployprozess

Flexibel

Erweiterbar

Page 8: Agiles Testen - Patrick Koglin

Das (Entwickler-)Leben etwas leichter:Qualität wird fester Bestandteil des Entwicklungsprozesses

810.04.23

Überlegung

Programmierung

Programmierung

Integration

ProgrammierungTest

So, bitte nicht!

Page 9: Agiles Testen - Patrick Koglin

Das (Entwickler-)Leben etwas leichter:Qualität wird fester Bestandteil des Entwicklungsprozesses

910.04.23

Komponententests (Unit-Tests)

Programmierung und Refactoring

Analyse

Software Architektur

Weiterführende Tests

Entwicklungsprozess

Projekt- bzw. Aufgabenstart Projekt- bzw. Aufgabenabschluss

Analyse Analyse Analyse

Abschluss-analyse

Iteration beginnt mit neuer Anforderung von vorne

Walking Skeleton

Page 10: Agiles Testen - Patrick Koglin

Wie geht es weiter?

1010.04.23

„Quality is everyone´s responsibility“

Page 11: Agiles Testen - Patrick Koglin

Definition der notwendigen TestsAbrenzung „Komponententests“ und andere Tests

1110.04.23

Unit-Tests

Wird von jedem Entwickler parallel erstellt

Code

automatisiert

Oberflächentests

Performancetests

manuell oder automatisiert

Integrationstests„Der Entwickler werfe bitte den ersten Stein“

Page 12: Agiles Testen - Patrick Koglin

Was muss getan werden?

1210.04.23

Jeder muss Tests unkompliziert schreiben können Jeder muss Tests schnell ausführen können Alle Tests müssen zentral, unabhängig und vollständig an einem Baurechner laufen Jeder muss – leider - für das fehlschlagen von Tests Verantwortung tragen und entsprechenden

Code unmittelbar reparieren Klarheit und Struktur für den Entwickler

Welche Arten von Tests gibt es? Welche Tests muss ich schreiben? Welche Tests muss ich vor einem Eincheck-Vorgang ausführen?

Festlegungen und Einhaltung durch Team- und Projektleitung notwendig Kein ungetesteter Code darf ausgeliefert werden Mindestmaß an Code Coverage muss eingehalten werden (85 % bilden einen guten Richtwert) Was passiert mit ungetestetem Code? Klare Zuständigkeit: Test- bzw. Qualitätszuständigkeit?

Projektleiter? Wer macht Integrations-, Oberflächen- Performancetests?

Rückgreifen auf existierende Angebote – z.B. Testserver-Farm

Page 13: Agiles Testen - Patrick Koglin

Was kann noch getan werden?

1310.04.23

Bitte, implementieren Sie einen einfachen (Scrum-) Entwicklungsprozess

Page 14: Agiles Testen - Patrick Koglin

Entwicklungs-Prozess definieren – nutzen von Quality GatesHier: Ein Weg von vielen…

1410.04.23

Entwickeln

Testen

Quality Gate One

Iterationsende

Oberflächentests

Performancetests

Integrationstests

Datensicherheits-tests

…tests

Individuell je nach Fachdomäne und Branche

Quality Gate Two

Freigabe des Software-Moduls

Obfuscating

Signierung

Deployment

Integration weiterer Softwarekomponente

n

Quality Gate Three

AbschlusstestsAbschlusstests

Funktioniert das Zusammenspiel mit allen

Komponenten?

Funktioniert das Zusammenspiel mit allen

Komponenten?

Funktioniert die Installation?

Funktioniert die Installation?

……

Diesen Prozess so kurz wie möglich halten

Page 15: Agiles Testen - Patrick Koglin

Ihre Testversion endet hier

10.04.23

www.agile-is-limit.de

http://twitter.com/AgileIsLimit

http://www.xing.com/profile/Patrick_Koglin2

Patrick KoglinSoftware Entwickler (B. Sc.)[email protected]