Testen mit, durch und in Scrum
-
Upload
frank-duesterbeck -
Category
Software
-
view
467 -
download
2
description
Transcript of Testen mit, durch und in Scrum
Frank Düsterbeckde.slideshare.net/fduesterbeck
@fduesterbeck
Testen mit, durch
und in Scrum
(De)-Motivation
Komplexität heutiger
Software schwer
beherrschbar
Anforderungsdynamik
Heutzutage schwer
beherrschbar
Quelle: Carl Dichter and Chris Tynes, JavaWorld.com, 06/01/97
Quelle: Wikipedia
scrum
prince2
rup
bpmn
eclipse
c#
aspectj
visual studio
jsf
uml
git
jubula
asp.net
asp mvc
spring
tfs
ejb
nunit
subversion
fitnesse
jboss
iis
clean code
tpl
usability
linq
wcf
birtant
maven
kanban
xp
user stories
azure
gwt
hibernate
migration
atdd
appssharepoint
dms
codedui
wpf
junit
tabrisrap
vaadin
jira
bugzillahpqc
testopia
seleniumjenkins
wf
c++
html5
javascript
css
design
php
javasecurity
netweaver
testcomplete
redmine
cucumber
hybris
typo3 sql server
oraclemysql
postgresql
bdd
Und wie schaff ich es Qualität zu erzeugen wenn alles so komplex und dynamisch ist?
Nicht durch Testenallein!
Aber es hilft schonmal!
Qualität
ist der Grad,
in dem Merkmale
einer Sache
Anforderungen erfüllen
Was ist gute Qualität?
Interne Qualität (Lieferantensicht)
Einfachheit, Wartbarkeit, Erweiterbarkeit
Fehlerfreiheit
Dokumentation, Architekturen, Programmcode
Prozesse, Methoden
Basis für...
Externe Qualität (Kundensicht)
Zufriedenheit, Erwartung
Erfüllung der Anforderungen
Funktionsumfang
Usability
Fehlerfreiheit
Audit
DIN ISO/IEC 25000 Software engineering
Software product Quality Requirements and Evaluation (SQuaRE)
Qualitätskriterien und Bewertung von Softwareprodukten
Funktionalität
Zuverlässigkeit
Wartbarkeit
Benutzbarkeit
AusgereiftheitVerfügbarkeitFehlertoleranz
Wiederherstellbarkeit
VollständigkeitKorrektheit
Angemessenheit
Effizienz
AntwortzeitverhaltenRessourcenverbrauch
Kapazität
AngemessenheitErlernbarkeitBedienbarkeitFehlertoleranz
ÄsthetikBarrierefreiheit
VertraulichkeitIntegrität
NachweisbarkeitVerantwortlichkeit
Authentizität
Sicherheit
KoexistenzInteroperabilität
Kompatibilität
Übertragbarkeit
AnpassungsfähigkeitInstallierbarkeit
Austauschbarkeit
ModularitätWiederverwendbarkeit
AnalysierbarkeitModifizierbarkeit
PrüfbarkeitProdukt Qualität
ISO 25010
… und das soll ich jetzt alles testen oder was?
Ja!
Boah! Tut das echt Not?
Ja!$ !?!
… und was für Testarten gibt es da so?
TESTARTENE2E-Test
Benutzbarkeitstest
StresstestPerformancetest
Statischer TestUnit Test
Regressionstest
CodereviewArchitekturreview
Nachtest
Penetrationstest
Sicherheitstest
Usabilitytest
Installationstest
Schnittstellentest
Abnahmetest
Integrationstest
Akzeptanztest
Funktionstest
Fehlerfindung:
Es sollen mögliche Fehler gefunden werden,
bevor die Software eingesetzt wird
Qualitätsnachweis:
Es soll nachgewiesen werden, dass sich die
Software konform zu den Anforderungen
verhält
Test
en
Ein Bug darf keinen Sonnenuntergang erleben!
TESTZIEL
TESTSTUFE
TESTART
erreichen in
testen mittels
Gebrauchstauglichkeit AkzeptanztestLasttestSchnittstellentest
Funktion ist richtig umgesetztSystem ist schnellSchnittstelle funktioniert
?
TeststufenAnforderungen
Funktionaler Entwurf
Technischer Entwurf
Komponenten Spezifikation
Entwicklung
Modultest
Performance-Test
Systemtest
AbnahmetestAkzeptanztest
Integrations-test
ZIEL
Scrum
AnforderungenEntwurf
Programmierung Test
Noch Water Scrum:
Was soll das heißen: „Testen ist integraler Bestandteil der Entwicklung“?
Es war einmal …… ein Team
… ein Team ?
T
Team Orangerot 1
UnittestProgrammierung
TestDurchführung
Testfall-erstellung
Fixing
FeatureFreeze
UnittestProgrammierung
TestDurchführung
Testfall-erstellung
Fixing
FeatureFreeze
Fixing
FeatureFreeze
LasttestdurchführungSystemtestdurchführung
Explore Explore
Team Orangerot 1
Das geht so nicht – wir müssen den Test entzerren!
Team Feuerrot
UnittestProgrammierung
Testfall-erstellung
Fixing
UnittestProgrammierung
Test-durchführung
Fixing
FeatureFreeze
LasttestdurchführungSystemtestdurchführung
Explore
GUI-Automatisierung
Fixing
Testfall-erstellung
Team Feuerrot
OK, is klar!Wir machen jetzt doch alles in einem Sprintund wir automatisieren, damit es am Ende nicht so eng wird!
AUTOMATISIEREN
WARUM?
Projektlaufzeit
Testaufwand
niedrig
hoch
AUTOMATISIEREN
DARUM!… und natürlich weil nicht alles manuell geht
(Lasttests, Performancetests, Schnittstellentests, …)
UnittestProgrammierung
Fix
GUI-Automatisierung
Fixing
FeatureFreeze
LasttestdurchführungSystemtestdurchführung
Explore
Explore
GUI-Automatisierung
UnittestProgrammierung
Fix
Explore
Team Orangerot 2
TestDurchführung
Testfall-erstellung
TestDurchführung
Testfall-erstellung
Das ist hier die Frage
GUI oder nicht
GUI
Projektlaufzeit
Test-
automatisierungs-
aufwand
niedrig
hoch
Testautomatisierung
Explorativ
System-, Performancetest
Akzeptanztest
Unit-, Integrationstest
Manuell
Automatisiert
GUI-Automatisierung immer bewusst machen und niemals alles!
GUI-Automatisierung
GF 3 GF 4.1 GF 1.2 GF 1.1 GF 5
Aufwand
Risiko
GF 7
hochniedrig
niedrig
hoch
Team Orangerot 2
OK OK, wir automatisieren also ganz viel Akzeptanztests und nur wichtige GUI-Tests!
Akzeptanz……wie geht das in Scrum?
Wer sichert die Qualität der Anforderungen?
Definition of Ready
Quality Gatefür
User Stories
*Haben nicht den Anspruch Anforderungen umfassend zu dokumentieren
Card
Conversation
*Abwehr
Als Fußballverein möchte eine gute Abwehr habendamit ich wenig Tore reinkrieg
Confirmation
Confirmation
Akzeptanzkriterien (Testbasis)
Herstellung der Messbarkeit
DoR Story bereit zur Umsetzung
DoD Abnahme der Story
… und wie erzeuge ich gute Akzeptanzkriterien?
Conversation
ATDD
Conversation
BDD
VERHALTEN
TREIBT
ENTWICKLUNG
BEHAVIOR
DRIVEN
DEVELOPMENT
UBIQUITÄRE SPRACHEGHERKIN
ALLE VERSTEHEN ES
SZENARIEN MIT
GIVEN WHEN THENANGENOMMEN WENN DANN
Akzeptanzkriterien
Szenario: Zwei Zahlen addierenAngenommen die erste Zahl ist 50Und die zweite Zahl ist 80Wenn ich addieren auswähleDann muss das Ergebnis 130 sein
Szenario: Drei Zahlen addierenAngenommen die erste Zahl ist 50Und die zweite Zahl ist 80Und die dritte Zahl ist 20Wenn ich addieren auswähleDann muss das Ergebnis 150 sein
… und das geht auch automatisiert?
Wie denn?
Client
View
ModelBusinesslogik
Controller
Ressourcen
Request
Response
Select
??
Addieren
Als Benutzermöchte ich Zahlen addieren könnendamit ich Zeit beim Rechnen spare
User Story schreiben
Akzeptanzkriterien ausarbeiten
Glue Code schreiben
Unittest Code schreiben
Code schreiben
ReadyDone
[Then(@"the result should be (.*) on the screen")]public void ThenTheResultShouldBeOnTheScreen(decimal p0){
Assert.AreEqual(p0, result);}
Assert.AreEqual(130, calculator.result);
User Story schreiben
Akzeptanzkriterien ausarbeiten
Glue Code schreiben
Unittest Code schreiben
Code schreiben
Fachbereich und Anforderungsmanager haben eine einfache Sprache, ...
… Anforderungsmanager, Entwickler und Tester müssen jetzt eng zusammenarbeiten, …
… die Entwickler können dann direkt gegen das erwartete Verhalten (den Test) entwickeln, …
… alle kriegen sofort eine Rückmeldung, ob sie alles richtig gemacht haben, …
… und am Ende braucht man nicht mehr soviel testen!!!
BDD ist toll! Ist das denn die Lösung für alles?
Ina Einemann (HEC GmbH)BDD - die Lösung aller Probleme?
Nö!
Geht denn auch GUI-Automatisierung und testgetriebene Entwicklung?
Björn Seebeck (HEC GmbH)Jubula im Softwareentwicklungsprozess
Jo!
Team Orange
UnittestProgrammierung
Autom. Akzeptanztests
Fix
GUI-Automatisierung
Fixing
FeatureFreeze
LasttestdurchführungSystemtestdurchführung
Explore
Explore
GUI-Automatisierung
UnittestProgrammierung
Autom. Akzeptanztests
Fix
Explore
Wann finden denn Performancetests statt?
Immer, kontinuierlich und so früh wie möglich.
So früh wie möglich.
Warum brauch ich eigentlich noch Systemtests wenn ich doch Akzeptanztests habe?
Unsere Akzeptanztests haben meistens den Fokus auf die User Stories Ziel: Nutzen bestätigen
Systemtests sind oft End-to-End-Tests. Wenn wir die nicht haben könnten Lücken entstehen! Ziel: Fehler finden
Team Orange
Herrje!Dann machen wir den System- und Performancetest eben parallel!
Aber dafür brauchen wir ein extra Team!
Team Gelb
UnittestProgrammierung
Autom. Akzeptanztests
Fix Fixing
Explore
Explore
UnittestProgrammierung
Autom. Akzeptanztests
Fix
ExploreGUI-Automatisierung
Last- / Systemtest
$ !?!
Team Gelb
Team Grün
UnittestProgrammierung
Autom. Akzeptanztests
Fix Fixing
Explore
Explore
UnittestProgrammierung
Autom. Akzeptanztests
Fix
GUI- / Last- / Systemtest ExploreGUI- / Last- / Systemtest
Team Grün
Jetzt ist alles schön. So machen wir für immer weiter!
Team Rosa
OK!!!
Wir bleibendran!
PLAN
DOCHECK
ACT
ScrumBDD ATDD
eXtremeSoziale Kompetenz
Grundlage für Team Grün
Und wie macht man das dann mit mehreren Teams?
Product Owner
Scrum Master
Community of practice
Scrum of Scrums
Head ofPO
Teststrategie
Fazit
Team ?
DevelopStories
Test Stories
Test Issues
Fixing
Acc
ep
tan
ceTe
stR
egr
ess
ion
Test
DevelopStories
Test Stories
Test Issues
Fixing
Acc
ep
tan
ceTe
stR
egr
ess
ion
Test
DevelopStories
Test Stories
Test Issues
Fixing
Acc
ep
tan
ceTe
stR
egr
ess
ion
Test