testen von software systematisch oder agil? - asqf.de · testen ist keine späte phase testen...

48
Testen von Software systematisch oder agil? Prof. Dr.-Ing. Andreas Spillner Hochschule Bremen Testing Day Baden-Württemberg 20.10.2011

Upload: others

Post on 26-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

Testen von Softwaresystematisch oder agil?

Prof. Dr.-Ing. Andreas SpillnerHochschule Bremen

Testing Day Baden-Württemberg20.10.2011

Page 2: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

2

Vorstellung meiner Person

Studium der Informatik an der TU Berlin Praxis Migrations- und Entwicklungsprojekte, Softwareentwicklung Promotion Universität Bremen seit 1993 Professor an der Hochschule Bremen Fakultät Elektrotechnik & Informatik Lehre Softwaretechnik, Qualitätssicherung Programmierung Forschung Softwaretechnik, Validation und Verifikation von Software, Testmethoden, Prozessmodelle GI-TAV Gründung der Fachgruppe »Test, Analyse und Verifikation von Software« und deren langjähriger Leiter GI-Fellow Ernennung 2007 GTB German Testing Board Gründungsmitglied* Ehrenmitglied seit 2010 ASQF Arbeitskreis Software-Qualität und Fortbildung Mitglied im ASQF-Beirat Leiter FG-SW-Test Norddeutschland* * bis Ende 2009

http

://w

ww

.info

rmat

ik.h

s-br

emen

.de/

spill

ner/

Page 3: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

3

Testen von Software

• Soll dazu beitragen, – Fehler vor dem Einsatz der Software zu finden– die Qualität der Software nachzuweisen– Vertrauen in die Software zu schaffen

• Softwaretest– meist ungeliebte Tätigkeit– selten anerkannt– kaum im Studium gelehrt

• Testen in der Praxis– hohe Bedeutung– 30-50% der Gesamtkosten der Entwicklung

Motivation

Page 4: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

4

Computer Zeitung

Umfrage unter 100 IT-Managern zum Gelingen von DV-Projekten

vom

10.

Apr

il 20

06

Motivation

Page 5: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

5

Ziel des Tests

• Durch stichprobenhafte Programmläufe – Nachweis der Erfüllung der

festgelegten Anforderungen

– Aufdeckung von eventuellen Abweichungen und Fehlern

– Dabei mit möglichst wenig Aufwand möglichst viele Anforderungen überprüfen bzw. Fehler nachweisen

• Systematisches Vorgehen

– kein »Ad-hoc«-Test

Stresstest

Motivation

Page 6: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011 - Softwaretest in der Praxis

• Wissenschaftliche Leitung

• Förderer

• Unterstützer

6

SystematischesTesten

2

Page 7: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011 - Softwaretest in der Praxis

• Umfangreiche rollenspezifische Umfragebogen (110 Fragen)– Projektleiter, Testmanager, QS-Beauftragte, Tester (110)– Business Analyst, Entwickler, Betrieb & Support, Andere (63)– Executive und mittleres Management (51)

• Ausfüllquote– 1623 haben die Umfrage begonnen (1779 aufgerufen)

810 haben die letzten Fragen beantwortet– 1008 Projektleiter, Testmanager, Tester ... (1092) 476– 394 Business Analyst, Entwickler, ... (421) 197– 221 Executive und mittleres Management (266) 137

• Einschätzung der Datenqualität– gut bis sehr gut, allein durch die hohe Anzahl der Beteiligung– hoher Ausbildungsgrad und Berufserfahrung– hohe Nutzung der Freitextmöglichkeit

7

http

://w

ww

.sof

twar

etes

t-um

frage

.de

(28.

9.20

11)

Page 8: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Vorgehensmodelle

• Fragen zu den in der Praxis verwendeten Vorgehensmodellen

8

SystematischesTesten

Page 9: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Vorgehensmodelle

• Fragen zu den in der Praxis verwendeten Vorgehensmodellen

9

SystematischesTesten

Page 10: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Vorgehensmodelle

• Fragen zu den in der Praxis verwendeten Vorgehensmodellen

10

SystematischesTesten

Page 11: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

11

funktionalerSystementwurf

technischerSystementwurf

Programmierung

Anforderungsdefinition

Komponenten-Spezifikation

Systemtest

Integrationstest

Abnahmetest

Komponententest

Testfälle basieren auf den entsprechenden Dokumenten

Tests

tufe

n

Konstruktionsphasen

Komponententest

Programmierung

Systemtest

Abnahmetest

Integrationstest Testen im Entwicklungsprozess - Allgemeines V-Modell

SystematischesTesten

Page 12: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

12

Umfrage 1997/2011: Prüf- und Testaktivitäten - wann?

http

://sy

stem

entw

ickl

ung-

arch

iv.bi

blio

thek

.info

rmat

ik.u

ni-k

oeln

.de/

arch

ive/

0000

0028

/ (28

.9.2

011)

SystematischesTesten

KORREKTURFAHNE

http

://w

ww

.Sof

twar

etes

t-um

frage

.de

(28.

9.20

11)

Wann werden Prüf- und Testaktivitäten durchgeführt?Wann wird damit angefangen?Gibt es Veränderungen in den letzten 15 Jahren?

Umfrage von 1997

Page 13: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

http

://sy

stem

entw

ickl

ung-

arch

iv.bi

blio

thek

.info

rmat

ik.u

ni-k

oeln

.de/

arch

ive/

0000

0028

/ (28

.9.2

011)

http

://w

ww

.Sof

twar

etes

t-um

frage

.de

(28.

9.20

11)

Wann werden Prüf- und Testaktivitäten durchgeführt?Wann wird damit angefangen?Gibt es Veränderungen in den letzten 15 Jahren?

Umfrage von 1997

Umfrage 1997/2011: Prüf- und Testaktivitäten - wann?

KORREKTURFAHNE

Page 14: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Testen ist keine späte Phase

Testen umfasst mehr als die Ausführung der TestfälleVorbereitende Aktivitäten:• Teststrategie ist festzulegen

– was soll wie intensiv mit welchen Methoden getestet werden• Planung der Testaktivitäten

– wer soll was, wann und wie lange testen• Testziele festlegen

– was soll erreicht bzw. durch Tests nachgewiesen werden• Review der Testbasis

– Kontrolle der Ausgangsdokumente für den Test• Testumgebung bereitstellen

– frühzeitig damit beginnen, um Verzögerungen zu vermeiden• Testfälle spezifizieren (bzw. Testideen festlegen)

– helfen auch bei der Implementierung als weitere InformationsquelleAlles kann parallel zu den Entwicklungsaktivitäten erfolgen!

14

SystematischesTesten

Page 15: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

W-Modell

• vor der Programmierung sind alle Testfälle spezifiziert• und ca. 75% der Testaktivitäten abgeschlossen

15

18

Durchführung Komponententest

Durchführung Integrationstest

Durchführung Systemtest

DurchführungAbnahmetest

Komponenten-spezifikation

technischer Systementwurf

funktionaler Systementwurf

Anforderungs- definition

VorbereitungKomponententest

VorbereitungIntegrationstest

VorbereitungSystemtest

VorbereitungAbnahmetest

debug

debug

debug

debug

Programmierung Änderung

Review, PREviews, Dokumente Testfälle, Testrahmen test, debug, ändern, re-test

Spi

llner

, Roß

ner,

Win

ter,

Linz

: Pra

xisw

isse

n S

oftw

aret

est -

Tes

tman

agem

ent

3. ü

bera

rbei

tete

und

erw

eite

rte A

ufla

ge, d

punk

t, 20

11, K

apite

l 3.4

W-M

odel

l

SystematischesTesten

Page 16: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

16

Umfrage 2011: Testprozess?

SystematischesTesten

Gibt es für die Durchführung der Testaktivitäten einen festgelegten Prozess?

Page 17: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

17

Umfrage 2011: Testprozess?

SystematischesTesten

Gibt es für die Durchführung der Testaktivitäten einen festgelegten Prozess?

}ca. 70%

Page 18: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

18

ISTQB - Testprozess

• Ist eng verzahnt mit der Softwareentwicklung– Ist jedoch ein eigenständiger Prozess

• Es ist ein verfeinerter Ablaufplan für die Tests jeder Teststufe notwendig

• Die Entwicklungsaufgabe »Test« ist in Arbeitsabschnitte aufzuteilen:– Testplanung und Steuerung– Testanalyse und Testentwurf– Testrealisierung und Testdurchführung– Bewertung und Bericht – Abschluss der Testaktivitäten

Planung und

Analyse und Entwurf

Realisierung und Durchführung

Abschluss

Beginn

Ende

Steuerung

Bewertung undBericht

ISTQ

B -

Lehr

plan

Cer

tifie

d Te

ster

- Fo

unda

tion

Leve

l 201

1

ISTQB - International Software Testing Qualifications Board

SystematischesTesten

Page 19: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Testprozess & W-Modell

Durchführung Komponententest

Durchführung Integrationstest

Durchführung Systemtest

DurchführungAbnahmetest

Komponenten-spezifikation

technischer Systementwurf

funktionaler Systementwurf

Anforderungs- definition

VorbereitungKomponententest

VorbereitungIntegrationstest

VorbereitungSystemtest

VorbereitungAbnahmetest

debug

debug

debug

debug

Programmierung Änderung

Plan

ung

und

Anal

yse

und

Des

ign

Rea

lisie

rung

und

D

urch

führ

ung

Abs

chlu

ss

Begi

nn

Ende

Steu

erun

g

Ausw

ertu

ng u

ndBe

richt

Pla

nung

und

Ana

lyse

und

Des

ign

Rea

lisie

rung

und

D

urch

führ

ung

Abs

chlu

ss

Beg

inn

End

e

Ste

ueru

ng

Aus

wer

tung

und

Ber

icht

Plan

ung

und

Anal

yse

und

Des

ign

Rea

lisie

rung

und

D

urch

führ

ung

Abs

chlu

ss

Begi

nn

Ende

Steu

erun

g

Ausw

ertu

ng u

ndBe

richt

Plan

ung

und

Anal

yse

und

Des

ign

Rea

lisie

rung

und

D

urch

führ

ung

Absc

hlus

s

Begi

nn

Ende

Steu

erun

g

Ausw

ertu

ng u

ndBe

richt

SystematischesTesten

Page 20: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Kenntnisse über Testmethoden

• Welche Testmethoden sind Ihnen bekannt?

• Welche werden von Ihren Testern angewendet?

• Wissen sie, wann sie welcheMethode sinnvoller Weiseanwenden können?

20

SystematischesTesten

A Te

st D

esig

n P

oste

r for

Sm

arte

r Tes

ting,

Pet

er Z

imm

erer

, EU

RO

Sta

r 200

5

Page 21: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Kenntnisse über Testmethoden

21

SystematischesTesten

Page 22: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Einsatz von Black-Box Testverfahren

• Welche Testentwurfsverfahren sind in der Praxis im Einsatz?

22

SystematischesTesten

Page 23: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Einsatz von Black-Box Testverfahren

• Welche Testentwurfsverfahren sind in der Praxis im Einsatz?

23

SystematischesTesten

Page 24: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Einsatz von White-Box Testverfahren

• Welche Testentwurfsverfahren sind in der Praxis im Einsatz?

24

SystematischesTesten

Page 25: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Systematisches Testen - Vor- & Nachteile

• Systematisches Vorgehen, – durch Einsatz des Testprozesses und – durch Auswahl von geeigneten Testmethoden

• Kriterien können vorab festgelegt (und deren Erreichen kontrolliert) werden, wenn das Testen als ausreichend anzusehen ist

• Testaktivitäten können frühzeitig beginnen und parallel bearbeitet werden

• Spezifikation der Testfälle komplettiert die Anforderungen und die weiteren Spezifikationen

• Ausführung der Testfälle erst bei vorhandenem Programm(teil)

• Änderungen der Anforderungen wirken sich auf die bereits spezifizierten Testfälle aus

• In der Regel werden mehr Testfälle spezifiziert als später ausgeführt

25

SystematischesTesten

Page 26: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

26

Agile, leichtgewichtige Prozesse

Manifesto for Agile Software Development

• Individuals and interactions – over processes and tools

• Working software – over comprehensive documentation

• Customer collaboration – over contract negotiation

• Responding to change – over following a plan

http

://ag

ilem

anife

sto.

org/

(28.

9.20

11)

AgilesTesten

Page 27: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Was zeichnet agiles Testen aus?

»Testen in agilen Projekten unterscheidet sich vom klassisches Testen in erster Linie dadurch, dass dieselben Tests viel häufiger ausgeführt werden müssen. Schließlich wird das System immer wieder geändert (Refactoring) und viel häufiger ausgeliefert. Daher lohnt sich die Automatisierung der Tests in agilen Projekten viel früher als in klassischen Projekten. Aus dieser essenziellen Bedeutung des Testens in agilen Projekten hat sich eine spezielle Perspektive auf Tests entwickelt: In agilen Projekten werden Tests als ausführbare Spezifikationen verstanden. Folgerichtig werden Tests in agilen Projekten vor dem getesteten Code erstellt (Test First). Konsequenterweise werden die Product-Owner direkt in die Erstellung der Akzeptanztests einbezogen. Diese Akzeptanztests sind Bestandteil der fachlichen Anforderungen.«

27

http

://w

ww

.it-a

gile

.de/

agile

s-te

sten

.htm

l (28

.9.2

011)

AgilesTesten

Page 28: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

TDD - Test Driven Development

28

Agile Softwareentwicklungsmethode für sehr kurze Entwicklungszyklen:

• Add a test• Run all tests and see if the new one fails• Write some code• Run the automted tests and see them succeed• Refactor codeRepeat

Rot - Grün - Refaktorisierung -Zyklus

http

://en

.wik

iped

ia.o

rg/w

iki/T

est-d

riven

_dev

elop

men

t (28

.9.2

011)

http

://w

ww

.agi

leda

ta.o

rg/e

ssay

s/td

d.ht

ml (

28.9

.201

1)

AgilesTesten

Page 29: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

TDD Vorteile

• Im Mittelpunkt für den Entwickler stehen die Anforderungen,sie müssen verstanden sein, bevor programmiert wird

• Frühzeitiges Testen findet Fehler frühzeitig im Entwicklungszyklus

• Kaum Redundanz durch Refaktorisierung• Kein »unnötiger« Code

• Einschränkung:• »Test-Driven Development is difficult to use in situations where

full functional tests are required to determine success or failure. Examples of these are user interfaces, programs that work with databases, and some that depend on specific network configurations.«

29

http

://en

.wik

iped

ia.o

rg/w

iki/T

est-d

riven

_dev

elop

men

t (28

.9.2

011)

AgilesTesten

Page 30: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

TDD - in Wikipedia

»Unit-Tests und mit ihnen getestete Units werden stets parallel entwickelt. Die eigentliche Programmierung erfolgt in kleinen und wiederholten Mikroiterationen. Eine solche Iteration, die nur wenige Minuten dauern sollte, hat drei Hauptteile:

1. Schreibe einen Test für das erwünschte fehlerfreie Verhalten, für schon bekannte Fehlschläge oder für das nächste Bröckelchen Funktionalität, das neu implementiert werden soll. Diese Tests werden vom bestehenden Programmcode erst einmal nicht erfüllt bzw. es gibt diesen noch gar nicht.

2. Ändere/schreibe diesen mit möglichst wenig Aufwand, bis nach dem anschließend angestoßenen Testdurchlauf alle Tests bestanden werden.

3. Räume dann im Code auf (Refactoring): Entferne Wiederholungen (Code-Duplizierung), abstrahiere wo nötig, richte ihn nach den verbindlichen Kodekonventionen aus etc. Natürlich wieder mit abschließendem Testen. Ziel des Aufräumens ist es, den Code schlicht und verständlich zu machen.

Diese drei Schritte werden so lange wiederholt, bis die inzwischen geschaffenen Tests alle bestanden werden und dem Entwickler keine sinnvollen weiteren mehr einfallen, die vielleicht noch scheitern könnten. Die so behandelte programmtechnische Einheit (Unit) wird dann als (vorerst) fertig angesehen.«

30

http

://de

.wik

iped

ia.o

rg/w

iki/T

estg

etrie

bene

_Ent

wic

klun

g (2

8.9.

2011

)

AgilesTesten

Page 31: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

TDD Sichtweisen

• Design Methode:»Die Tests noch vor den Komponenten zu schreiben, die man eigentlich testen möchte, ist sehr markant für TDD. Dies wird als Test-First bezeichnet und darum ist TDD keine Test-, sondern eine Design-strategie. Denn wird der Test zuerst ge-schrieben, so wird die Schnittstelle der zu testenden Komponente bereits benutzt, bevor sie tatsächlich existiert. Der Entwickler bekommt frühestmöglich Feedback, ob das Design auch verwendbar sein wird.«

• Die Testfälle sind eher Beispiele für die Nutzung der Schnittstelle, deshalb wird auch von Example Driven Development gesprochen

31

http

://w

ww

.it-a

gile

.de/

was

isttd

d.ht

ml (

28.9

.201

1)

AgilesTesten

Page 32: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

32

Testgetriebene Entwicklung

• Stellt das Testen an den Anfang

... aber allzu oft ist der»Grüne Balken« das Testziel

• in Kombination mit systematischer Herleitung der Testfälle eine sinnvolle Vorgehensweise

... aber auch nicht für alle Projekte gleich gut geeignet!

AgilesTesten

Page 33: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Agiles Testen - Vor- & Nachteile

• Testen hat an Bedeutung gewonnen!• Testen ist keine späte Phase!• Durch die Testfallerstellung werden Schnittstellen festgelegt

• Testfälle ersetzten die Spezifikation• Testfälle werden nicht systematisch hergeleitet• nachvollziehbare Endekriterien sind nicht gegeben• Ein mit TDD erstelltes System ist kein »getestetes« System!

33

AgilesTesten

Page 34: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: agile Vorgehensweisen

• Welche agilen Vorgehensweisen werden in der Praxis genutzt?

34

Umfrage

Page 35: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: agile Vorgehensweisen

• Welche agilen Vorgehensweisen werden in der Praxis genutzt?

35

Umfrage

Page 36: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Verantwortlich für die QS?

• Wer ist im Unternehmen für die QS verantwortlich?

36

Umfrage

Page 37: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Verantwortlich für die QS?

• Wer ist im Unternehmen für die QS verantwortlich?

37

Umfrage

Page 38: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Kundenbeteiligung

• Sind die Kunden bei den agilen Vorgehensweisen mit »im Boot«?

38

Umfrage

Page 39: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Kundenbeteiligung

• Sind die Kunden bei den agilen Vorgehensweisen mit »im Boot«?

39

Umfrage

Page 40: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Agile Praktiken und QS

• Welche Praktiken der agilen Vorgehensweisen haben eine hohe Bedeutung im Hinblick auf die Qualitätssicherung?

40

Umfrage

Page 41: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Agile Praktiken und QS

• Welche Praktiken der agilen Vorgehensweisen haben eine hohe Bedeutung im Hinblick auf die Qualitätssicherung?

41

Umfrage

Page 42: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Testautomatisierung

• Wie hoch ist der Grad der Automatisierung auf den Teststufen?

42

Umfrage

Page 43: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Testautomatisierung

• Wie hoch ist der Grad der Automatisierung auf den Teststufen?

43

Umfrage

Page 44: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Qualität der entwickelten Software

• Produzieren agile Projekte bessere Qualität?

44

Umfrage

Page 45: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: Qualität der entwickelten Software

• Produzieren agile Projekte bessere Qualität?

45

Umfrage

Page 46: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Umfrage 2011: www.softwaretest-umfrage.de

• Weitere Informationen zur Umfrage

46

Umfrage

Page 47: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

20.10.2011 © Prof. Dr.-Ing. Andreas Spillner

Motivation

SystematischesTesten

Agiles Testen

Umfrage

Resümee

Resümee

• Konkretes Vorgehen– Iterativ (kleine Vs oder besser kleine Ws für jede Iteration)– Testautomatisierung von Anfang an vorsehen– Agiles Vorgehen mit systematischer Herleitung der Testfälle

verknüpfen– Entwickler für das Testen motivieren ggf. schulen– frühzeitige Klärung, wann ausreichend genug getestet ist

• Passendes Vorgehen zum jeweiligen Projekt

• There is no silver bullet!

47

Resümee

Page 48: Testen von Software systematisch oder agil? - asqf.de · Testen ist keine späte Phase Testen umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: • Teststrategie

Testen von Softwaresystematisch oder agil

und

Prof. Dr.-Ing. A. SpillnerHochschule BremenFlughafenallee 10D - 28199 Bremen

[email protected]/spillner

Ihre Fragen bitte