Motivation und Überblick          iks-Thementag : „Wer testet, ist feige“                        24.06.2009               ...
Agenda      Einführung      Auf welcher Ebene wird getestet – testing level      Was wird getestet– testing categories    ...
Fehler in Software          Mythos: Software ist fehlerfrei           – ist nicht nachweisbar           – Testen findet Fe...
Fehler in Software          Je später ein Fehler entdeckt wird, desto teurer wird dessen          Behebung  Quelle: [McCon...
Fehler in Software: Quintessenz          Es muss getestet werden          … so früh wie möglich          Qualitätskriterie...
Wo sind wir          Einführung          Auf welcher Ebene wird getestet – testing level          Was wird getestet– testi...
Testebene          Granularität des zu testenden Systems          – (target-of-test)          in Reihenfolge in abnehmende...
[http://www.information-management.com/news/1026146-1.html]Seite 9
Unit / Component testing     Unit ist die kleinste zu testende Softwareeinheit           – kann kompiliert, gelinkt, gelad...
Integrationstest I       fasst Units und Module zu sinnvollen Testgruppen zusammen           – setzt sich aus unterschiedl...
Integrationstest II       wird durch Entwicklung durchgeführt           – Buddy testing       Testmethoden vergleichbar zu...
Systemtest I       testet vollständiges System           – vollständige Kollaboration aller Komponenten           – Integr...
Systemtest II       verifiziert Umsetzung           – Abgleich mit Designspezifikation       wird durch Testteam durchgefü...
Abnahmetest I       …. auch als Acceptancetest bezeichnet       testet, ob das System die Anforderungen erfüllt,          ...
Abnahmetest II       wird durch Kunde / Auftraggeber durchgeführt       wird in produktionsnaher/-identischer Umgebung aus...
Regressionstest       testet, ob eine Fehlerbehebung unerwartete Auswirkungen hat       ist ein andauernder Prozess       ...
Smoke Test I       ist ein Gesundheitscheck des System           – angestoßen i.d.R. durch den Bau des Systems (system bui...
Smoke Test II       beinhaltet oft eine aussagekräftige Teilmenge aller Tests           – alle Tests sprengen das mögliche...
Continuous Integration       im Team wird Software häufig integriert           – mindestens 1x täglich           – jede In...
Wo sind wir       Einführung       Auf welcher Ebene wird getestet – testing level       Was wird getestet– testing catego...
Dimensionen der Qualität       Funktionalität (functionality)       Benutzungsfreundlichkeit (usability)       Zuverlässig...
Tests für Funktionalität       Fachliche Korrektheit       Sicherheit       Anforderungen an MengengerüsteSeite 23
Tests für Benutzungsfreundlichkeit       Interaktion „Mensch-System“       Ästhetische Aspekte       Ergonomische Aspekte ...
Tests für Zuverlässigkeit       Integritätstest           – Kompatibilität       Strukturtest auf           – Quellcode   ...
Tests für Performance       Benchmarking       Test auf konkurrierender Nutzung           – Anzahl der Nutzer       Lastte...
Tests für Pflegbarkeit       Konfigurationstest           – Unterstützung unterschiedlicher Laufzeitumgebungen       Insta...
Wo sind wir       Einführung       Auf welcher Ebene wird getestet – testing level       Was wird getestet– testing catego...
Testmethoden       White Box Testing           – Interne Strukturen des Testziels sind gläsern           – Tests nutzen in...
Testwerkzeuge I       lassen Test erstellen       sind Spezialisten für           – einen Testtyp (oft noch spezialisierte...
Testwerkzeuge II       Beispiele           – JUnit für funktionale Unit- /Integrationstests           – Capture & Replay f...
Wo sind wir       Einführung       Auf welcher Ebene wird getestet – testing level       Was wird getestet– testing catego...
Testausführung I       bedarf einer Ausführungsumgebung           – ist werkzeuggestützt       umfasst           – SCM und...
Test Defect Management       Test Defects müssen systematisch behandelt werden           – Defects als Ausgang eines Tests...
Testaktivitäten I       Begleitung der requirement analyse           – Welche Aspekte / use cases des Systems sind testbar...
Testaktivitäten II       Test development: Entwicklung der Tests           – test procedures, test scenarios, test cases, ...
Zusammenfassung       ein Test hat 3 Dimensionen           – Testebene               • In welcher Granularität wird getest...
Ziel des ThementagesSie erfahren heute, wie …     eine Testumgebung zur Ausführung von Tests aufgebaut     ist / sein kann...
Referenzen[Perry2000]   William E. Perry, Effective Methods for Software Testing, 2nd Edition,   John Wiley & Sons, Inc., ...
Linkshttp://rup.hops-fp6.org/process/workflow/test/co_tytst.htmhttp://www.softwaretestingwiki.com/doku.phphttp://www.nickj...
www.iks-gmbh.comSeite 41
AnhangSeite 42
Integrationtesting III       Bottom Up Integrationstesting           – Low-Level Komponenten zuerst           – Einsatz vo...
Integrationtesting III       Top Down Integrationstest           – High-Level Komponenten zuerst           – Benötigte Kom...
Intergrationstesting IV       Mixed-testing           – Button up              • Infrastruktur Komponenten           – Top...
Best practices       Test Early, Test Often       Regression vs. Retesting       White-Box vs Black-Box testing       Veri...
Seite 47
Nächste SlideShare
Wird geladen in …5
×

Softwaretests: Motivation und Überblick

2.059 Aufrufe

Veröffentlicht am

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.

Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.059
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
77
Aktionen
Geteilt
0
Downloads
16
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Softwaretests: Motivation und Überblick

  1. 1. Motivation und Überblick iks-Thementag : „Wer testet, ist feige“ 24.06.2009 Autor: Christoph Schmidt-Casdorff Carsten SchädelSeite 2
  2. 2. 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 executionSeite 3
  3. 3. 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 seinSeite 4
  4. 4. Fehler in Software Je später ein Fehler entdeckt wird, desto teurer wird dessen Behebung Quelle: [McConnell2004] 63 % der Fehler stammen aus Analyse/Design [Perry2000] – viele Fehler sind früh zu erkennenSeite 5
  5. 5. 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 EntwicklungsprozessesSeite 6
  6. 6. 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 executionSeite 7
  7. 7. Testebene Granularität des zu testenden Systems – (target-of-test) in Reihenfolge in abnehmender Granularität – Unit testing – Integration testing – System testing – Acceptance testingSeite 8
  8. 8. [http://www.information-management.com/news/1026146-1.html]Seite 9
  9. 9. 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 PersonenSeite 10
  10. 10. 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 istSeite 11
  11. 11. Integrationstest II wird durch Entwicklung durchgeführt – Buddy testing Testmethoden vergleichbar zu Unit testingSeite 12
  12. 12. Systemtest I testet vollständiges System – vollständige Kollaboration aller Komponenten – Integration mit externen Systemen beinhaltet nicht-funktionale Tests – Performance, Last, …..Seite 13
  13. 13. Systemtest II verifiziert Umsetzung – Abgleich mit Designspezifikation wird durch Testteam durchgeführt wird auf spezieller Umgebung durchgeführtSeite 14
  14. 14. 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, …Seite 15
  15. 15. Abnahmetest II wird durch Kunde / Auftraggeber durchgeführt wird in produktionsnaher/-identischer Umgebung ausgeführtSeite 16
  16. 16. 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ührtSeite 17
  17. 17. 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 RegressionstestsSeite 18
  18. 18. 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-inSeite 19
  19. 19. 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-inSeite 20
  20. 20. 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 executionSeite 21
  21. 21. Dimensionen der Qualität Funktionalität (functionality) Benutzungsfreundlichkeit (usability) Zuverlässigkeit (reliability) Performance Pflegbarkeit (supportability / maintainability )Seite 22
  22. 22. Tests für Funktionalität Fachliche Korrektheit Sicherheit Anforderungen an MengengerüsteSeite 23
  23. 23. Tests für Benutzungsfreundlichkeit Interaktion „Mensch-System“ Ästhetische Aspekte Ergonomische Aspekte Online- und context-sensitive Hilfe BenutzerdokumentationSeite 24
  24. 24. Tests für Zuverlässigkeit Integritätstest – Kompatibilität Strukturtest auf – Quellcode – Webseiten Robustheitstest – WiederanlauffähigkeitSeite 25
  25. 25. Tests für Performance Benchmarking Test auf konkurrierender Nutzung – Anzahl der Nutzer Lasttests Stresstest – Verhalten des Systems unter ExtrembedingungenSeite 26
  26. 26. Tests für Pflegbarkeit Konfigurationstest – Unterstützung unterschiedlicher Laufzeitumgebungen InstallationstestSeite 27
  27. 27. 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 executionSeite 28
  28. 28. 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 DatenbankstrukturenSeite 29
  29. 29. Testwerkzeuge I lassen Test erstellen sind Spezialisten für – einen Testtyp (oft noch spezialisierter) – eine Technologie lassen sich nach Testmethoden klassifizierenSeite 30
  30. 30. 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-toolsSeite 31
  31. 31. 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 executionSeite 32
  32. 32. 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 ManagementSeite 33
  33. 33. 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 SoftwareSeite 34
  34. 34. 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 engineerSeite 35
  35. 35. 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 testingSeite 36
  36. 36. 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 TestsSeite 37
  37. 37. Ziel des ThementagesSie erfahren heute, wie … 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 wirdSeite 38
  38. 38. 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.Seite 39
  39. 39. Linkshttp://rup.hops-fp6.org/process/workflow/test/co_tytst.htmhttp://www.softwaretestingwiki.com/doku.phphttp://www.nickjenkins.net/prose/testingPrimer.pdfhttp://martinfowler.com/articles/continuousIntegration.htmlSeite 40
  40. 40. www.iks-gmbh.comSeite 41
  41. 41. AnhangSeite 42
  42. 42. Integrationtesting III Bottom Up Integrationstesting – Low-Level Komponenten zuerst – Einsatz von Treibern, die die Integration auf höherer Ebene simulieren – Setzt entsprechende Designstrategie vorausSeite 43
  43. 43. Integrationtesting III Top Down Integrationstest – High-Level Komponenten zuerst – Benötigte Komponenten werden simuliert – Simulation mittels Stubbing/Mocking – Setzt entsprechende Designstrategie vorausSeite 44
  44. 44. Intergrationstesting IV Mixed-testing – Button up • Infrastruktur Komponenten – Top down • ansonstenSeite 45
  45. 45. Best practices Test Early, Test Often Regression vs. Retesting White-Box vs Black-Box testing Verification and ValidationSeite 46
  46. 46. Seite 47

×