agiles testen - patrick koglin
Post on 14-Jan-2015
1.319 Views
Preview:
DESCRIPTION
TRANSCRIPT
Agiles Testen
17. November 2013 - Patrick Koglin
Gedankensammlung
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
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
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
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
Vorteile agiler Entwicklung
(Eleganter) Abschluss der AufgabenSchnelles FeedbackHohe MotivationNeue Aufgaben realisierbarQualität steigt mit jeder Iteration
610.04.23
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
Das (Entwickler-)Leben etwas leichter:Qualität wird fester Bestandteil des Entwicklungsprozesses
810.04.23
Überlegung
Programmierung
Programmierung
Integration
ProgrammierungTest
So, bitte nicht!
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
Wie geht es weiter?
1010.04.23
„Quality is everyone´s responsibility“
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“
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
Was kann noch getan werden?
1310.04.23
Bitte, implementieren Sie einen einfachen (Scrum-) Entwicklungsprozess
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
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.)info@koglin.net
top related