Programmiertechnik II



Ähnliche Dokumente
PT2. Unit06: Modultests & JUnit. Sven Köhler Hasso-Plattner-Institut

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Das Test-Framework JUnit ETIS SS04

Testphase. Das Testen

Unit Tests mit Junit 4. Dario Borchers

Markus Wichmann. Testen von Java Code mit. JUnit

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls

Software Engineering in der Praxis

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

Unit Testing mit NUnit

SEP 114. Design by Contract

Unit Testing mit JUnit. Dr. Andreas Schroeder

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

Testen mit JUnit. Motivation

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

Unit Testing, SUnit & You

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

Software-Engineering Software-Management

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Unit Tests und Fehlersuche

Programmieren in Java

Softwarequalitätssicherung

Thema: Testen von objektorientierter Software

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Test-Driven Design: Ein einfaches Beispiel

am Beispiel von JUnit

Software - Testung ETIS SS05

JUnit. Software-Tests

Code verifizieren mittels

Praktische Übung 'JUnit-Test'

Benutzerhandbuch MedHQ-App

Testen im Software- Entwicklungsprozess

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

Testen von Softwaresystemen. 13. Januar 2015

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Code und Qualität 2: Testing

Software Engineering II (IB) Testen von Software / Modultests

Java Einführung Packages

Gesicherte Prozeduren

Keine Disketteneinreichung ab 1. Februar 2014

T1 - Fundamentaler Testprozess

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

SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen

Testmanagement in IT-Projekten

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Anforderungen an die HIS

Anleitung für die Lohnmeldung via ELM-Standard mittels PartnerWeb

TBooking: Integration der Online-Buchung auf der eigenen Homepage. Version 1.0. Bayern Reisen & Service GmbH Im Gewerbepark D Regensburg

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

4D Server v12 64-bit Version BETA VERSION

Java Entwicklung für Embedded Devices Best & Worst Practices!

Client-Server-Beziehungen

Java: Vererbung. Teil 3: super()

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Keine Disketteneinreichung ab 1. Februar 2014

Kurzeinführung: Webinar-Teilnahme

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

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

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Mobile-Szenario in der Integrationskomponente einrichten

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Qualitätsmanagement. Grundlagen

Framework zur Unterstützung von Unit-Tests

Einführung in die Informatik Tools

Design Patterns 2. Model-View-Controller in der Praxis

Kurze Anleitung zum Guthaben-Aufladen bei.

Die PayPal Testumgebung (Sandbox) Inhalt. Version Dezember 2013

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Die Makler System Club FlowFact Edition

Probeklausur Softwareengineering SS 15

Testen Prinzipien und Methoden

DER BESSER INFORMIERTE GEWINNT!

Vorlagen im Online Banking. Anlegen von Vorlagen

Kurzanweisung für Google Analytics

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Prinzipien Objektorientierter Programmierung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Einfach und schnell Kurse herbeizaubern mit dem Kurs Wizard

Dokumentation Exchange

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang

Tutorials für ACDSee 12: Hochladen von Fotos auf Ihren Account bei ACDSeeOnline.com

Akzeptanztesten mit Integrity und FitNesse Ein Vergleich

Autorisierung von ArcGIS 10.3 for Server mit Internetverbindung

Enjoy OCI direkt in SAP mit dem SAP Open Catalog Interface (SAP OCI)

Installationsanleitung CLX.PayMaker Home

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

GeODin 7 Installationsanleitung

Transkript:

Modultests

Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing Annahme: Quelltext des zu testenden Codes ist verfügbar Testfälle werden mit dem Ziel der Codeüberdeckung formuliert Gegenteil: Black box testing (z.b. beta testing) Automatische Tests Automatische Abwicklung aller Testfälle 2

Probleme Test nur eines Moduls Fehler, die sich aus der Kombination ergeben, sind nicht leicht erkennbar Integrationstest, Systemtest Automatisierung ist schwierig Entwicklung eines Orakels zur Bestimmung des Testergebnisses (verdict) Aufbau einer Testumgebung als Voraussetzung für den Testlauf Auswahl der Testfälle Codeüberdeckung (Zweigüberdeckung, Pfadüberdeckung, ) Iterativ: Hinzufügen eines neuen Testfalls, wenn Fehler gefunden wurde Ableitung aus Spezifikation: Ein Testfall pro geforderter Eigenschaft Bildung von Äquivalenzklassen, testen eines Repräsentanten Abhängigkeit von Implementierung Gray-box testing: Beschränkung auf öffentliche Operationen 3

Begriffe Testfall (test case): ein elementarer Softwaretest Vorbedingungen/Umgebung (fixture) Eingaben Erwartete Ausgaben Erwartete Nachbedingungen Testziel (test purpose): Definition der zu testenden Eigenschaft Testergebnis (verdict): Wurde die Eigenschaft erfolgreich getestet? Bestanden (pass), nicht bestanden (fail) Unbestimmt (inconclusive) Unerwartet bestanden/erwartet nicht bestanden (xpass, xfail) Testsuite: Sammlung von Testfällen 4

Testen mit JUnit Java-Klassenbibliothek zum Testen (junit.sf.net) junit.framework Kommandozeilentools zum Ausführen einer Testsuite junit.textui, junit.swingui, junit.awtui: TestRunner junit(1) Definition eines Testfalls Ableiten von junit.framework.testcase Implementieren von Test-Methoden Optional: Implementieren von runtest Optional: Implementieren von setup(), teardown() Test fixture Durchführen des Tests Instanzieren der Testfallklasse Aufruf von.run() Alternativ: Integration mehrerer Testfälle in eine TestSuite 5

6 Integration mehrerer Testfälle Methoden, deren Namen mit test beginnen, stellen Testfälle dar TestSuite.addTestSuite(java.lang.Class testclass) Führt Introspection auf testclass aus TestSuite suite = new TestSuite(); suite.addtestsuite(testclass.class); Testsuites können hierarchisch aufgebaut werden junit(1) erwartet statische Methode.suite()

Bestimmung des Testergebnisses Aufruf von zu testenden Methoden mit Eingabeparameter Methoden assert* zur Festlegung des Ergebnisses assertequals(erwartet, beobachtet) asserttrue(bedingung), assertfalse(bedingung) assertnull(object), assertnotnull(object) assertsame(erwartet, beobachtet), assertnotsame(e, b) fail(fehlermeldung) Scheitern von assertion bedeutet Scheitern des Tests Unerwartete Ausnahmen sind Fehler im Test Ausnahme abfangen, Behandlung durch fail() 7

8 Parametrisierung von Tests Testfälle benötigen parameterlosen Konstruktor, oder müssen explizit instanziert werden Explizite Konstruktion: ein Exemplar pro Testfall Test fixture muss Testfall in definierten Ausgangszustand bringen Bei Suite-Konstruktion über Introspection keine Parametrisierung möglich Parametrisierung durch Ableitung: Konstruktor oder setup() der abgeleiteten Klasse führen Parametrisierung durch

JUnit 4 Alte APIs stehen weiter zur Verfügung Deklaration von Testfällen über Java-5-Annotationen möglich @Test public void good_primes()... Parameter expected= für erwartete Ausnahmen Damit: Ableitung von TestCase nicht mehr nötig aber: Woher kommt asserttrue/assertequals/... Variante 1: org.junit.assert.assertequals(...) Variante 2: import static org.junit.assert.assertequals; Weitere Annotationsklassen für fixture,... @Before, @After, @Ignore,... 9