Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung



Ähnliche Dokumente
Testen II. (Management, Tools) Software Engineering Projekt WS07/08. Fachgebiet Softwaretechnik und Systemgestaltung

Basiswissen Softwaretest

Ein Testprozess für Modellbasiertes Testen

T1 - Fundamentaler Testprozess

Basiswissen Softwaretest

Effizienzsteigerung von Softwaretests durch Automatisierung

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

T2 Fundamentaler Testprozess

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

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

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

Agiles Testmanagement am Beispiel Scrum

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

Testen - Konzepte und Techniken

Software - Testung ETIS SS05

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

Testen im Software- Entwicklungsprozess

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

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

Testmanagement in IT-Projekten

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

Testphase. Das Testen

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

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Agilität und systematischer Test

Automatisierte GUI Tests in fachlichen Teststufen Patrick Möller


Praxiswissen Softwaretest - Testmanagement

IT-Arbeitskreis OWL. Testautomatisierung 2.0. Modellbasiertes Testen. Baris Güldali

Notwendigkeit der Testautomatisierung? Neue Ideen, Konzepte & Werkzeuge

1.1 Basiswissen komprimiert Praxiswissen Testmanagement Übersicht Testprozess und Testwerkzeuge 11

Übungsklausur vom 7. Dez. 2007

Risikoorientiertes Testen und Testmanagement

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Teststrategie festlegen und Teststufen aufeinander abstimmen

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

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

Risikoorientiertes Testen und Testmanagement

Testen. SEPR Referat: Testen - Oliver Herbst

Qualitätssicherung. Was ist Qualität?

Unit Testing mit JUnit. Dr. Andreas Schroeder

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Prozess-Modelle für die Softwareentwicklung

Architektur in der Mechatronik. existierender Testwerkzeuge

Qualitätssicherung (Testen) im Application Life Cycle

Der frühe Tester fängt den Bug

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Einsatz automatischer Testdatengenerierung im modellbasierten Test

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

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

Testen Prinzipien und Methoden

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

Einreichung zum Call for Papers

Testmanagement. Dirk Tesche

Standard Inhaltsverzeichnis für Testvorschrift

Die Softwareentwicklungsphasen!

SDD System Design Document

Performancetesten im BIT / LZBTI

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

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

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

CICERO.Test Datenbasierende Testautomatisierung für höchste Qualitätsansprüche

Qualitätsmanagement im Projekt

Validierung und Verifikation!

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

Lösungen zum Test objektorientierter Software

Modellbasierte Softwareentwicklung

Programmiertechnik II

Abschnitt 16: Objektorientiertes Design

Tester als Coach ein Erfolgsmodell

Software-Entwicklungsprozesse zertifizieren

Software Systems Engineering

Softwaretechnik. Fomuso Ekellem WS 2011/12

Testen von Software-Systemen. Systemen Testwerkzeuge. Typen von Testwerkzeugen. Typen von Testwerkzeugen. Typen von Testwerkzeugen

Testmanagement Zentraler Prozess im ALM

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

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

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Praxiswissen Softwaretest Test Analyst und Technical Test Analyst

Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest

Vortrag von: Ilias Agorakis & Robert Roginer

Agile Softwareentwicklung

Systemen Testwerkzeuge

Zwei ungleiche Geschwister

Seminar- & Zertifizierungsprogramm 2010

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

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

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

MATLAB-Automatisierung von Dymola- Simulationen und Ergebnisauswertung Holger Dittus. Modelica User Group BaWü, Stuttgart,

Internet Explorer Version 6

ITIL und Entwicklungsmodelle: Die zwei Kulturen

AMS Alarm Management System

Software Projekt 2 / Gruppe Knauth Lernziele:

Requirements Engineering

Inhalt. 1 Einleitung 1. 2 Grundkonzepte Erfahrungen systematisch nutzen 39

arvato Heterogene Systemlandschaft

Aufbau und Betrieb eines Testcenters

Transkript:

Testen II (Management, Tools) Daniela Rose Fachgebiet Softwaretechnik und Systemgestaltung 12.12.2007

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen Anmerkung: Folien, die mit * gekennzeichnet sind, wurden während der Präsentation am 12.12.2007 ausgeblendet 2/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 3/45

Motivation Ist der Programmfehler tatsächlich behoben? Erfüllt die Software die neuen Anforderungen vollständig? Welche Qualität hat das neue Software- Release? Hat der behobene Fehler oder die neue Anforderung Auswirkungen auf die bestehende Software? Ist es qualitativ besser als das vorherige? Wann ist die Arbeit des Entwicklers bzw. Testers beendet? Wer ist zu welchem Zeitpunkt wofür verantwortlich? 4/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 5/45

Der grundlegende Testprozess Planung Analyse und Design Realisierung und Durchführung Steuerung Auswertung und Bericht Abschluss 6/45

Planung und Steuerung Testkonzept erstellen Teststrategie Testziele, Umfang und Risiken Priorisierung Testmethoden Testendekriterien Testplan (Zeit- und Ressourcenplanung) Analyse und Design Realisierung und Durchführung Auswertung und Bericht Abschluss Planung Steuerung Testfortschritt überwachen Bisher erreichte Testabdeckung Erfüllung der Testendekriterien Ggf. Korrekturmaßnahmen einleiten 7/45

Analyse und Design Testbasis überprüfen Durchführung von Reviews Präzise und detailliert genug? Ggf. Nachbesserungen einfordern Entwurf der logischen Testfälle Ausgangsbedingungen Randbedingungen Nachbedingungen Sollergebnis bzw. Sollverhalten Analyse und Design Realisierung und Durchführung Auswertung und Bericht Abschluss Planung Steuerung 8/45

Realisierung und Durchführung Analyse und Design Planung Bildung konkreter Testfälle Ein- und Ausgabewerte Reihenfolge festlegen und Testfälle zu Testszenarien zusammenfassen Einrichten der Testumgebung Testrahmen, Testskripte Realisierung und Durchführung Auswertung und Bericht Abschluss Steuerung Ausführen der Testfälle (manuell oder automatisiert) Ist- und Sollergebnisse vergleichen Testprotokoll erstellen: Welche Systemteile? Wann? Von wem? Wie intensiv? Mit welchem Ergebnis? Fehlernachtest bzw. Regressionstest, sobald die Fehlerursachen behoben sind 9/45

Auswertung und Bericht Prüfung der Testendekriterien Testendekriterien erfüllt? JA Beenden der Testaktivitäten Analyse und Design Realisierung und Durchführung Auswertung und Bericht Abschluss Planung Steuerung NEIN Evtl. Durchführung zusätzlicher Testfälle erforderlich Erstellen eines Testberichts Zusammenfassen der Ergebnisse und Weitergabe an die Entscheidungsträger 10/45

Abschluss Abweichungsmeldungen schließen Ggf. Änderungsanforderungen erstellen Testware konservieren Analyse und Design Realisierung und Durchführung Auswertung und Bericht Abschluss Planung Steuerung Testmittel, Testumgebung und Infrastruktur dokumentieren und archivieren Weitergabe an die Wartungsabteilung Lessons Learned Testprozess evaluieren und Verbesserungspotential erkennen 11/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 12/45

Testen im Softwareentwicklungsprozess Vorbereitung: Planung Analyse Design Realisierung W-Modell [Quelle 3, S. 29, Abb. 3-3] Durchführung: Ausführung Protokollierung Fehlernachtest, Regressionstest 13/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 14/45

Arten von Testwerkzeugen Management und Steuerung von Tests Dynamische Tests Werkzeuge für... Testspezifikation Nicht funktionale Tests Statische Tests 15/45

Werkzeuge für... Management und Steuerung von Tests Testmanagementwerkzeuge Verwaltung und Priorisierung von Testfällen Ermitteln des Testfallstatus Zeit- und Ressourcenplanung Rückverfolgbarkeit von Anforderungen Fehlermanagementwerkzeuge Verwaltung und Verteilung von Fehlermeldungen Fehlerverfolgung über gesamten Zeitraum Überwachung des Testfortschritts durch Analyse- und Berichtsfunktionen * 16/45

Werkzeuge für... Testspezifikation Testdatengeneratoren Erzeugung von Testdaten aus der jeweils eingesetzten Testbasis Datenbankbasiert Codebasiert Schnittstellenbasiert Spezifikationsbasiert * 17/45

Werkzeuge für... Statische Tests Statische Analysatoren Identifizierung von komplexen und fehleranfälligen Codeabschnitten Verletzungen von Programmierrichtlinien Model Checker Analyse von Spezifikationen, die in einer formalen Notation vorliegen Werkzeuge zur Reviewunterstützung Planung, Durchführung und Auswertung der Ergebnisse von Reviewsitzungen * 18/45

Werkzeuge für... Nicht funktionale Tests Last- und Performancetestwerkzeuge Generierung von synthetischer Last z.b. Datenbankabfragen, Benutzertransaktionen oder Netzwerkverkehr Messung des Antwortverhaltens unter Last (Performancetest) Messung des Systemverhaltens bei Überlast (Stresstest) * 19/45

Werkzeuge für... Dynamische Tests Automatisierte Ausführung von Tests Versorgung des Testobjekts mit Eingabedaten Aufzeichnen der Reaktionen Vergleich mit den Sollreaktionen Protokollierung des Testlaufs Testroboter (Capture/Replay-Tools) Testtreiber (Testframeworks) 20/45

Testroboter (Capture/Replay-Tools) Zugriff auf das Testobjekt über die Benutzerschnittstelle (Bedienoberfläche) Capture and Replay 1. Aufzeichnen von manuell durchgeführten Benutzeraktionen 2. Speichern der Aktionen in einem Skript 3. Abspielen des Skripts 21/45

Beispiel: QF-Test QF-Test beim Erstellen eines Skripts [Quelle 6] 22/45

Beispiel: QF-Test QF-Test bei der Ausführung eines Skripts [Quelle 6] 23/45

Beispiel: QF-Test Vorteile Automatisiertes Testen von GUI- Oberflächen möglich Ausführliche Protokollierung der Testläufe Nachteile Hoher Wartungsaufwand Nachbearbeitung der Skripte erforderlich (Strukturierung, Modularisierung) Programmier-Know-How erforderlich Auswahl geeigneter Verzögerungszeiten 24/45

Testtreiber (Testframeworks) Zugriff auf das Testobjekt über die Programmierschnittstelle (Quellcode) Testtreiber 1. Objekte erzeugen und initialisieren 2. Objekte mit Nachrichten füttern 3. Veränderungen innerhalb der Objekte oder Auswirkungen auf die Umgebung prüfen 25/45

Beispiel: JUnit 26/45

Beispiel: JUnit 27/45

Beispiel: JUnit Vorteile Programmiersprache gleich Testsprache Trennung von Anwendercode und Testcode Unabhängigkeit der Testfälle voneinander Beliebige Zusammenfassung von Testfällen in Testsuiten Erkennen des Testergebnisses auf einen Blick (Erfolg oder Misserfolg) Nachteile Verfügbarkeit geeigneter Schnittstellen im Quellcode erforderlich 28/45

Nutzen...bei der Einführung von Testwerkzeugen Unterstützung der kreativen Testarbeiten Automatisierung der mechanischen Testdurchführung Reduktion des Testaufwands Entlastung des Testteams Mehr Tests bei gleichem Aufwand Ausführbarkeit von Tests, die manuell nur schwer durchgeführt werden können Einfache Auswertung der Ergebnisse Wiederholbarkeit und Nachweisbarkeit * 29/45

Risiken...bei der Einführung von Testwerkzeugen Unterschätzung von Zeit, Kosten und Aufwand für die Einführung, Einarbeitung, Anpassung, Wartung Unrealistische Erwartungen keine Lösung für kurzfristige Personalengpässe oder schlecht funktionierende Testprozesse! Blindes Vertrauen Vernachlässigung von evtl. besser geeigneten manuellen Tests * 30/45

Erfolgsfaktoren...für die Einführung von Testwerkzeugen Schrittweise Einführung Werkzeugunterstützung in den Prozessen verankern Tatsächliche Nutzung überwachen Feedback sammeln und auswerten Begleitendes Coaching anbieten Probleme bei der Verwendung und deren Lösungen dokumentieren (FAQs) Richtlinien für die Benutzung definieren Intellektuell anspruchsvolle Aktivitäten immer zuletzt automatisieren * 31/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 32/45

Extreme Programming Akzeptanztests (Fortschritt) Überprüfung der Funktionalität des Gesamtsystems Vom Kunden vor Beginn der Iteration auf Grundlage der Storycards spezifiziert Unit-Tests (Vertrauen) Überprüfung der Funktionalität einzelner Komponenten Vom Entwickler vor der Implementierung einer Komponente erstellt und bei Bedarf verändert oder ergänzt Forderung nach vollständiger Automatisierung 33/45

Testgetriebene Softwareentwicklung Was? Agile Methode zur Entwicklung von Software Programmierer entwickeln die Software-Tests vor den zu testenden Komponenten Warum? Akuter Zeitmangel Mangelhafte Testbarkeit der Software oder Faulheit bzw. mangelnde Disziplin der Programmierer... führen häufig dazu, dass nach Fertigstellung der Software(teile) nicht genug Tests implementiert werden, um die gewünschte Testabdeckung zu erreichen 34/45

Testgetriebene Softwareentwicklung Wie? 1. Schreibe einen Test für den nächsten zu implementierenden Funktionshappen, der zunächst fehlschlagen sollte! Schreibe nur soviel Code, dass der Test compiliert! 2. Schreibe gerade soviel Code, dass alle Tests erfolgreich durchlaufen! 3. Räume den Code auf! Programmierzyklus Test! Code! Refactor! 35/45

Testgetriebene Softwareentwicklung 1. Schreibe einen Test für den nächsten zu implementierenden Funktionshappen, der zunächst fehlschlagen sollte! Schreibe nur soviel Code, dass der Test compiliert! 36/45

Testgetriebene Softwareentwicklung 2. Schreibe gerade soviel Code, dass alle Tests erfolgreich durchlaufen! 37/45

Testgetriebene Softwareentwicklung 1. Schreibe einen Test für den nächsten zu implementierenden Funktionshappen, der zunächst fehlschlagen sollte! Schreibe nur soviel Code, dass der Test compiliert! 38/45

Testgetriebene Softwareentwicklung 2. Schreibe gerade soviel Code, dass alle Tests erfolgreich durchlaufen! 39/45

Testgetriebene Softwareentwicklung 3. Räume den Code auf! 40/45

Testgetriebene Softwareentwicklung Vorteile Einfaches testbares Code-Design Schnelles Feedback Angstfreies Refactoring Änderungen, die zu Fehlerwirkungen führen, werden sofort entdeckt und behoben Nachteile Voranschreiten in kleinen Schritten erfordert Umdenken des Programmierers 41/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 42/45

Diskussion Haben wir sicherheitskritische Systemteile, die besonders intensiv getestet werden müssten? Macht es Sinn, die GUI des Webclients automatisiert zu testen? Können wir den Ansatz der testgetriebenen Softwareentwicklung für unser Projekt nutzen? 43/45

Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4. Arten von Testwerkzeugen 5. Testgetriebene Softwareentwicklung 6. Diskussion 7. Quellen 44/45

Quellen 1. German Testing Board: Basiswissen Softwaretest Ausund Weiterbildung zum Certified Tester, Lehrmaterialien 2007-2010 2. A. Spillner, T. Linz: Basiswissen Softwaretest Aus- und Weiterbildung zum Certified Tester, dpunkt.verlag, Heidelberg 2005 3. A. Spillner, T. Roßner, M. Winter, T. Linz: Praxiswissen Softwaretest Testmanagement, dpunkt.verlag, Heidelberg 2006 4. J. Link: Softwaretests mit JUnit Techniken der testgetriebenen Entwicklung, dpunkt.verlag, Heidelberg 2005 5. http://de.wikipedia.org - Testautomatisierung (27.11.2007) 6. http://www.qfs.de/de/qftest/tutorial.html 7. http://www.junit.org 45/45