46
Seite 2 Motivation und Überblick iks-Thementag : „Wer testet, ist feige“ 24.06.2009 Autor: Christoph Schmidt-Casdorff Carsten Schädel

Softwaretests: Motivation und Überblick

Embed Size (px)

DESCRIPTION

Häufig kommt in der Anwendungsentwicklung das Testen zu kurz. Dabei bietet sich ein enormes Einsparpotenzial, wenn Fehler bereits während der Entwicklungsphase und nicht erst nach Inbetriebnahme erkannt und behoben werden.

Citation preview

Page 1: Softwaretests: Motivation und Überblick

Seite 2

Motivation und Überblick

iks-Thementag : „Wer testet, ist feige“

24.06.2009

Autor:

Christoph Schmidt-Casdorff

Carsten Schädel

Page 2: Softwaretests: Motivation und Überblick

Seite 3

Agenda

Einführung

Auf welcher Ebene wird getestet – testing level

Was wird getestet– testing categories

Wie wird getestet – testing methods and tools

Alles zusammen – test execution

Page 3: Softwaretests: Motivation und Überblick

Seite 4

Fehler in Software

Mythos: Software ist fehlerfrei

– ist nicht nachweisbar

– Testen findet Fehler, weist nicht deren Abwesenheit nach

Mythos: Qualität meint a priori für Jeden dasselbe

– es gibt unterschiedliche Dimensionen

• Funktionalität, Performance, …

– Qualität muss festgelegt werden

– Qualität ist keine Eigenschaft, sondern eine Metrik

Mythos: Qualität ‚geschieht‘ von selbst

– das Ziel ‚Qualität‘ muss Bestandteil des Entwicklungsprozess sein

Page 4: Softwaretests: Motivation und Überblick

Seite 5

Fehler in Software

Je später ein Fehler entdeckt wird, desto teurer wird dessen

Behebung

63 % der Fehler stammen aus Analyse/Design [Perry2000]

– viele Fehler sind früh zu erkennen

Quelle: [McConnell2004]

Page 5: Softwaretests: Motivation und Überblick

Seite 6

Fehler in Software: Quintessenz

Es muss getestet werden

… so früh wie möglich

Qualitätskriterien müssen festgelegt werden

Qualität ist Bestandteil des Entwicklungsprozesses

Page 6: Softwaretests: Motivation und Überblick

Seite 7

Wo sind wir

Einführung

Auf welcher Ebene wird getestet – testing level

Was wird getestet– testing categories

Wie wird getestet – testing methods and tools

Alles zusammen – test execution

Page 7: Softwaretests: Motivation und Überblick

Seite 8

Testebene

Granularität des zu testenden Systems

– (target-of-test)

in Reihenfolge in abnehmender Granularität

– Unit testing

– Integration testing

– System testing

– Acceptance testing

Page 9: Softwaretests: Motivation und Überblick

Seite 10

Unit / Component testing

Unit ist die kleinste zu testende Softwareeinheit

– kann kompiliert, gelinkt, geladen werden …

– Klassen, Interfaces, Prozeduren, ….

wird durch Entwicklung erstellt

– buddy testing

• Testen und Entwicklung durch verschiedene Personen

Page 10: Softwaretests: Motivation und Überblick

Seite 11

Integrationstest I

fasst Units und Module zu sinnvollen Testgruppen zusammen

– setzt sich aus unterschiedlichen Quellen zusammen

• Libraries, Subsysteme, Module, …

testet Kollaboration

Integrationstests verdichten schrittweise

– bis das Gesamtsystem abgedeckt ist

Page 11: Softwaretests: Motivation und Überblick

Seite 12

Integrationstest II

wird durch Entwicklung durchgeführt

– Buddy testing

Testmethoden vergleichbar zu Unit testing

Page 12: Softwaretests: Motivation und Überblick

Seite 13

Systemtest I

testet vollständiges System

– vollständige Kollaboration aller Komponenten

– Integration mit externen Systemen

beinhaltet nicht-funktionale Tests

– Performance, Last, …..

Page 13: Softwaretests: Motivation und Überblick

Seite 14

Systemtest II

verifiziert Umsetzung

– Abgleich mit Designspezifikation

wird durch Testteam durchgeführt

wird auf spezieller Umgebung durchgeführt

Page 14: Softwaretests: Motivation und Überblick

Seite 15

Abnahmetest I

…. auch als Acceptancetest bezeichnet

testet, ob das System die Anforderungen erfüllt,

– aus Sicht des Kunden / Auftraggebers

– entscheidender Teil der Abnahme

umfasst i.d.R. nicht-funktionale Tests

– Performance, Last , ….

umfasst das Gesamtprodukt

– inkl. Dokumentation, …

Page 15: Softwaretests: Motivation und Überblick

Seite 16

Abnahmetest II

wird durch Kunde / Auftraggeber durchgeführt

wird in produktionsnaher/-identischer Umgebung ausgeführt

Page 16: Softwaretests: Motivation und Überblick

Seite 17

Regressionstest

testet, ob eine Fehlerbehebung unerwartete Auswirkungen hat

ist ein andauernder Prozess

– über den gesamten Testlebenszyklus

– umfasst alle Testebenen

wird bei jeder Programmänderung durchgeführt

Page 17: Softwaretests: Motivation und Überblick

Seite 18

Smoke Test I

ist ein Gesundheitscheck des System

– angestoßen i.d.R. durch den Bau des Systems (system build)

– Synonym: build verification test

ist Verfahren während der Entwicklung

– evtl. Fehler werden sofort behoben

ist ein Typ eines Regressionstests

Page 18: Softwaretests: Motivation und Überblick

Seite 19

Smoke Test II

beinhaltet oft eine aussagekräftige Teilmenge aller Tests

– alle Tests sprengen das mögliche Zeitfenster

gängige Verfahren sind

– daily build

– build on check-in

Page 19: Softwaretests: Motivation und Überblick

Seite 20

Continuous Integration

im Team wird Software häufig integriert

– mindestens 1x täglich

– jede Integration wird durch Build verifiziert

bedarf Werkzeugunterstützung

ist Entwicklungsverfahren

Verfahren für Smoke Test bei build on check-in

Page 20: Softwaretests: Motivation und Überblick

Seite 21

Wo sind wir

Einführung

Auf welcher Ebene wird getestet – testing level

Was wird getestet– testing categories

Wie wird getestet – testing methods and tools

Alles zusammen – test execution

Page 21: Softwaretests: Motivation und Überblick

Seite 22

Dimensionen der Qualität

Funktionalität (functionality)

Benutzungsfreundlichkeit (usability)

Zuverlässigkeit (reliability)

Performance

Pflegbarkeit (supportability / maintainability )

Page 22: Softwaretests: Motivation und Überblick

Seite 23

Tests für Funktionalität

Fachliche Korrektheit

Sicherheit

Anforderungen an Mengengerüste

Page 23: Softwaretests: Motivation und Überblick

Seite 24

Tests für Benutzungsfreundlichkeit

Interaktion „Mensch-System“

Ästhetische Aspekte

Ergonomische Aspekte

Online- und context-sensitive Hilfe

Benutzerdokumentation

Page 24: Softwaretests: Motivation und Überblick

Seite 25

Tests für Zuverlässigkeit

Integritätstest

– Kompatibilität

Strukturtest auf

– Quellcode

– Webseiten

Robustheitstest

– Wiederanlauffähigkeit

Page 25: Softwaretests: Motivation und Überblick

Seite 26

Tests für Performance

Benchmarking

Test auf konkurrierender Nutzung

– Anzahl der Nutzer

Lasttests

Stresstest

– Verhalten des Systems unter Extrembedingungen

Page 26: Softwaretests: Motivation und Überblick

Seite 27

Tests für Pflegbarkeit

Konfigurationstest

– Unterstützung unterschiedlicher Laufzeitumgebungen

Installationstest

Page 27: Softwaretests: Motivation und Überblick

Seite 28

Wo sind wir

Einführung

Auf welcher Ebene wird getestet – testing level

Was wird getestet– testing categories

Wie wird getestet – testing methods and tools

Alles zusammen – test execution

Page 28: Softwaretests: Motivation und Überblick

Seite 29

Testmethoden

White Box Testing

– Interne Strukturen des Testziels sind gläsern

– Tests nutzen interne Strukturen

– Unittesting, Codeanalyse, Codeabdeckung, …

Black Box Testing

– Interne Strukturen des Testziels sind verborgen

– Anforderungs- und Funktionalitätstests

Gray Box Testing

– wie Black Box Testing, nutzt aber innere Kenntnisse z.B. über Datenbankstrukturen

Page 29: Softwaretests: Motivation und Überblick

Seite 30

Testwerkzeuge I

lassen Test erstellen

sind Spezialisten für

– einen Testtyp (oft noch spezialisierter)

– eine Technologie

lassen sich nach Testmethoden klassifizieren

Page 30: Softwaretests: Motivation und Überblick

Seite 31

Testwerkzeuge II

Beispiele

– JUnit für funktionale Unit- /Integrationstests

– Capture & Replay für Webanwendungen

– Grinder, HttpUnit für Web-Lasttests

OpenSource Testing Tools

– http://java-source.net/open-source/testing-tools

Page 31: Softwaretests: Motivation und Überblick

Seite 32

Wo sind wir

Einführung

Auf welcher Ebene wird getestet – testing level

Was wird getestet– testing categories

Wie wird getestet – testing methods and tools

Alles zusammen – test execution

Page 32: Softwaretests: Motivation und Überblick

Seite 33

Testausführung I

bedarf einer Ausführungsumgebung

– ist werkzeuggestützt

umfasst

– SCM und Build

– Aufbau einer Testumgebung (optional)

– Deployment des Systems (optional)

– Deployment der Tests (optional)

– Ausführung des Tests

– Test Defect Management

Page 33: Softwaretests: Motivation und Überblick

Seite 34

Test Defect Management

Test Defects müssen systematisch behandelt werden

– Defects als Ausgang eines Tests

Test Defect Management

– beinhaltet Reporting

– unterstützt Fehlerbehebung

• stellt einen Workflow bereit

– liefert Testmetriken

• Codeabdeckung

• Maße für Defects

• Reifegrad der Software

Page 34: Softwaretests: Motivation und Überblick

Seite 35

Testaktivitäten I

Begleitung der requirement analyse

– Welche Aspekte / use cases des Systems sind testbar ?

– Welche Szenarien sind denkbar ?

– Rolle test engineer

Begleitung der Systemarchitektur

– Wie sieht eine Testumgebung aus?

– Welche Systemaspekte sind zu testen (Performance, Durchsatz, …) ?

– Rolle test engineer

Test planning: Teststrategie und Testplan werden aufgestellt

– Siehe IEEE 829

– Rolle test engineer

Page 35: Softwaretests: Motivation und Überblick

Seite 36

Testaktivitäten II

Test development: Entwicklung der Tests

– test procedures, test scenarios, test cases, test data, test scripts

– Rolle Entwickler (Unittest/Integrationstest) oder test engineer

Ausführung der Tests

Test reporting: Auswertung der Testergebnisse

Defect Analysis

Retesting der behobenen Fehler

Regression testing

Page 36: Softwaretests: Motivation und Überblick

Seite 37

Zusammenfassung

ein Test hat 3 Dimensionen

– Testebene

• In welcher Granularität wird getestet?

– Testkategorie

• Welche Qualitätseigenschaft wird getestet?

– Testmethode

• Welche Technologie wird mit welchem Werkzeug getestet?

Ausführungsumgebung- und -planung

– sorgt für die Ausführung und Ergebnisverwaltung der Tests

Page 37: Softwaretests: Motivation und Überblick

Seite 38

Ziel des Thementages

eine Testumgebung zur Ausführung von Tests aufgebaut ist / sein kann

– Werkzeuge

wie ein unterstützender Prozess aufgebaut ist / sein kann, der

– die Ausführung von Tests integriert

– die Ausführung von Tests automatisiert

– das Reporting von Testausführung integriert

ein solcher Prozess aus Sicht der Projektleitung eingeführt wird

Sie erfahren heute, wie …

Page 38: Softwaretests: Motivation und Überblick

Seite 39

Referenzen

[Perry2000]

William E. Perry, Effective Methods for Software Testing, 2nd Edition,

John Wiley & Sons, Inc., New York, NY, 2000, ISBN 0-471-35418-X

[McConnell2004]

McConnell, Steve (2004). Code Complete (2nd ed.). Microsoft Press.

pp. 960. ISBN 0-7356-1967-0.

Page 39: Softwaretests: Motivation und Überblick

Seite 40

Links

http://rup.hops-fp6.org/process/workflow/test/co_tytst.htm

http://www.softwaretestingwiki.com/doku.php

http://www.nickjenkins.net/prose/testingPrimer.pdf

http://martinfowler.com/articles/continuousIntegration.html

Page 40: Softwaretests: Motivation und Überblick

Seite 41

www.iks-gmbh.com

Page 41: Softwaretests: Motivation und Überblick

Seite 42

Anhang

Page 42: Softwaretests: Motivation und Überblick

Seite 43

Integrationtesting III

Bottom Up Integrationstesting

– Low-Level Komponenten zuerst

– Einsatz von Treibern, die die Integration auf höherer

Ebene simulieren

– Setzt entsprechende Designstrategie voraus

Page 43: Softwaretests: Motivation und Überblick

Seite 44

Integrationtesting III

Top Down Integrationstest

– High-Level Komponenten zuerst

– Benötigte Komponenten werden simuliert

– Simulation mittels Stubbing/Mocking

– Setzt entsprechende Designstrategie voraus

Page 44: Softwaretests: Motivation und Überblick

Seite 45

Intergrationstesting IV

Mixed-testing

– Button up

• Infrastruktur Komponenten

– Top down

• ansonsten

Page 45: Softwaretests: Motivation und Überblick

Seite 46

Best practices

Test Early, Test Often

Regression vs. Retesting

White-Box vs Black-Box testing

Verification and Validation

Page 46: Softwaretests: Motivation und Überblick

Seite 47