ALLG. METHODEN DES SOFTWAREENGINEERING



Ähnliche Dokumente
Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

T1 - Fundamentaler Testprozess

Testmanagement in IT-Projekten

T2 Fundamentaler Testprozess

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Teststrategie festlegen und Teststufen aufeinander abstimmen

Qualitätsmanagement im Projekt

Einführung von Testautomatisierung reflektiert. Erkenntnisse eines Linienmanagers zu Herausforderungen und Fallgruben

Automatische Testfallgenerierung aus Modellen. 8. Neu-Ulmer Test-Engineering-Day Martin Miethe

Senior Consulting. Senior Consulting Strategical, Conceptual and Technical Consulting Seite 1

Testphase. Das Testen

Ein Testprozess für Modellbasiertes Testen

T3 Testen im Software- Lebenszyklus

MHP Test Management Qualität ist kein Zufall Ihre Lösung zur Abdeckung des ganzheitlichen Testprozesses!

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Prozess-Modelle für die Softwareentwicklung

Systemen - Einleitung

Testmanagement bei SAP-Projekten

Standard Inhaltsverzeichnis für Testvorschrift

Basiswissen Softwaretest

Validierung und Verifikation!

Testmanagement. Q-Day. Frank Böhr Fraunhofer IESE

Testen Prinzipien und Methoden

Qualitätsmanagement. Grundlagen

Effizienzsteigerung von Softwaretests durch Automatisierung

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!

Software - Testung ETIS SS05

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

Testen im Software- Entwicklungsprozess

Zusammenfassung der Testarten

Performancetesten im BIT / LZBTI

Softwaretechnik. Fomuso Ekellem WS 2011/12

Testen. SEPR Referat: Testen - Oliver Herbst

<thema> Projektdokumentation zum Softwareentwicklungsprojekt. (Entwicklerdokumentation) 28. Mai 2015

Agiles Testmanagement am Beispiel Scrum

Datenschutzfreundliches Projektmanagement Sven Thomsen Unabhängiges Landeszentrum für Datenschutz Schleswig-Holstein

Testen - Konzepte und Techniken

Einführung von Test-Prozessen laut TMMi. Egon Valentini 1. März 2010

Requirements Engineering für IT Systeme

Fragebogen: Abschlussbefragung

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Jens Borchers. Kritische Erfolgsfaktoren beim Abnahmetest in Redevelopment- Projekten Erfahrungen aus einem Großprojekt

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Quality Point München

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Effiziente Testautomatisierung in agilen Projekten

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin


Unser verflixtes 7. Jahr im Testmanagement. Bernd Schindelasch 26. Juni 2013

Was versteht man unter Softwaredokumentation?

Anforderungen an die HIS

Validierung und Verifikation

Einführung und Motivation

16.4 Wiederverwendung von COTS-Produkten

Managed Testing Service

Systematisches Testen von Software

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Aufbau und Betrieb eines Testcenters

Qualitätssicherung. Was ist Qualität?

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Qualitätssicherung (Testen) im Application Life Cycle

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung.

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

Software-Entwicklung

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

TESTPLAN <Projektname>

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Software Engineering II (IB) Testen von Software / Modultests

Softwaretechnikpraktikum SS Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Übungsklausur vom 7. Dez. 2007

Zwei ungleiche Geschwister

Projekt Management Plan

Klausur Software Engineering für WI (EuI)

Architektur in der Mechatronik. existierender Testwerkzeuge

Softwareentwicklungspraktikum Sommersemester Testdokumentation

Testanalyse und Testautomation bei der ImmobilienScout24

Automatisierte GUI Tests in fachlichen Teststufen Patrick Möller

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop

Testmanagement. Dirk Tesche

SDD System Design Document

Tester als Coach ein Erfolgsmodell

Berufsbild Tester - eine Profession?

Systemen - Testprozess. Testprozess. Testprozess: Aktivitäten. Testplanung und Teststeuerung. Testplanung und Teststeuerung

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Modul Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

Transkript:

Test und Testdokumentation ALLG. METHODEN DES SOFTWAREENGINEERING

Agenda Maßnahmen zur Qualitätssicherung und Steigerung Tests, Testkategorien und Fehlerarten Teststufen und Testplanung Testdokumentation Testautomation und Continuous Integration 2

Maßnahmen zur Qualitätssicherung Konsequente Methodenanwendung in allen Phasen Einsatz adäquater Entwicklungswerkzeuge Konsequente Fortschreibung der Entwicklungsdokumentation Einsatz von Vorgehensmodellen Institutionalisierung der Qualitätssicherung Kontinuierliche Weiterbildung der Produktentwickler Statische Programmanalyse Syntax, Datentypen, -fluss) Dynamische Programmanalyse (Blackbox, Whitebox) Systematische Auswahl geeigneter Testfälle Konsequente Protokollierung der Ergebnisse 3

Softwaretests als analytische Maßnahme der QS Unter Testen versteht man den Prozess des Planens, der Vorbereitung und der Messung, mit dem Ziel, die Eigenschaften eines IT-Systems festzustellen und den Unterschied zwischen dem tatsächlichen und dem erforderlichen Zustand aufzuzeigen Pol, M., Koomen, T., Spillner, A. 4

Softwaretests als analytische Maßnahme der QS mit den Zielen Verifikation der geforderten Funktionalitäten und Sicherung der angeforderten Qualität Schätzung, Vorhersage und Reduktion von Fehlerfolgenkosten im Software-Betrieb. Merke: Softwaretest kann keine Aussage darüber machen, dass es keine Fehler in dem Software-Produkt mehr vorhanden sind! Erkennung von Fehlern vor der Produktionssetzung und nachweisliche Dokumentation der Anwesenheit von Fehlern als Arbeitsgrundlage für die weitere (Projekt)-Entwicklung Möglichst fehlerfreie Inbetriebnahme eines Software-Produkts 5

Fehler sind reproduzierbare Fehleigenschaften eines Software-Produkts Software-Fehler = reproduzierbare Fehleigenschaften eines Software-Systems 6

Mögliche Fehlerursachen Das (Er)-Kennen von möglichen Ursachen erleichtert das Einleiten von effektiven Maßnahmen 7

Grundsätze des Testens nach ISTQB Grundsatz 1: Testen zeigt die Anwesenheit von Fehlerzuständen Grundsatz 2: Vollständiges Testen ist nicht möglich Grundsatz 3: Mit dem Testen frühzeitig beginnen Grundsatz 4: Häufung von Fehlern Grundsatz 5: Wiederholungen haben keine Wirksamkeit Grundsatz 6: Testen ist abhängig vom Umfeld Grundsatz 7: Trugschluss: Keine Fehler bedeutet ein brauchbares System 8

Das Testen ist eine Dienstleistung bestehend aus einzelnen Aktivitäten Testplanung und Modellierung der Testvorgehensweise Testmanagement Testfallerstellung Testfalldurchführung (manuell und/oder automatisiert) Risikoanalyse Unterstützung des Projektmanagements 9

Der Softwaretest als Prozess Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss 10

Der Softwaretest als Prozess Testplanung Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Beginnt mit dem Projekt und legt die Testgrundlagen fest, wie: Teststrategie und Testtaktiken Testziele und Kriterien für Testbeginn, Testende und Testabbruch Vorgehensweise - orientiert sich i.d.r. nach dem eingesetzten Vorgehensmodell in der Entwicklung, verwendete Standarde Testorganisation Rollen und Terminen Testinfrastruktur 11

Der Softwaretest als Prozess Testvorbereitung Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Bereitet die in der Testplanung definierten Punkte vor, wie: Strukturierung und Paketierung von Testfällen Erstellung einer Abhängigkeitsmatrix bzw. netzes Vorbereitung der Testinfrastruktur Vorbereitung der Dokumentationsinfrastruktur Einweisung des Personal Quellen für die adäquaten Testdaten 12

Der Softwaretest als Prozess Testspezifikation Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Spezifiziert pro Testfall die Testfallmodalitäten: Beschreibung des Testfalls (s.a. Beispiel aus dem V-Modell TX) Spezifikation der Testprozedur Festlegen bzw. Generierung von Eingabedaten Festlegen des Soll-Ergebnisse, Schwellenwerte, etc. 13

Der Softwaretest als Prozess Testdurchführung Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Ausführung der in der Testspezifikation beschriebenen Punkte, wie: Schritt-für-Schritt-Vorgehen beim manuellen Vorgehen Starten der Prüfsequenz beim automatisierten Vorgehen Bereitstellen der Testdaten Beobachtung des Systems implizite Test wie Performance, Bedienbarkeit, Adäquatheit etc. 14

Der Softwaretest als Prozess Testauswertung Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Abschließende Aktivität jedes Tests: Protokollierung der Testergebnisse, Zwischenergebnisse Entscheidung über den Testerfolg Dokumentation der Testergebnisse in der Testübersicht, Testmatrix Archivierung der für die Reproduktion notwendigen Daten und Informationen -> evtl. Aktualisierung der Testspezifikation 15

Der Softwaretest als Prozess Testabschluss Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Abschließende Aktivität jedes Testvorhabens auf jeder Teststufe Evaluieren aller Testergebnisse einer Stufe Aufbereitung eines globalen Stands der Dinge Entscheidung über die weitere Vorgehensweise 16

Dokumente im Testprozess Testplanung Auswertung Auswertung Vorbereitung Spezifikation Spezifikation Durchführung Durchführung Abschluss Testgegenstände Testobjekt übertragungsbericht Testproto koll Testprotokoll koll Testplan Testdesignspezifikation Testablauf Testablauf spezifikationen spezifika- Testablauf spezifikationetion Testergebnisbericht Testfallspezifikati Testfall- Testfallspezifikatspezifikati onen onen on Testvorfall Testvorfall bericht bericht 17

Dokumentationsobjekte nach IEEE 829 Übersicht Testplan 1 x Beschreibung des Umfangs, Vorgehensweise, Testplan und Testgegenstände Testdesignspezifikation 1 x Detaillierte Spezifikation der definierten Testvorgehensweise Testfallspezifikationen n x Beschreibung der Umgebungsbedingungen, Eingaben und Ausgaben eines jeden Testfalls Testablaufspezifikationen n x Detaillierte Beschreibung aller für den Tests notwendigen Einzelschritte 18

Dokumentationsobjekte nach IEEE 829 Übersicht Testobjektübertragungsbericht 1 x Protokoll der Zuweisung von einzelnen Tests und Testpakete an die Tester Testprotokolle n x Chronologische Dokumentation aller Testvorgänge bei der Testdurchführung Testvorfallberichte 1 x Liste aller Ereignisse, die eine weitere Untersuchung erforderlich machen Testergebnisbericht 1 x Bewertungsliste aller Tests 19

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Testplans 20

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Testdesing-Dokuments 21

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Testfalls u.a. siehe das Beispiel aus dem Kapitel 2 22

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Testberichts 23

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Testprotokolls 24

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Abschlussberichts 25

Dokumentationsobjekte nach IEEE 829 Beispielweise Aufbau eines Abschlussberichts 26

Teststufen (hier sehr verfeinert) Performance- und Lasttests in produktionsäquivalenter Umgebung Betreibbarkeits Test Test der Gesamtapplikation (alle funktionalen und nicht-funktionalen Anforderungen) System Test Wiederholte Durchführung von Funktionstests Regressions Test Funktions Test Integrations Test Test der Integration einzelner Schnittstellen und Komponenten Strukturierte Tests der angeforderten Funktionalität Code & Unit Test Entwicklungsseitiger Test einzelner Funktionen und Modulen 27

Teststufen Code/Unit Test oder Komponententest Entwicklertest (WhiteBox-Test) auf Komponentenebene mit dem Ziel der Validierung des Entwicklungstandes mit einzelnen Funktionen-, Schnittstellen- und Modulen-Spezifikationen Verifikation der Korrektheit von Funktionen-, Schnittstellen- und Modulen Vorsicht: Der Entwickler testet die reine funktionale, technische Anforderung Der Entwickler testet meistens Positivtest-orientiert Der Entwickler testet meistens mit einem Eingeschränkten Datensatz-Spektrum (sei denn die Ein- und Übergabeparameter wurden in Testvorgaben definiert) 28

Teststufen Code/Unit Test oder Komponententest Ausführbares Codefragment, dass das sichtbare Verhalten einer Komponente (hier einer Klassenfunktion) verifiziert Unmittelbare Rückmeldung an den Programmierer über die Korrektheit der entwickelten Komponenten (Wiedergabe des geforderten Verhaltens) 29 Vorführung eines automatisierten Unit-Tests ->

Teststufen Funktionstest Entwicklertest (BlackBox-Test) auf der Komponentenebene, mit dem Ziel das geforderte Schnittstellenverhalten zu verifizieren Ein BlackBox-Test übergibt (konstante oder variable) Inputdaten an die Komponente, Funktion, Modul, API und verifiziert die produzierten Outputdaten Es werden neben dem Sollverhalten auch die Negativtests durchgeführt. 30

Teststufen Integrationstest Integrationstest ist eine aufeinander abgestimmte Reihe von Funktionstest, mit dem Ziel die verschiedenen zum Teil voneinander abhängigen Komponenten eines Softwaresystem im Zusammenspiel miteinander zu testen. Bei der Integration von mehrerer Module, Komponenten oder Applikationen wird geprüft: Das Workflow-Verhalten einer Modulkette Überprüfung von einzelnen Komponenten-Schnittstellen Konsolidierung oder Spezialisierung von Datenstrukturen und Komponenten Verträglichkeit und Nebenläufigkeit von Komponenten in einem System 31

Teststufen Regressionstest Automatisierte Durchführung von ausgewählten Testfällen aus dem Funktionstestfallset Test des System mit dynamischen, großen Wertebereichen Konzentration auf Performance und Stabilität des Systems und der einzelnen Systemkomponenten Wird mit jeder Minor- und Major-Version des Systems durchgeführt 32

Teststufen Acceptansetest Teil des Systemtests, welcher sich auf die Anwenderakzeptanz orientiert Testen der wichtigsten Funktionsbereiche mit dem Fachanwender bzw. Anwendergruppe (zb. Einkauf, Vertrieb, FiBu, ) Funktionale und v.a. nicht-funktionale Anforderungen im Fokus Kann als Grundlage für die Entscheidung für einen Systemtest genutzt werden 33

Teststufen Systemtest Ausführung der (globalen)tests in produktionsäquivalenter Umgebung Anbindung aller in der Produktionsumgebung vorhandenen Applikationen inkl. der flankierenden Applikationen/Teilsysteme Testen von durchgängigen Geschäftsprozessen 34

Teststufen Betreibbarkeitstest Test aller während der Inbetriebnahme vorkommenden Aktivitäten Ausführung von Laufzeit-, Performance und Belastungstests auf den produktionsnahen Maschinen Testen der Koexistenz mit weiteren Produkten (zb. Portreservierung, Speicherauslastung, Blockierung des Dateisystems) 35

36

Testautomation Übersicht Automatisierte Testdurchführung anhand zuvor erstellten maschineninterpretierbaren Abfolge von Testanweisungen Ableitung von Testaktivitäten aus Systemanforderungen Ermöglicht breite Abdeckung von funktionalen Anforderungen Vorhandene Testfälle können in jeder neuen Version wiederholt und werden 37

Testautomation Vorteile Wiederholbarkeit von einzelnen Tests und ganzen Testsequenzen Wiederverwendbarkeit von Testszenarien Mehr und umfangreichere Testläufe inkl. Testdokumentation Besserer Einsatz von Ressourcen Simulation von extremen und möglichen Gegebenheiten (Last- und Performancetests, Peak-Zeiten-Tests) Reduktion der Testzeiten 38

Testautomation Nachteile Erhöhter (initialer) Aufwand bei der Testkonzeption, weil die fachlichen Testszenarien in ein bestimmtes maschinenlesbares Format überführt werden müssen Erhöhter Pflegeaufwand durch vielseitige Abhängigkeit zwischen den einzelnen Testfällen Längerfristige Bindung von qualifizierten Testressourcen, evtl. zusätzliche Lizenzkosten Wenige bis keine systemübergreifende Formate und Standards auf dem Markt vorhanden 39

Testautomation Grenzen der Testautomation Keine vollständige Abdeckung aller Qualitätskriterien möglich Verstärkte Konzentration auf die funktionalen Anforderungen Nicht-funktionale Anforderungen wie Benutzerfreundlichkeit, Layout, Adäquatheit können nur bedingt validiert werden Manuelle Tests werden dadurch nicht unnötig 40

Testautomation Grenzen der Testautomation Die Zahlen bestätigen die Vermutungen 41

Testautomation Beispiel JUnit - Taschenrechner - CSVFile 42

Testautomation Continuous Integration -> s. Übung 43

Paar interessante Zahlen 44

Testwerkzeuge 45

46

47

48

Literaturempfehlung German Testing Board: Allg. Informationen verfügbar im Internet unter http://www.german-testing-board.info International Software Testing Qualifications Board : "Certified Tester. Foundation Level Syllabus International Software Testing Qualifications Board: Allg. Informationen verfügbar im Internet unter http://www.istqb.org/downloads Ludewig, J., Lichter, H.: Software Engineering. Grundlagen, Menschen, Prozesse, Techniken Pol, M., Koomen, T., Spillner, A.: Management und Optimierung des Testprozesses Softwaretest-Umfrage 2011: Softwaretest in der Praxis HS Bremen, HS Bremerhaven, FH Köln, ANECON, GTB und STB 49

Übung/Aufgabe Lesen Sie den heise-artikel Continuous Integration in Zeiten agiler Programmierung [http://www.heise.de/developer/artikel/continuous- Integration-in-Zeiten-agiler-Programmierung-1427092.html?view=print] durch und beantworten Sie die folgenden Fragen: Was versteht man unter dem Begriff Continuous Integration (CI)? Welche Ziele werden mit dem CI verfolgt? Welche Vorteile erzielen Sie als Entwickler, Projektleiter, Auftraggeber, Tester beim effizienten Einsatz von CI? 50