testen mit, durch und in scrum

Post on 19-Jun-2015

467 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Scrum ist gelebtes Qualitätsmanagement und zum Qualitätsmanagement gehört das Testen. Wie genau spielt das Testen in Scrum mit? Welche Arten und Stufen von Tests gibt es und wie können diese den Scrum Prozess unterstützen oder sogar behindern? Was machen Teams hierbei gerne falsch und können klassische Testverfahren behilflich sein die Qualität zu verbessern? Diese Fragen werden in dem Vortrag diskutiert, beantwortet und bewertet.

TRANSCRIPT

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

Frank Düsterbeck

frank.duesterbeck@HEC.de

@fduesterbeck

de.slideshare.net/fduesterbeck

top related