softwaretests: motivation und Überblick
Upload: iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh
Post on 24-Jun-2015
1.515 views
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.TRANSCRIPT
![Page 1: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/1.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/2.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/3.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/4.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/5.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/6.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/7.jpg)
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 8: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/8.jpg)
Seite 9
[http://www.information-management.com/news/1026146-1.html]
![Page 9: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/9.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/10.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/11.jpg)
Seite 12
Integrationstest II
wird durch Entwicklung durchgeführt
– Buddy testing
Testmethoden vergleichbar zu Unit testing
![Page 12: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/12.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/13.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/14.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/15.jpg)
Seite 16
Abnahmetest II
wird durch Kunde / Auftraggeber durchgeführt
wird in produktionsnaher/-identischer Umgebung ausgeführt
![Page 16: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/16.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/17.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/18.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/19.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/20.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/21.jpg)
Seite 22
Dimensionen der Qualität
Funktionalität (functionality)
Benutzungsfreundlichkeit (usability)
Zuverlässigkeit (reliability)
Performance
Pflegbarkeit (supportability / maintainability )
![Page 22: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/22.jpg)
Seite 23
Tests für Funktionalität
Fachliche Korrektheit
Sicherheit
Anforderungen an Mengengerüste
![Page 23: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/23.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/24.jpg)
Seite 25
Tests für Zuverlässigkeit
Integritätstest
– Kompatibilität
Strukturtest auf
– Quellcode
– Webseiten
Robustheitstest
– Wiederanlauffähigkeit
![Page 25: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/25.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/26.jpg)
Seite 27
Tests für Pflegbarkeit
Konfigurationstest
– Unterstützung unterschiedlicher Laufzeitumgebungen
Installationstest
![Page 27: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/27.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/28.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/29.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/30.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/31.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/32.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/33.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/34.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/35.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/36.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/37.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/38.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/39.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/40.jpg)
Seite 41
www.iks-gmbh.com
![Page 41: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/41.jpg)
Seite 42
Anhang
![Page 42: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/42.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/43.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/44.jpg)
Seite 45
Intergrationstesting IV
Mixed-testing
– Button up
• Infrastruktur Komponenten
– Top down
• ansonsten
![Page 45: Softwaretests: Motivation und Überblick](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/45.jpg)
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](https://reader033.vdokument.com/reader033/viewer/2022042607/558a19f8d8b42ab9618b4595/html5/thumbnails/46.jpg)
Seite 47