Literatur und Web. Komponenten WS 2014/15 Teil 6/JUnit
|
|
- Erica Küchler
- vor 6 Jahren
- Abrufe
Transkript
1 Literatur und Web [6-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [6-2] Westphal, Frank: Testgetriebene Entwicklung mit JUnit & FIT. dpunkt, 2006 [6-3] Link, Johannes: Softwaretests mit JUnit. 2. Auflage, dpunkt, 2005 [6-4] Tamm, Michael: JUnit-Profiwissen. dpunkt, 2013 [6-5] Ullenboom, C.: Java 7 - Mehr als eine Insel: Das Handbuch zu den Java SE-Bibliotheken, Gallileo Computing,
2 Übersicht Das Problem: Zeitpunkte zum Testen Arbeiten mit Assertions Arbeiten mit Junit Zusammenarbeit mit Maven Testfälle und Testsuites Integration in netbeans 3 Das Problem Klassische Vorgehensweise Tests werden zuerst von den Entwicklern durchgeführt. Dann folgen Tests im Rahmen der Integration. Dann Tests bei der Abnahme. Anschließend wird alles, was mit Tests zu tun hat, aus dem Code entfernt. Alle diese Tests sind später bei Weiterentwicklungen nicht mehr verfügbar, so dass sie manuell wiederholt werden müssen. Sie sind auch nicht mit dem Code verbunden. Tests können auch nicht zum Vertragsgegenstand gemacht werden. 4
3 Eine Lösung Der Code zur Prüfung ist und bleibt Bestandteil des Codes. Es wird ein Mechanismus zum automatisierten Test benutzt, der jederzeit, auch nach Auslieferung, benutzt werden kann. Verfahren bzw. Lösungen: Assertion JUnit 5 Assertions I Assertion = Zusicherung = Bedingung an Variablenwerte, die im Falle der Korrektheit, immer wahr sein muss Beispiele: if (a < 0) { Assertion: a < 0... else { Assertion: a >= Assertion a==??, b==?? a= 10; Assertion a==10, b==?? a= a+b; Assertion a==??, b==??... (beide Beispiele in Freistilnotation) 6
4 Assertions II Die Semantik jedes Statements sowie jedes Kontrollkonstrukts lässt sich als Transformation von Zusicherungen beschreiben. Durch die Verkettung von Statements - meistens sequentiell, aber auch parallel - lässt sich ein Programm als ein komplexer prädikatenlogischer Ausdruck beschreiben. Diese Beschreibung kann aufgrund einer Analyse ohne Ablauf des Programms erstellt werden. Sie kann auch sich nur auf ausgeführte Bereiche beziehen; dies wird dann symbolische Ausführung genannt. 7 Benutzung zum Testen An strategisch wichtigen Punkten werden Assertions eingefügt, die zu einer Fehlermeldung führen, wenn sie nicht zutreffen. Typische Punkte sind: Direkt zum Beginn einer Methode, um Parameter auf Korrektheit zu prüfen Direkt vor dem Ende einer Methode, um die Korrektheit des Resultates zu prüfen Innerhalb der Methode, wo problematische Abschnitte durchlaufen wurden Problematisch sind alle Abschnitte, wo die Bedeutung nicht ganz klar ist, z.b. nach Aufruf schlecht getesteter oder unverstandener Methoden. Über eine Compiler-Option kann bzw. in Java muss gesteuert werden, ob die Assertions ausgeführt werden oder nicht. 8
5 Beispiel I public class Assert1 { Assert1() { System.out.println(invers(1.0)); System.out.println(invers(2.0)); System.out.println(invers(10.0)); System.out.println(invers(0.0)); double invers(double arg) { return 1/arg; public static void main(string[] args) { new Assert1(); Infinity 9 Beispiel II public class Assert2 { Assert2() { System.out.println(invers(1.0)); System.out.println(invers(2.0)); System.out.println(invers(10.0)); System.out.println(invers(0.0)); double invers(double arg) { assert arg!= 0.0: "Datt jeht nich!"; return 1/arg; public static void main(string[] args) { new Assert2(); 10
6 Beispiel IV Es wird dann eine Fehlermeldung zusammen mit dem Traceback, d.h. der Angabe der Aufrufstellen der Methoden ausgegeben. 12
7 JUnit 4.11 JUnit ist eine Umgebung zum Testen von kleineren Codeteilen, insbesondere einzelnen Klassen oder kleineren Klassenverbänden. Eine Klasse wird in diesem Sinne Unit genannt. Es wird hier die Version 4.11 behandelt. Die Tests sind bei der Version 3.8 und ab 4.0 syntaktisch anders aufgebaut. JUnit war so erfolgreich, dass diese Idee auf andere Programmiersprachen implementiert wurde, z.b. PHPUnit. 13 Bedingungen an Unit-Tests I Es sollten keine Datenbankzugriffe notwendig sein. Es sollte keine Kommunikation über das Netzwerk notwendig sein. Es sollten keine Veränderungen während der Tests an Dateien vorgenommen werden. Zum Test sollten keine besonderen Konfigurationsdateien editiert werden müssen. Alle Tests müssen in beliebiger Reihenfolge (und auch beliebig häufig) ablauffähig sein. Alle Tests sollten in wenigen Sekunden ablaufen können. Diese Bedingungen sollen dazu führen, dass alle erstellten Tests jederzeit "so nebenbei" ablaufen können. Aber: das ist in der Praxis nicht immer praktikabel. 14
8 Bedingungen an Unit-Tests II Sind diese Bedingungen nicht erfüllt, so handelt es sich nicht um Unit-Tests (und dafür ist JUnit nicht gebaut worden). Aber das sollte niemanden abhalten trotzdem damit Unit-Tests durchzuführen Die Idee Zuerst werden die Testfälle entworfen und implementiert. Diese bestehen aus: einer Umgebung, die vorbereitet werden muss: das Fixture den erwarteten Ergebnissen Die Testfälle müssen sehr einfach sein, damit sie nicht selbst auch getestet werden müssen unabhängig sein, da die Reihenfolge der Tests nur sehr bedingt bestimmt werden kann eine kurze Laufzeit haben Die Testfälle selbst bilden eine Beschreibung der Bedeutung, in gewisser Weise eine "Dokumentation". 16
9 Konsequenzen Klassen bzw. deren Methoden können nicht mehr einfach so konzipiert werden; sie müssen eventuell so umstrukturiert werden, dass sie mit JUnit getestet werden können. Die Tests werden wie die Software mit ausgeliefert. Die Tests können (oder sollten?) auch mit dem Kunden vereinbart werden. Das stößt auf die Schwierigkeit, dass Kunden sich selten mit Unit- Tests befassen, sondern nur mit Abnahmetests, die aber in jedem Fall die oben erwähnten Bedingungen verletzen. Aber: Alles steht und fällt mit der vollständigen, oder wenigstens vernünftigen Auswahl der Testfälle. 17 Beispiel: Zinsklasse Es wird eine Methode, der als 1. Parameter der volle Wert und als 2. Parameter ein Anteil übergeben wird und die als Rückgabewert den entsprechenden Prozentwert zurückliefert, entwickelt. public class Interest { public double computepercent(double whole, double part) { return Double.MAX_VALUE; 18
10 Mit maven zu Fuß I mvn archetype:generate -DgroupId=de.htw_berlin.f4.kbe.junit -DartifactId=percent -Dpackage=de.htw_berlin.f4.kbe -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart <build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jar-plugin</artifactid> <version>2.4</version> <configuration> <archive> <manifest> <mainclass>de.htw_berlin.f4.kbe.percent</mainclass> <addclasspath>true</addclasspath> </manifest> </archive> </configuration> </plugin> Baustein jar-generierung Einsetzen 19 Mit maven zu Fuß II <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>exec-maven-plugin</artifactid> <version>1.2.1</version> <configuration> <mainclass>de.htw_berlin.f4.kbe.percent</mainclass> </configuration> </plugin> </plugins> </build> Einsetzen Baustein Execute <properties> <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties 20
11 Mit maven zu Fuß III <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.11</version> <scope>test</scope> </dependency> Baustein JUnit Version 4.11 benutzen package de.htw_berlin.f4.kbe; public class Percent { Pseudo-Programm public static void main(string[] args) { Interest inter= new Interest(); double per= inter.computepercent(1.0, 2.0); System.out.println("Percent "+per); 21 Mit maven zu Fuß IV package de.htw_berlin.f4.kbe; Zu testende Klasse: Nur der Rahmen public class Interest { public double computepercent(double whole, double part) { return Double.MAX_VALUE; package de.htw_berlin.f4.kbe; import org.junit.test; import static org.junit.assert.*; Testfall, der immer gelingt public class InterestTest { public InterestTest() public void testcomputerpercent() { assertequals(0.0, 0.0, 0.0); 22
12 Auch unter netbeans direkt geht es Hinweis: In diesem Fall benutzen wir netbeans nur als Editor. Maven wird außerhalb innerhalb anderer Ordner benutzt. 24
13 JUnit-Methoden für die Testklassen (Auszug) asserttrue(boolean) assertfalse(boolean) assertequals(expected,actual) assertequals(expected,actual,delta) assertnull(object) assertnotnull(object) assertsame(expected,actual) assertnotsame(expected,actual) fail(string) Prüfung, ob wahr bzw. false ist Vergleich zweier Werte auf Gleichheit mit möglichen Delta Hat die Referenzvariable den Wert Null oder nicht Sind die beiden Objekte identisch oder nicht (Referenzen) Test ist nicht bestanden Mit dem delta-wert kann für float/double-werte ein Intervall angegeben werden. Dies ist aufgrund möglicher Rundungsfehler notwendig. Zur besseren Erläuterung kann ein String als erster Parameter eingeschoben werden. 25 Ein richtiger Testfall I public class InterestTest { Interest value; public InterestTest() public void setup() throws Exception { value= new public void teardown() throws Exception { value= public void testzero() { assertequals(0, value.computepercent(10,100), 0.001); Aufbau der Testumgebung Abbau der Testumgebung Testfall Kleiner Hinweis: der Testfall ist fehlerhaft aber das wissen wir nicht... 26
14 Begriffe Fixture = Umgebung bestehend aus Objekten, die den Kontext des Testens definieren Ein Fixture wird zum Beginn des Tests aufgebaut und am Ende abgebaut. Fixtures verschiedener Tests dürfen sich nicht beeinflussen. Runner = Software, die die Tests durchführt und über das Ergebnis berichtet: Visuell mit einem grünen oder rotem Balken Textuell durch eine Zusammenfassung Es gibt für verschiedene Anwendungsfälle unterschiedliche Runner; sie können sogar selbst geschrieben werden. 27 Ein richtiger Testfall II Das geht natürlich schief. 28
15 Ein richtiger Testfall III package de.htw_berlin.f4.kbe; public class Interest { public double computepercent(double whole, double part) { return whole*100/part; Aus netbeans heraus muss installiert werden, hier per bat-datei: set SRC=D:\bmesser\NetBeansProjects\junit-Percent\src\de\htw_berlin\f4\kbe set DST=D:\temp\percent\src\main\java\de\htw_berlin\f4\kbe xcopy /Y %SRC%\*.java %DST% set SRC=D:\bmesser\NetBeansProjects\junit-Percent\test\de\htw_berlin\f4\kbe set DST=D:\temp\percent\src\test\java\de\htw_berlin\f4\kbe xcopy /Y %SRC%\*.java %DST% pause 29
16 Nun der nächste Testfall public void testzero() { assertequals(0,value.computepercent(0,100), public void testten() { assertequals(0.1,value.computepercent(100,10), 0.001); Ein Test auf 10% - und scheitert, denn: public class Interest { public double computepercent(double whole, double part) { return whole*100/part; Oops ach ja schon wieder war der Test falsch, nun ist er public void testten() { assertequals(10, value.computepercent(100,10), 0.001); 31 Nun der nächste Testfall II Der zweite Test ist nun in Ordnung, aber der erste, der ja vorher lief, nicht. Denn nun gibt es eine Division durch 0. public class Interest { public double computepercent(double whole, double part) { if(whole==0) { return 0; return part*100/whole; Und wieder alles im Lot: 32
17 Nun der nächste Testfall II Aber schlechter Stil! public class Interest { public double computepercent(double whole, double part) { if(whole==0.0) { return 0.0; else { return part*100.0/whole; Warum ist das nun besser?? In jedem Fall ist bei Qualitätsverbesserungen am Code und seien es nur kosmetische Dinge das Testen mit Junit sehr, sehr hilfreich. 33 Nun weitere public void testzero() { assertequals(0, value.computepercent(0,100), public void testten() { assertequals(10,value.computepercent(100,10), public void testvalues() { assertequals(50, value.computepercent(100, 50), 0.001); assertequals(100,value.computepercent(100,100), 0.001); assertequals(50, value.computepercent(200,100), 0.001); Es gibt die Empfehlung, immer nur einen Testfall pro Testroutine zu testen, um Fehler besser einkreisen zu können. Bei Klassen mit inneren Zuständen muss dies auch sein, da sich dann die Tests gegenseitig beeinflussen können. 34
18 Jetzt die negativen public void testnegative() { assertequals(10, value.computepercent(-100,10), 0.001); assertequals(10, value.computepercent(100,-10), 0.001); Und: Fehler! Und wir verbessern sofort: public double computepercent(double whole, double part) { double abswhole= Math.abs(whole); double abspart = Math.abs(part); if(abswhole==0.0) { return 0.0; else { return abspart*100.0/abswhole; 35 public void testextrem() { assertequals(0, value.computepercent(0,0), 0.001); assertequals(0, value.computepercent(double.max_value,1), 0.001); assertequals(0, value.computepercent(double.max_value,1), 0.0); assertequals(0, value.computepercent(double.max_value,double.min_value),0.001); assertequals(100,value.computepercent(double.max_value,double.max_value),0.001); Die beiden roten Tests scheitern. Dies zu reparieren, ist (vielleicht) eine Hausaufgabe. 36
19 Wahl der Testfälle Alle Sonderfälle Alle gerade noch erlaubten Extremfälle Leichte Abweichungen der Extremfälle ins Falsche (falls die Klasse dies prüfen soll) Ein oder zwei Durchschnittsfälle 37 Schema für das Testen einer Klasse I import org.junit.after; import org.junit.afterclass; import org.junit.before; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; public class Name { public Name() public static void setupclass() public static void teardownclass() public void setup() public void teardown() public void testcase() { fail("test uncompleted"); 38
20 Schema für das Testen einer Klasse @Test Bedeutung Routine wird einmal zum Beginn des Tests der Klasse ausgeführt. Routine wird einmal nach dem Test der Klasse ausgeführt. Routine wird jedes Mal vor einem Test einmal ausgeführt. Routine wird jedes Mal nach einem Test einmal ausgeführt. Routine realisiert einen Test. 39 Ein zweites Beispiel Reziproke Werte I public class Invertation { double invers(double arg) { //assert arg!= 0.0: "Datt jeht nich!"; return 1.0/arg; public class InvertationTest { Invertation value; public InvertationTest() public void setup() { value= new public void teardown() { value= public void testvalues() { assertequals(0.01, value.invers(100), 0.001); So sieht die Klasse (von oben) aus. Dieser Test läuft! 40
21 Ein zweites Beispiel Reziproke Werte public void testvalues() { assertequals(0.01, value.invers(100), 0.001); assertequals(0.1, value.invers(10), 0.001); assertequals(1, value.invers(1), public void testnegative() { assertequals(-0.01, value.invers(-100), 0.001); assertequals(-0.1, value.invers(-10), 0.001); assertequals(-1, value.invers(-1), public void testzero() { assertequals(0, value.invers(0), 0.001); Dieser Test läuft! Dieser Test läuft! Dieser Test läuft nicht! 41 Ein zweites Beispiel Reziproke Werte II public class Invertation { double invers(double arg) { if(arg!= 0.0) { return 1.0/arg; else { throw new IllegalArgumentException(); Nun wird eine Exception geworfen, die durch den Aufrufer nicht behandelt werden muss. 42
22 Ein zweites Beispiel Reziproke Werte public void testzero() { try { double val= value.invers(0); fail("illegalargumentexception expected"); catch (IllegalArgumentException args) { Erwartete Exception Erläuternde Meldung So sieht der dazu gehörende Testfall aus. 43 Suites Zusammenfassen mehrerer Testklassen I public class Invertation1Test public void testvalues() { System.out.println("Invertation1Test"); assertequals(0.01, value.invers(100), 0.001); assertequals(0.1, value.invers(10), 0.001); assertequals(1, value.invers(1), 0.001); public class Invertation2Test public void testnegative() { System.out.println("Invertation2Test"); assertequals(-0.01, value.invers(-100), 0.001); assertequals(-0.1, value.invers(-10), 0.001); assertequals(-1, value.invers(-1), 0.001); 44
23 Suites Zusammenfassen mehrerer Testklassen III public class Invertation3Test public void testzero() { System.out.println("Invertation3Test"); try { double val= value.invers(0); fail("illegalargumentexception expected"); catch (IllegalArgumentException args) { In diesem Beispiel wurde die einzelne Klasse auf drei Klassen aufgeteilt. In der Praxis testet eine Testklasse eine Klasse, so dass bei einer solchen Konstruktion mehrere Klassen einzeln getestet werden. 45 Suites Zusammenfassen mehrerer Testklassen IV package de.htw_berlin.f4.kbe; import org.junit.runners.suite; Invertation1Test.class, Invertation2Test.class, Invertation3Test.class ) public class InvertationSuite { Es ist ein anderer Runner erforderlich es gibt viele(!). Eine Suite wird über eine Annotation definiert. Eine Liste von Klassendeskriptoren bildet die Suite Die eigentliche Klasse dient nur der Form, die Tests laufen über die Annotations 46
24 Suites Zusammenfassen mehrerer Testklassen V Beispiellauf innerhalb von netbeans (ohne Maven) 47 Messung der Testabdeckung mit cobertura I <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>cobertura-maven-plugin</artifactid> <version>2.6</version> <configuration> <formats> <format>html</format> <format>xml</format> </formats> </configuration> </plugin> Aufruf mvn cobertura:cobertura Ein neues Plugin muss dazu im build-bereich deklariert werden. Siehe: 48
25 Messung der Testabdeckung mit cobertura II 49 Messung der Testabdeckung mit cobertura III Im target-ordner unter site sind die HTML-Dateien und die XML-Datei zur automatischen Auswertung. 50
26 Maven in netbeans I Maven-Projekt auswählen (nach Installation des Plugins) Dann die Koordinaten eingeben 51 Maven in netbeans II Bei den Dependency Junit mit Version 4.11 angeben sowie die Klassen definieren, einschließlich der Testklassen (letztere über den Generator) Die POM-Datei kann auch direkt editiert werden. 52
27 Maven in netbeans III Mit der Maus (rechte Taste) über das Projekt als Ziel z.b. test angeben dann läuft mvn test ab. Im Console-Fenster erscheinen die (vielen) Maven-Meldungen. 53 Nach dieser Anstrengung etwas Entspannung... 54
Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit
Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit 31.10.14 1 Literatur und Web [6-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [6-2] Westphal,
MehrUnit Tests mit Junit 4. Dario Borchers
Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests
MehrKurzanleitung JUnit. 1 Grundlagen. 1.1 Begriffsdefinitionen. 1.2 Empfehlungen
JUnit ist ein Testframework zum Testen von Java-Code. Es eignet sich besonders gut zum automatisierten Testen und ist ein wichtiges Hilfsmittel des Extreme Programmings, bei dem der Test-First-Ansatz angewendet
MehrProgrammierung 2 Studiengang MI / WI
Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung
MehrJUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1
JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen
MehrSwp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept
Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,
MehrDas Test-Framework JUnit ETIS SS04
Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen
MehrUnit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck
Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrTesten mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang
Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da
MehrProgrammieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte der Softwareentwicklung.
MehrProgrammierprojekt. Anne0e Bieniusa Sommersemester 2014
Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase
MehrLiteratur und Web. Komponenten WS 2014/15 Teil 8/Mocks
Literatur und Web [8-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [8-2] Westphal, Frank: Testgetriebene Entwicklung mit JUnit & FIT. dpunkt, 2006 [8-3]
MehrProgrammiertechnik II
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
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrTesten mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls
Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests
MehrInfo: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen
Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels
MehrDas automatisierte Testen mit JUnit
Das automatisierte Testen mit JUnit SWT Seminar (SS03) Ausgearbeitet von Sundui Baatarjav Am Fachbereich Informatik der TU-Berlin EINLEITUNG 3 JUNIT - FRAMEWORK 4 Aufbau und Struktur 4 TestCase 4 Assert
MehrAllgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen
5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:
MehrDer EMF-generierte Code. 7. November 2012
Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen
MehrSoftware Engineering Test Automatiserung und Junit, Test Driven ( test first) Development
Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik Prof. A. Müller, HS KL Software
MehrProgrammieren in Java
Programmieren in Java Vorlesung 12: Metawissen Java Bibliotheken, Maven Robert Jakob Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Robert Jakob (Univ. Freiburg) Programmieren in Java JAVA 1 / 33
MehrSoftware-Engineering Software-Management
Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3
MehrSemesterprojekt Semantic Text Browsing. Ulf Leser, Philippe Thomas (, Lars Döhling)
Semesterprojekt Semantic Text Browsing Ulf Leser, Philippe Thomas (, Lars Döhling) Testing Was ist ein Test? Warum testen wir? Arten von Tests JUnit: Testing in Java Best Practises Test driven development
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrTesten mit JUnit. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03
Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da die meisten Programme
MehrJava Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit Prof. Dr. Nikolaus Wulff JUnit JUnit ist das Opensource Testframework. Es existieren Portierungen für fast alle objektorientierten
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrThema: Testen von objektorientierter Software
Seminar Simulation und Bildanalyse mit Java Thema: Testen von objektorientierter Software Uta Dienst 1. Teil: Einführung in den Software-Test 2. Teil: JUnit-Einführung Uta Dienst 17.11.2003 2 1. Teil:
MehrUnit Tests und Fehlersuche
Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein
Mehri n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
MehrUnit Tests in der Testgetriebenen Entwicklung
Unit Tests in der Testgetriebenen Entwicklung Reduzierung des Testanteils am Gesamtsoftwareentwicklungsaufwand -- neue Strategien und Tools -- Hauptseminar Systemorientierte Informatik Christian Krauß
MehrUnit Testing mit JUnit. Dr. Andreas Schroeder
Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?
MehrUnit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG
Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/
MehrJava für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrMarkus Wichmann. Testen von Java Code mit. JUnit
Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrBeispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
MehrSoftware Engineering II
Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters
MehrBeispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
Mehr1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2
1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrSoftware Engineering II
Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt
MehrGestatten: Hudson. Augmented Development. Thomas Kruse. Sun Campus Ambassador thomas.kruse@sun.com
Gestatten: Hudson Augmented Development Thomas Kruse Sun Campus Ambassador thomas.kruse@sun.com 1 Zum Referenten Thomas Kruse Java Entwickler seit 1998 Mitgründer der Java Usergroup Münsterland: jug-muenster.de
MehrPraktische Übung 'JUnit-Test'
Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse
Mehr4 Testgetriebene Entwicklung mit PHPUnit
57 4 Testgetriebene Entwicklung mit PHPUnit»The fewer tests you write, the less productive you are and the less stable your code becomes.«erich Gamma 4. 1 Einleitung Das Testen von Software ist wichtig.
MehrÜbung zur Vorlesung Einführung in Software Engineering
Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrSOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST
SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen
MehrTesten im Software- Lebenszyklus
TestNG TestNG Testen im Software- Lebenszyklus White-Box vs Black-Box Testing White-Box-Testing Black-Box-Testing Test-Driven Development (TDD) testgetriebene Entwicklung zuerst werden die Unit-Tests erstellt.
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrTesten von grafischen Benutzeroberflächen
Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit
MehrJava - Programmierung - Objektorientierte Programmierung 1
Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrSchritt 4: Hallo Enterprise Bean
Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrKapitel 5.2 Testwerkzeuge
Kapitel 5.2 Testwerkzeuge SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrEin erster Blick. Eclipse und Debugging. Anlegen von Projekten. Wissenswertes...
Eclipse und Debugging Ein erster Blick Starten mittels /usr/bin/eclipse oder auch Applications > Programming Legt workspace in eurem Homedir an! CoMa SS 09 Wissenswertes... CoMa II SS 09 1/24 CoMa II SS
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
Mehrleicht zu schreiben sein. Wenn ein Test nicht leicht zu schreiben ist, werden wir ihn nicht schreiben.
PHPUnit Eine kurze Einführung vom Frank Staude vorgetragen beim Treffen der PHP Usergroup Hannover am 02.11.2006 Warum Testen? Jeder von uns, der programmiert, macht auch Fehler. Es
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrSoftware-Engineering Grundlagen des Software-Engineering
Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrTesten von Softwaresystemen. 13. Januar 2015
Testen von Softwaresystemen 13. Januar 2015 Überblick Was umfasst das Testen von Software? Warum sollte man Software testen? Motivation für Software-Tests Wie sollte man Software testen? Grundlegende Teststrategien
MehrWebService in Java SE und EE
Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.
MehrSoftware Engineering. 3. JUnit und ANT. Franz-Josef Elmer, Universität Basel, HS 2012
Software Engineering 3. JUnit und ANT Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 3. JUnit und ANT 2 Unit Testing Unit Test: Automatischer Test welcher eine Einheit (z.b. Modul,
MehrVariablen manipulieren per JDI
Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrPersönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy
Über Ant und Maven zu SBT und Gradle Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy 07.04.2011 Speaker Andreas Hartmann [hartmann@adesso.de] Principal Software Engineer
Mehr1. Zeilenendkommentare: //... 2. geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */
1 Kommentare im Source-Code Kommentare werden im Source-Code überlesen und wirken wie "white Space" (Leerzeichen, Tabulator, Zeilenvorschub). Mit Ausnahme des @deprecated-tag in Dokumentationskommentaren
Mehrvon Anja Austermann Drag and Drop
von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java
Mehr-Testen verteilter Anwendungen
-Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrDer Weisheit letzter Schluss:
Der Weisheit letzter Schluss: Maven 2 in der Java Entwicklung Web Site: www.soebes.de Blog: blog.soebes.de Email: info@soebes.de Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1. Was ist Maven? 2. Features von
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrBuild Management. Präsentation von Daniel Mies daniel.mies@1und1.de
Build Management Präsentation von Daniel Mies daniel.mies@1und1.de Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse
MehrQualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit
1 DYNAMISCHER TEST Whitebox Testen mit JUnit Übersicht 2 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe
MehrExceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero
Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen
MehrCode verifizieren mittels
Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren
MehrPraktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel
Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String
MehrTCP/IP Programmierung. C# TimeServer Java6 TimeClient
TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7
MehrKapitel 10b Test-Automatisierung
Vorlesung Softwaretechnologie Wintersemester 2010 R O O T S Kapitel 10b Test-Automatisierung Stand: 24.1.2011 Warum automatisierte Tests? Automatisierte Modultests mit JUnit Test First Development und
MehrVorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.
Vorbereitungen Download AVO-Übung ICE Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS005 Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrWebtests mit Selenium, Groovy, TestNG und Maven
mit Selenium, Groovy, TestNG und Maven Im ersten Teil dieser Artikelserie [1] wurden Testkonzepte und Selenium [2] näher vorgestellt. Dieser zweite Teil stellt die Integration in ein Projekt vor und rundet
MehrLeJOS: Mindstorms in Java programmieren
LeJOS: Mindstorms in Java programmieren Alexander Koller Softwareprojekt "Sprechende Roboter" 30. April 2004 Überblick Warum Java? Was ist LeJOS? Motoren steuern Auf Sensoreingaben reagieren Wie geht's
MehrEinführung in JUnit 4
Einführung in JUnit 4 für LOMF-Programmierer Version: 1.2 Fragen, Anregungen und Korrekturen zu diesem Dokument bitte per E-Mail an: Christoph.Schulz@fhdw.de Inhaltsverzeichnis 1 Einleitung...2 2 Ein kleiner
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrKonzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest
Konzeption und prototypische Implementierung eines Werkzeuges für den funktionalen Klassentest Übersicht Motivation Zielsetzung Lösungsansatz und dessen Realisierung Anwendungs-Szenarien Präsentation von
MehrKlassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben
3. tests Motivation der Äquivalenzidee typische Findung von integrierte Grenzwertanalyse abgeleitete Testfälle Klassen von Testfällen In der Literatur gibt es recht unterschiedlich detaillierte Klassifizierungen
Mehr