SlideShare ist ein Scribd-Unternehmen logo
1 von 68
Downloaden Sie, um offline zu lesen
Frank Düsterbeck
de.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
apps
sharepoint
dms
codedui
wpf
junit
tabrisrap
vaadin
jira
bugzillahpqc
testopia
seleniumjenkins
wf
c++
html5
javascript
css
design
php
java
security
netweaver
testcomplete
redmine
cucumber
hybris
typo3 sql server
oracle
mysql
postgresql
bdd
Und wie schaff ich
es Qualität zu
erzeugen wenn
alles so komplex
und dynamisch ist?
Nicht durch Testen
allein!
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
Ausgereiftheit
Verfügbarkeit
Fehlertoleranz
Wiederherstellbarkeit
Vollständigkeit
Korrektheit
Angemessenheit
Effizienz
Antwortzeitverhalten
Ressourcenverbrauch
Kapazität
Angemessenheit
Erlernbarkeit
Bedienbarkeit
Fehlertoleranz
Ästhetik
Barrierefreiheit
Vertraulichkeit
Integrität
Nachweisbarkeit
Verantwortlichkeit
Authentizität
Sicherheit
Koexistenz
Interoperabilität
Kompatibilität
Übertragbarkeit
Anpassungsfähigkeit
Installierbarkeit
Austauschbarkeit
Modularität
Wiederverwendbarkeit
Analysierbarkeit
Modifizierbarkeit
Prüfbarkeit
Produkt 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?
TESTARTEN
E2E-Test
Benutzbarkeitstest
Stresstest
Performancetest
Statischer Test
Unit 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


Testen
Ein Bug
darf keinen
Sonnenuntergang
erleben!
TESTZIEL
TESTSTUFE
TESTART
erreichen in
testen mittels
Gebrauchstauglichkeit
Akzeptanztest
Lasttest
Schnittstellentest
Funktion ist richtig umgesetzt
System ist schnell
Schnittstelle funktioniert
?
Teststufen
Anforderungen
Funktionaler
Entwurf
Technischer
Entwurf
Komponenten
Spezifikation
Entwicklung
Modultest
Performance-
Test
Systemtest
Abnahmetest
Akzeptanztest
Integrations-
test
ZIEL
Scrum
Anforderungen
Entwurf
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
Unittest
Programmierung
Test
Durchführung
Testfall-
erstellung
Fixing
Feature
Freeze
Unittest
Programmierung
Test
Durchführung
Testfall-
erstellung
Fixing
Feature
Freeze
Fixing
Feature
Freeze
Lasttestdurchführung
Systemtestdurchführung
Explore Explore
Team Orangerot 1
Das geht so nicht – wir
müssen den Test
entzerren!
Team Feuerrot
Unittest
Programmierung
Testfall-
erstellung
Fixing
Unittest
Programmierung
Test-
durchführung
Fixing
Feature
Freeze
Lasttestdurchführung
Systemtestdurchführung
Explore
GUI-Automatisierung
Fixing
Testfall-
erstellung
Team Feuerrot
OK, is klar!
Wir machen jetzt doch
alles in einem Sprint
und 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, …)
Unittest
Programmierung
Fix
GUI-Automatisierung
Fixing
Feature
Freeze
Lasttestdurchführung
Systemtestdurchführung
Explore
Explore
GUI-Automatisierung
Unittest
Programmierung
Fix
Explore
Team Orangerot 2
Test
Durchführung
Testfall-
erstellung
Test
Durchfü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 Gate
für
User Stories
*Haben nicht den Anspruch Anforderungen umfassend zu dokumentieren
Card
Conversation
*Abwehr
Als Fußballverein
möchte eine gute Abwehr haben
damit 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 SPRACHE
GHERKIN
ALLE VERSTEHEN ES
SZENARIEN MIT
GIVEN WHEN THEN
ANGENOMMEN WENN DANN
Akzeptanzkriterien
Szenario: Zwei Zahlen addieren
Angenommen die erste Zahl ist 50
Und die zweite Zahl ist 80
Wenn ich addieren auswähle
Dann muss das Ergebnis 130 sein
Szenario: Drei Zahlen addieren
Angenommen die erste Zahl ist 50
Und die zweite Zahl ist 80
Und die dritte Zahl ist 20
Wenn ich addieren auswähle
Dann muss das Ergebnis 150 sein
… und das geht auch
automatisiert?
Wie denn?
Client
View
Model
Businesslogik
Controller
Ressourcen
Request
Response
Select
?
?
Addieren
Als Benutzer
möchte ich Zahlen addieren können
damit ich Zeit beim Rechnen spare
User Story schreiben
Akzeptanzkriterien ausarbeiten
Glue Code schreiben
Unittest Code schreiben
Code schreiben
Ready
Done
[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
Unittest
Programmierung
Autom. Akzeptanztests
Fix
GUI-Automatisierung
Fixing
Feature
Freeze
Lasttestdurchführung
Systemtestdurchführung
Explore
Explore
GUI-Automatisierung
Unittest
Programmierung
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
Unittest
Programmierung
Autom. Akzeptanztests
Fix Fixing
Explore
Explore
Unittest
Programmierung
Autom. Akzeptanztests
Fix
ExploreGUI-Automatisierung
Last- / Systemtest
$ !?!

Team Gelb
Team Grün
Unittest
Programmierung
Autom. Akzeptanztests
Fix Fixing
Explore
Explore
Unittest
Programmierung
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
bleiben
dran!
PLAN
DOCHECK
ACT
Scrum
BDD ATDD
eXtreme
Soziale 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 of
PO
Teststrategie
Fazit
Team ?
Develop
Stories
Test
Stories
Test
Issues
Fixing
Acceptance
Test
Regression
Test Develop
Stories
Test
Stories
Test
Issues
Fixing
Acceptance
Test
Regression
Test
Develop
Stories
Test
Stories
Test
Issues
Fixing
Acceptance
Test
Regression
Test
Frank Düsterbeck
frank.duesterbeck@HEC.de
@fduesterbeck
de.slideshare.net/fduesterbeck

Weitere ähnliche Inhalte

Was ist angesagt?

Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 

Was ist angesagt? (20)

Progressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.io
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Cypress testing
Cypress testingCypress testing
Cypress testing
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
 
Cypress
CypressCypress
Cypress
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
Need for automation testing
Need for automation testingNeed for automation testing
Need for automation testing
 
テストの組み立て方
テストの組み立て方テストの組み立て方
テストの組み立て方
 
Chapter 3 - Test Automation
Chapter 3 - Test AutomationChapter 3 - Test Automation
Chapter 3 - Test Automation
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
Unit testing
Unit testingUnit testing
Unit testing
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 

Ähnlich wie Testen mit, durch und in Scrum

Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Christian Güdemann
 

Ähnlich wie Testen mit, durch und in Scrum (20)

Dev ops testautomatisierer bei Technosoft
Dev ops testautomatisierer bei TechnosoftDev ops testautomatisierer bei Technosoft
Dev ops testautomatisierer bei Technosoft
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht SpaßWhitepaper QF-Test: GUI Testautomatisierung macht Spaß
Whitepaper QF-Test: GUI Testautomatisierung macht Spaß
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
Codeception VisualCeption
Codeception VisualCeptionCodeception VisualCeption
Codeception VisualCeption
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Was Manager über agile Entwicklungspraktiken wissen müssen
Was Manager über agile Entwicklungspraktiken wissen müssenWas Manager über agile Entwicklungspraktiken wissen müssen
Was Manager über agile Entwicklungspraktiken wissen müssen
 
XPages Full HD
XPages Full HDXPages Full HD
XPages Full HD
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
Advanced Continuous Integration
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous Integration
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 
Hightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenHightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign Testen
 
Scrum und Agile Software Entwicklung
Scrum und Agile Software EntwicklungScrum und Agile Software Entwicklung
Scrum und Agile Software Entwicklung
 

Mehr von Frank Düsterbeck

Mehr von Frank Düsterbeck (11)

Meine! Deine! Keine! Verantwortung in agilen Teams
Meine! Deine! Keine! Verantwortung in agilen TeamsMeine! Deine! Keine! Verantwortung in agilen Teams
Meine! Deine! Keine! Verantwortung in agilen Teams
 
DoPI – endlich Projekte vernünftig starten mit der Definition of Project Init...
DoPI – endlich Projekte vernünftig starten mit der Definition of Project Init...DoPI – endlich Projekte vernünftig starten mit der Definition of Project Init...
DoPI – endlich Projekte vernünftig starten mit der Definition of Project Init...
 
Agil ist nicht genug
Agil ist nicht genugAgil ist nicht genug
Agil ist nicht genug
 
Selbstorganisierte agile Teams
Selbstorganisierte agile TeamsSelbstorganisierte agile Teams
Selbstorganisierte agile Teams
 
Adaptionsfähige Organisationen - SEACON
Adaptionsfähige Organisationen - SEACONAdaptionsfähige Organisationen - SEACON
Adaptionsfähige Organisationen - SEACON
 
Hurra wir werden agil - aber wie?
Hurra wir werden agil - aber wie?Hurra wir werden agil - aber wie?
Hurra wir werden agil - aber wie?
 
Willkommen in der Postmoderne - Organisation und Führung im Innovationswettbe...
Willkommen in der Postmoderne - Organisation und Führung im Innovationswettbe...Willkommen in der Postmoderne - Organisation und Führung im Innovationswettbe...
Willkommen in der Postmoderne - Organisation und Führung im Innovationswettbe...
 
Anforderungen haben immer Schuld
Anforderungen haben immer SchuldAnforderungen haben immer Schuld
Anforderungen haben immer Schuld
 
Die Zusammenarbeit des Scrum-Teams – Soziale Herausforderungen als Chance und...
Die Zusammenarbeit des Scrum-Teams – Soziale Herausforderungen als Chance und...Die Zusammenarbeit des Scrum-Teams – Soziale Herausforderungen als Chance und...
Die Zusammenarbeit des Scrum-Teams – Soziale Herausforderungen als Chance und...
 
GPM Vortrag: Modernes Management von Softwareprojekten
GPM Vortrag: Modernes Management von SoftwareprojektenGPM Vortrag: Modernes Management von Softwareprojekten
GPM Vortrag: Modernes Management von Softwareprojekten
 
Planlos mit Plan
Planlos mit PlanPlanlos mit Plan
Planlos mit Plan
 

Testen mit, durch und in Scrum