SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Motivation und Überblick


          iks-Thementag : „Wer testet, ist feige“


                        24.06.2009



                           Autor:
                 Christoph Schmidt-Casdorff
                      Carsten Schädel




Seite 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 execution




Seite 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 sein

Seite 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 erkennen


Seite 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 Entwicklungsprozesses




Seite 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 execution




Seite 7
Testebene

          Granularität des zu testenden Systems
          – (target-of-test)

          in Reihenfolge in abnehmender Granularität
          – Unit testing
          – Integration testing
          – System testing
          – Acceptance testing




Seite 8
[http://www.information-management.com/news/1026146-1.html]
Seite 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 Personen




Seite 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 ist




Seite 11
Integrationstest II

       wird durch Entwicklung durchgeführt
           – Buddy testing


       Testmethoden vergleichbar zu Unit testing




Seite 12
Systemtest I

       testet vollständiges System
           – vollständige Kollaboration aller Komponenten
           – Integration mit externen Systemen


       beinhaltet nicht-funktionale Tests
           – Performance, Last, …..




Seite 13
Systemtest II

       verifiziert Umsetzung
           – Abgleich mit Designspezifikation

       wird durch Testteam durchgeführt

       wird auf spezieller Umgebung durchgeführt




Seite 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
Abnahmetest II

       wird durch Kunde / Auftraggeber durchgeführt

       wird in produktionsnaher/-identischer Umgebung ausgeführt




Seite 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ührt




Seite 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 Regressionstests




Seite 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-in




Seite 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-in




Seite 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 execution




Seite 21
Dimensionen der Qualität

       Funktionalität (functionality)

       Benutzungsfreundlichkeit (usability)

       Zuverlässigkeit (reliability)

       Performance

       Pflegbarkeit (supportability / maintainability )




Seite 22
Tests für Funktionalität

       Fachliche Korrektheit

       Sicherheit

       Anforderungen an Mengengerüste




Seite 23
Tests für Benutzungsfreundlichkeit

       Interaktion „Mensch-System“

       Ästhetische Aspekte

       Ergonomische Aspekte

       Online- und context-sensitive Hilfe

       Benutzerdokumentation




Seite 24
Tests für Zuverlässigkeit

       Integritätstest
           – Kompatibilität


       Strukturtest auf
           – Quellcode
           – Webseiten


       Robustheitstest
           – Wiederanlauffähigkeit




Seite 25
Tests für Performance
       Benchmarking

       Test auf konkurrierender Nutzung
           – Anzahl der Nutzer


       Lasttests

       Stresstest
           – Verhalten des Systems unter Extrembedingungen




Seite 26
Tests für Pflegbarkeit

       Konfigurationstest
           – Unterstützung unterschiedlicher Laufzeitumgebungen


       Installationstest




Seite 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 execution




Seite 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 Datenbankstrukturen
Seite 29
Testwerkzeuge I
       lassen Test erstellen

       sind Spezialisten für
           – einen Testtyp (oft noch spezialisierter)
           – eine Technologie

       lassen sich nach Testmethoden klassifizieren




Seite 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-tools




Seite 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 execution




Seite 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 Management


Seite 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 Software


Seite 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 engineer
Seite 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 testing


Seite 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 Tests


Seite 37
Ziel des Thementages

Sie 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 wird

Seite 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
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




Seite 40
www.iks-gmbh.com




Seite 41
Anhang




Seite 42
Integrationtesting III

       Bottom Up Integrationstesting
           – Low-Level Komponenten zuerst
           – Einsatz von Treibern, die die Integration auf höherer
             Ebene simulieren
           – Setzt entsprechende Designstrategie voraus




Seite 43
Integrationtesting III

       Top Down Integrationstest
           – High-Level Komponenten zuerst
           – Benötigte Komponenten werden simuliert
           – Simulation mittels Stubbing/Mocking
           – Setzt entsprechende Designstrategie voraus




Seite 44
Intergrationstesting IV

       Mixed-testing
           – Button up
              • Infrastruktur Komponenten
           – Top down
              • ansonsten




Seite 45
Best practices

       Test Early, Test Often

       Regression vs. Retesting

       White-Box vs Black-Box testing

       Verification and Validation




Seite 46
Seite 47

Weitere ähnliche Inhalte

Was ist angesagt?

SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersSR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersGlenn K. Lockwood
 
epoll() - The I/O Hero
epoll() - The I/O Heroepoll() - The I/O Hero
epoll() - The I/O HeroMohsin Hijazee
 
Linux System Monitoring basic commands
Linux System Monitoring basic commandsLinux System Monitoring basic commands
Linux System Monitoring basic commandsMohammad Rafiee
 
RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...NTT Software Innovation Center
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityLinaro
 
Advanced file permissions in linux
Advanced file permissions in linuxAdvanced file permissions in linux
Advanced file permissions in linuxMohit Singh
 
Eclipse Iceoryx Overview
Eclipse Iceoryx OverviewEclipse Iceoryx Overview
Eclipse Iceoryx OverviewTomoya Fujita
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapPadraig O'Sullivan
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceNagios
 
Linux Ethernet device driver
Linux Ethernet device driverLinux Ethernet device driver
Linux Ethernet device driver艾鍗科技
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCKernel TLV
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?Pradeep Kumar
 
Linux LVM Logical Volume Management
Linux LVM Logical Volume ManagementLinux LVM Logical Volume Management
Linux LVM Logical Volume ManagementManolis Kartsonakis
 
Message Signaled Interrupts
Message Signaled InterruptsMessage Signaled Interrupts
Message Signaled InterruptsAnshuman Biswal
 
RISC-V Boot Process: One Step at a Time
RISC-V Boot Process: One Step at a TimeRISC-V Boot Process: One Step at a Time
RISC-V Boot Process: One Step at a TimeAtish Patra
 
FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)Naren Chandra
 
Linux PCI device driver
Linux PCI device driverLinux PCI device driver
Linux PCI device driver艾鍗科技
 

Was ist angesagt? (20)

SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersSR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
 
epoll() - The I/O Hero
epoll() - The I/O Heroepoll() - The I/O Hero
epoll() - The I/O Hero
 
Linux System Monitoring basic commands
Linux System Monitoring basic commandsLinux System Monitoring basic commands
Linux System Monitoring basic commands
 
RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...RDMA programming design and case studies – for better performance distributed...
RDMA programming design and case studies – for better performance distributed...
 
systemd
systemdsystemd
systemd
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
Advanced file permissions in linux
Advanced file permissions in linuxAdvanced file permissions in linux
Advanced file permissions in linux
 
Eclipse Iceoryx Overview
Eclipse Iceoryx OverviewEclipse Iceoryx Overview
Eclipse Iceoryx Overview
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTap
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical Experience
 
Linux Ethernet device driver
Linux Ethernet device driverLinux Ethernet device driver
Linux Ethernet device driver
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
Linux LVM Logical Volume Management
Linux LVM Logical Volume ManagementLinux LVM Logical Volume Management
Linux LVM Logical Volume Management
 
Message Signaled Interrupts
Message Signaled InterruptsMessage Signaled Interrupts
Message Signaled Interrupts
 
RISC-V Boot Process: One Step at a Time
RISC-V Boot Process: One Step at a TimeRISC-V Boot Process: One Step at a Time
RISC-V Boot Process: One Step at a Time
 
FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)FreeRTOS basics (Real time Operating System)
FreeRTOS basics (Real time Operating System)
 
Linux PCI device driver
Linux PCI device driverLinux PCI device driver
Linux PCI device driver
 

Andere mochten auch

Adapting my business - Turismo - Segittur - Carlos Romero
Adapting my business - Turismo - Segittur - Carlos RomeroAdapting my business - Turismo - Segittur - Carlos Romero
Adapting my business - Turismo - Segittur - Carlos RomeroFactor CO2
 
Dispositivo intrauterino (diu)
Dispositivo intrauterino (diu)Dispositivo intrauterino (diu)
Dispositivo intrauterino (diu)Lau2404
 
Mdc de la unidad curricular
Mdc  de la unidad curricularMdc  de la unidad curricular
Mdc de la unidad curriculargladyscon
 
Foro grupal coevaluación- unidad 3, diapositivas
Foro grupal  coevaluación- unidad 3, diapositivasForo grupal  coevaluación- unidad 3, diapositivas
Foro grupal coevaluación- unidad 3, diapositivasDajuvi
 
El presupuesto
El presupuestoEl presupuesto
El presupuestoUNIANDES
 
Trabajo de informatica valentina
Trabajo de informatica valentinaTrabajo de informatica valentina
Trabajo de informatica valentinavalentinarios1999
 
Los mejores aviones helicópteros y otros aparatos voladores 2
Los mejores  aviones helicópteros y otros aparatos voladores 2Los mejores  aviones helicópteros y otros aparatos voladores 2
Los mejores aviones helicópteros y otros aparatos voladores 2Farlydaniel
 
Manual de instalar y utilizar file zilla
Manual de instalar y utilizar file zillaManual de instalar y utilizar file zilla
Manual de instalar y utilizar file zillaDayliTovar
 
Eventkommunikation in Zeiten von Social Media
Eventkommunikation in Zeiten von Social MediaEventkommunikation in Zeiten von Social Media
Eventkommunikation in Zeiten von Social Mediaguliverka
 

Andere mochten auch (20)

Cronograma
CronogramaCronograma
Cronograma
 
Adapting my business - Turismo - Segittur - Carlos Romero
Adapting my business - Turismo - Segittur - Carlos RomeroAdapting my business - Turismo - Segittur - Carlos Romero
Adapting my business - Turismo - Segittur - Carlos Romero
 
Dispositivo intrauterino (diu)
Dispositivo intrauterino (diu)Dispositivo intrauterino (diu)
Dispositivo intrauterino (diu)
 
Mdc de la unidad curricular
Mdc  de la unidad curricularMdc  de la unidad curricular
Mdc de la unidad curricular
 
Base de datos
Base de datosBase de datos
Base de datos
 
Rubio Huayamave
Rubio HuayamaveRubio Huayamave
Rubio Huayamave
 
Antenas
AntenasAntenas
Antenas
 
Foro grupal coevaluación- unidad 3, diapositivas
Foro grupal  coevaluación- unidad 3, diapositivasForo grupal  coevaluación- unidad 3, diapositivas
Foro grupal coevaluación- unidad 3, diapositivas
 
ARTERIAS-JULLIETH
ARTERIAS-JULLIETHARTERIAS-JULLIETH
ARTERIAS-JULLIETH
 
El presupuesto
El presupuestoEl presupuesto
El presupuesto
 
Trabajo final expresion oral
Trabajo final expresion oralTrabajo final expresion oral
Trabajo final expresion oral
 
Trabajo de informatica valentina
Trabajo de informatica valentinaTrabajo de informatica valentina
Trabajo de informatica valentina
 
Los mejores aviones helicópteros y otros aparatos voladores 2
Los mejores  aviones helicópteros y otros aparatos voladores 2Los mejores  aviones helicópteros y otros aparatos voladores 2
Los mejores aviones helicópteros y otros aparatos voladores 2
 
Arte prehistórico
Arte prehistóricoArte prehistórico
Arte prehistórico
 
Knowtech vortrag
Knowtech vortragKnowtech vortrag
Knowtech vortrag
 
Manual de instalar y utilizar file zilla
Manual de instalar y utilizar file zillaManual de instalar y utilizar file zilla
Manual de instalar y utilizar file zilla
 
Tare1
Tare1Tare1
Tare1
 
Análisis foda
Análisis fodaAnálisis foda
Análisis foda
 
Operaciones en excel
Operaciones en excelOperaciones en excel
Operaciones en excel
 
Eventkommunikation in Zeiten von Social Media
Eventkommunikation in Zeiten von Social MediaEventkommunikation in Zeiten von Social Media
Eventkommunikation in Zeiten von Social Media
 

Ähnlich wie Softwaretests: Motivation und Überblick

Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
Testen von Software (german)
Testen von Software (german)Testen von Software (german)
Testen von Software (german)Markus Wichmann
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDSwissQ Consulting AG
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Connected-Blog
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
Webanwendungen testen
Webanwendungen testenWebanwendungen testen
Webanwendungen testenBoris Köster
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testenmradamlacey
 
Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?Hendrik Lösch
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Automatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaAutomatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaGFU Cyrus AG
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Digicomp Academy AG
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Automatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-ProzessAutomatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-Prozessx-celerate
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Markus Unterauer
 

Ähnlich wie Softwaretests: Motivation und Überblick (20)

Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Testen von Software (german)
Testen von Software (german)Testen von Software (german)
Testen von Software (german)
 
Softwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur AutomatisierungSoftwaretests: Werkzeuge zur Automatisierung
Softwaretests: Werkzeuge zur Automatisierung
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?Crowdsourced Mobile Testing – Alternative oder Ergänzung?
Crowdsourced Mobile Testing – Alternative oder Ergänzung?
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
Webanwendungen testen
Webanwendungen testenWebanwendungen testen
Webanwendungen testen
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?Was ist eigentlich eine Unit?
Was ist eigentlich eine Unit?
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Automatisierter Software-Test unter Java
Automatisierter Software-Test unter JavaAutomatisierter Software-Test unter Java
Automatisierter Software-Test unter Java
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
Automatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-ProzessAutomatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-Prozess
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Mehr von IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

Softwaretests: Motivation und Überblick

  • 1. Motivation und Überblick iks-Thementag : „Wer testet, ist feige“ 24.06.2009 Autor: Christoph Schmidt-Casdorff Carsten Schädel Seite 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 execution Seite 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 sein Seite 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 erkennen Seite 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 Entwicklungsprozesses Seite 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 execution Seite 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 testing Seite 8
  • 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 Personen Seite 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 ist Seite 11
  • 11. Integrationstest II wird durch Entwicklung durchgeführt – Buddy testing Testmethoden vergleichbar zu Unit testing Seite 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. Systemtest II verifiziert Umsetzung – Abgleich mit Designspezifikation wird durch Testteam durchgeführt wird auf spezieller Umgebung durchgeführt Seite 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. Abnahmetest II wird durch Kunde / Auftraggeber durchgeführt wird in produktionsnaher/-identischer Umgebung ausgeführt Seite 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ührt Seite 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 Regressionstests Seite 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-in Seite 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-in Seite 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 execution Seite 21
  • 21. Dimensionen der Qualität Funktionalität (functionality) Benutzungsfreundlichkeit (usability) Zuverlässigkeit (reliability) Performance Pflegbarkeit (supportability / maintainability ) Seite 22
  • 22. Tests für Funktionalität Fachliche Korrektheit Sicherheit Anforderungen an Mengengerüste Seite 23
  • 23. Tests für Benutzungsfreundlichkeit Interaktion „Mensch-System“ Ästhetische Aspekte Ergonomische Aspekte Online- und context-sensitive Hilfe Benutzerdokumentation Seite 24
  • 24. Tests für Zuverlässigkeit Integritätstest – Kompatibilität Strukturtest auf – Quellcode – Webseiten Robustheitstest – Wiederanlauffähigkeit Seite 25
  • 25. Tests für Performance Benchmarking Test auf konkurrierender Nutzung – Anzahl der Nutzer Lasttests Stresstest – Verhalten des Systems unter Extrembedingungen Seite 26
  • 26. Tests für Pflegbarkeit Konfigurationstest – Unterstützung unterschiedlicher Laufzeitumgebungen Installationstest Seite 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 execution Seite 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 Datenbankstrukturen Seite 29
  • 29. Testwerkzeuge I lassen Test erstellen sind Spezialisten für – einen Testtyp (oft noch spezialisierter) – eine Technologie lassen sich nach Testmethoden klassifizieren Seite 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-tools Seite 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 execution Seite 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 Management Seite 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 Software Seite 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 engineer Seite 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 testing Seite 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 Tests Seite 37
  • 37. Ziel des Thementages Sie 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 wird Seite 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
  • 42. Integrationtesting III Bottom Up Integrationstesting – Low-Level Komponenten zuerst – Einsatz von Treibern, die die Integration auf höherer Ebene simulieren – Setzt entsprechende Designstrategie voraus Seite 43
  • 43. Integrationtesting III Top Down Integrationstest – High-Level Komponenten zuerst – Benötigte Komponenten werden simuliert – Simulation mittels Stubbing/Mocking – Setzt entsprechende Designstrategie voraus Seite 44
  • 44. Intergrationstesting IV Mixed-testing – Button up • Infrastruktur Komponenten – Top down • ansonsten Seite 45
  • 45. Best practices Test Early, Test Often Regression vs. Retesting White-Box vs Black-Box testing Verification and Validation Seite 46