Whitebox Testen mit JUnit

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Forschungszentrum Informatik
Integrations- und Funktionstests im Rahmen des V-Modelles
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Analytische Qualitätssicherung
Grundlagen der Programmierung (GP)
Qualitätssicherung von Software (SWQS)
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Qualitätssicherung von Software
Qualitätssicherung von Software (SWQS)
Werkzeuge und Softwareumgebung von Christian Michele.
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software
Prof. Dr. Holger Schlingloff
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Dynamische Testverfahren
Erfahrungen aus Tests komplexer Systeme
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Testgetriebene Entwicklung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
FH-Hof Tools Richard Göbel. FH-Hof Tools für die Veranstaltung JUnit: Testen ANT: Build-Tool Eclipse: Entwicklungsumgebung.
Java: Objektorientierte Programmierung
Agenda Einführung Haskell QuickCheck Zusammenfassung
Werkzeuge und Softwareumgebung von Christian Michele.
Das Test-Framework JUnit
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Das Test-Framework JUnit
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Software-Engineering
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Wasserfallmodel Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Inhalte und Maßnahmen eingegeben haben,
Kennlinie Lichtregelung in JavaNNS Version 1.1
Grundschutztools
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Druckerinstallation HP1050C
Software Engineering 1 6. Übung
Zentralübung Automotive Software Engineering – Übungsblatt 8
Testgetriebene Entwicklung (TDD)
Java und Eclipse.
Auslegung eines Vorschubantriebes
Analyse von Ablaufdiagrammen
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Testtechniken-Praktikum WS 2005/06 1 Arbeiten mit JUnit Andreas Höfer Dr. Matthias Müller Mit Beiträgen von Johannes Link.
TDD mit MSTest Stefan Lieser Web:
TDD mit MSTest Stefan Lieser
Stefan Lieser Web:
Der Erotik Kalender 2005.
Testvorbereitungen, Unit Test
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
TDD mit MSTest Stefan Lieser Web:
Korrektheit von Programmen – Testen
Das Build-Tool ANT ETIS SS04. ant 2 Gliederung Motivation Build-Datei build.xml Bestandteile build.xml –Properties Zusammenfassung.
Software - Testung ETIS SS05.
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
Testsysteme für Automatisierte Softwaretests Seminarvortrag von Rica Wedowski.
Annette Bieniusa Sommersemester 2015
 Präsentation transkript:

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

Übersicht Grundlagen des Unittests Testverfahren Units Unit Testing Testverfahren Blackbox Whitebox Unit Testing mit Eclipse Besprechung der Übungsaufgabe Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Unit Testing Modultest, Komponententest Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Unit Funktionales Einzelteil Strukturmittel der Software-Architektur Methode Klasse Modul Komponente Strukturmittel der Software-Architektur Steigert die Wiederverwendbarkeit Module sind unabhängig voneinander bearbeitbar Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Unit Testing Unit ≈ kleinste testbare Einheit einer Anwendung Units werden isoliert getestet Notwendige umgebende Komponenten der Unit: Ersetzung durch Stubs oder Mock-Ups (keine Prototypen!) Testharness/framework Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Auch ein Mock-up http://pl.wikipedia.org/wiki/Atrapa Qualität von Software - Prof. Schlingloff, Lackner - SS2013 http://pl.wikipedia.org/wiki/Atrapa

Anwendung des Unit Testings In frühen Entwicklungsphasen Agile (z.B. Scrum) und testgetriebene Methoden (Extreme Programming) machen intensiven Gebrauch von Unit Testing Nach Code-Änderungen Automatisierte Regressionstests Viele Frameworks verfügbar (XUnit) Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Testverfahren Black- & Whitebox Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Blackbox Test Spezifikationsbasierter Blackbox-Test Eine Spezifikation beschreibt das erwartete Verhalten Interna des Testlings sind nicht einsehbar Tests überprüfen die Einhaltung der Spezifikation Exploratives Testen Spezifikation ist unbekannt Tester lernen das System kennen und wenden Erfahrungswerte an Wiederverwendung für Regressionstests Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Blackbox Techniken Äquivalenzklassenbildung Grenzwertanalyse Zustandsbezogener Test Entscheidungstabellen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Äquivalenzklassenbildung Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Grenzwertanalyse Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Whitebox Testen mit Kenntnis über den Code Typische Whitebox Techniken sind Unit Testing Dynamische Technik (mit Code-Ausführung) Inspektion Verifikation Whitebox Unit Testing ist häufig kontrollflussorientiert: Anweisungsüberdeckung Zweigüberdeckung Bedingungsüberdeckung Pfadüberdeckung Statische Techniken (keine Code-Ausführung) Qualität von Software - Prof. Schlingloff, Lackner - SS2013 http://kashif-whiteboxtesting.blogspot.de/2010_07_01_archive.html

Exkurs: Kontrollflussgraphen Jede Anweisung wird durch einen Knoten repräsentiert Knoten werden der Ausführungsreihenfolge nach mit gerichteten Kanten verbunden Jeder Knoten ist vom Wurzelknoten aus erreichbar Kontrollflussstrukturen führen zu Verzweigungen Basiswissen Softwaretests Andreas Spillner, Tilo Linz (2005), 3. Auflage, dpunkt.verlag, ISBN: 3-89864-358-1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Kontrollflussorientierte Abdeckungskriterien Anweisungsüberdeckung = Knotenüberdeckung Zweigüberdeckung = Kantenüberdeckung Weitere kontrollflussorientierte Abdeckungskriterien Bedingungsüberdeckung = Variablenbelegung für logische Ausdrücke Pfadüberdeckung = Betrachtung der Ausführungspfade Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Unit Testing mit Eclipse Qualität von Software - Prof. Schlingloff, Lackner - SS2013

JUnit (Beck&Gamma) JUnit wird als Bibliothek bereitgestellt und muss als solche auf dem Build-Path verfügbar sein. Eine JUnit-Testfalldatei ist eine Java-Klasse Testfälle sind mit „@Test“ annotierte Methoden Eine Junit-Testsuitedatei bündelt mehrere JUnit- Testfalldateien Beispiel für eine JUnit-Testdatei Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Basisfunktionen Assertmethoden: Leichte Überprüfung von Bedingungen (assertTrue, assertEquals,…). Erwartete Exceptions: In der Test-Annotation ist es möglich eine Exception anzugeben, die der Test werfen sollte. Helfermethoden: Es ist auch möglich, beliebig viele „normale“ Methoden in der Klasse zu benutzen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

JUnit Annotiationen @Test: Die tatsächlichen Testmethoden. @Before und @After: Methoden, die vor und nach jedem Test ausgeführt werden. @BeforeClass und @AfterClass: Methoden, die vor und nach allen Tests ausgeführt werden. @Ignore: Methoden, die noch nicht bestehende Funktionalität testen, können temporär ignoriert werden. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Beispiel in Eclipse Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Werzeugunintegration Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Eclipse Integration JUnit 4 ist in der aktuellen Eclipse Distribution für Java Developer enthalten Alternativ von http://www.junit.org das aktuelle Archiv herunterladen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Testsuite in Eclipse ausführen Rechtsklick auf die Testfalldatei Run as  JUnit Test wählen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Auswertung der Tests mit JUnit Nach der Testausführung öffnet sich automatische der Reiter „JUnit“ Qualität von Software - Prof. Schlingloff, Lackner - SS2013

EclEmma Codecoverage Analyse Installation Basierend auf Emma Bereitgestellt als Eclipse Plugin Installation Eclipse  Help  Install New Software: Dialog Eclipse Update Site: http://update.eclemma.org/  Add  Paket „EclEmma“ auswählen  Finish  Next, Next, Next… Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Messen der Code-Abdeckung JUnit-Datei auswählen EclEmma Launcher wählen Coverage As  JUnit Test wählen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Coverage-Auswertung der Testfälle Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Überdeckungskritierien in EclEmma Instructions (C0): Java Byte Code Anweisungen Kleinste Einheit Unabhängig von der Code-Formatierung Branches (C1): if und switch Kontrollstrukturen Exception-Handling ist kein Verzweigen Außerdem: Zyklomatische Komplexität, Lines, Methoden, Klassen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Auswertung einer Source-Datei Properties Dialog einer Source öffnen Coverage auswählen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

Übungsaufgaben Testanalyse und Testfallentwurf Qualität von Software - Prof. Schlingloff, Lackner - SS2013

1. Testfallentwurf Erstellen Sie für die gegebenen Klassen den Kontrollflussgraphen und beschriften Sie die Kanten. Wie viele Testfälle sind nötig um: 100% Anweisungsüberdeckung zu erreichen. 100% Zweigüberdeckung zu erreichen. Geben Sie die Testpfade an. Erstellen Sie jeweils eine JUnit-Testsuite, welche die maximal mögliche Anweisungsüberdeckung für die gegebenen Klassen erreicht. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

2. Testfallanalyse Laden Sie das auf der Webseite zur Verfügung gestellte Java-Projekt herunter und öffnen Sie dieses in Eclipse Messen Sie die Code-Überdeckung mit EclEmma für die zur Verfügung gestellte Testsuite. Dokumentieren Sie das Ergebnis der Analyse für die TicTacToeModel.java bei Instruktions- und Zweigüberdeckung Erstellen Sie zusätzliche Testfälle, sodass Sie die maximal mögliche Zweigüberdeckung erreichen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013