Testen mit JUnit. Seminar Arbeit von Wang Jian, Ia00. Fachhochschule Aargau Departement Technik Studiengang I Betreuender Dozent: Prof. Dr. D.

Größe: px
Ab Seite anzeigen:

Download "Testen mit JUnit. Seminar Arbeit von Wang Jian, Ia00. Fachhochschule Aargau Departement Technik Studiengang I Betreuender Dozent: Prof. Dr. D."

Transkript

1 Testen mit JUnit Seminar Arbeit von Wang Jian, Ia00 Fachhochschule Aargau Departement Technik Studiengang I Betreuender Dozent: Prof. Dr. D. Gruntz Windisch, 12. Februar 2003 Jian Wang, Ia00 11.Feb.2002 Seite 1/15

2 Inhaltverzeichnis Abstract... 3 Einleitung Aufbau des Frameworks JUnit Kochrezept mit Eclipse Installation von JUnit Ampel-Project Setup Testfälle Schreiben Simple Test Modell Der erste Testlauf Fixture Modell TestSuite Modell... 9 Schluss Anhang (Source-Code des Beispiels) Literaturverzeichnis Jian Wang, ia00 11.Feb.2002 Seite 2/15

3 Abstract JUnit framework is the de facto standard unit testing API for Java development, which makes it possible, to write and run-repeatable tests easily. JUnit tests do not require human judgment to interpret, the test results are verified by a comprehensive assertion facility provided by the framework. One can also let many of tests run at the same time. Being integrated in development tools, it allows executing test cases as part of the build process, therefore along the coding progress, programmers can quickly catch the new bugs with tests, and fix them. JUnit is so easy to learn that with a remarkably small investment developing software becomes faster, more reliable, more predictable, and less stressing. Jian Wang, Ia00 11.Feb.2002 Seite 3/15

4 Einleitung Software Bugs kosten uns viel: Zeit, Geld und Frust. Wie kann man dies vermeiden? Die Antwort weiss jeder Programmierer: Der erstellte Code muss laufend getestet werden. Aber wenige tun es, weil sie sich zu sehr beeilen müssen. Dies führt aber bald in einen Teufelskreis: Je grösser der Zeitdruck, desto weniger Tests werden geschrieben. Je weniger Tests geschrieben werden, desto unstabiler wird der Code sein. Je unstabiler der Code ist, desto mehr Fehlermeldungen werden vom Kunden beanstandet. Umso unproduktiver arbeitet der Programmierer. Je unproduktiver der Programmierer arbeitet, desto grösser wird der Zeitdruck. extreme Programming Um diesen Teufelskreis entgegenzuwirken fördert Extreme Programming(XP) die Durchführung von Unit- Tests und macht diese zu einer wichtigen Tätigkeit im Software-Entwicklungszyklus. XP ist ein leichtgewichtiger Entwicklungsprozess, welche dem Kunden die volle Macht über Richtung und Richtungswechsel eines Projektes zurückgibt. Auch entfallen administrativ schwerfällige Analysen und die eigentliche Arbeit kann auf die Code-Erstellung konzentriert werden. Ein wichtiger Punkt in XP ist das schnelle Feedback, ob unser Code das tut, was er tun soll. Dies wird mit umfangreichen Tests auf zwei Ebenen erreicht. Unit Tests auf Komponenten-Ebene sichern die Qualität der eigenen Software und die der Kollegen. Akzeptanztests auf Gesamtprojekt-Ebene kontrollieren die Funktionalität des Gesamtsystems aus Sicht der Anwender. Der gute Ansatz in der Praxis für ein schnelles Feedback auf der Komponenten-Ebene ist die Entwicklung in kleinen Iterationsschritten: Ein wenig codieren, ein wenig testen, ein wenig codieren, ein wenig testen. Die nicht automatisierte Ausführung, Interpretation und Analyse der einzelnen Unit Tests ist nicht denkbar. Schreiben der Automatisierten Tests Ein allgemeiner Weg Test-Fälle zu schreiben ist eine main() Methode zu erzeugen. Zu Beginn werden die Klassen instanziert. Die Methoden der Klassen werden aufgerufen, die Rückgaben werden typischerweise mit System.out.println() auf dem Bildschirm angezeigt. Man prüft danach, ob diese Ausgaben mit den Erwartungen übereinstimmen. Diese Testmethode hat Beschränkungen: 1.Es gibt keine vollständige Automatisierung. Das Ergebnis von jedem Testablauf muss manuell interpretiert und analysiert werden. 2.Der Erfolg oder Misserfolg der Testausführung ist nicht auf einen Blick erkennbar. 3.Es können nur einige wenige Klassen auf einmal getestet werden. 4.Ein Programm mit zu vielen Print-Out-Statements verursacht die unübersichtlichen und hässlichen Scroll Blindness. Alle diese Nachteile versucht JUnit Framework zu beheben. Dieses Framework zur Automatisierung von Unit Tests in Java wurde ursprünglich von Kent Beck und Erich Gamma entwickelt und wird als Open- Source-Projekt von Sourceforge weiterentwickelt. Mittlerweile ist JUnit zum Quasistandard als Java-Unit- Testing-Werkzeug geworden, und in vielen IDEs eingebunden wie z.b. Eclipse, Forte, JBuilder, Together etc. In diesem Bericht werden wir zuerst die Architektur des JUnit Frameworks betrachten. Anhand eines Beispiels werde ich noch die grundlegenden Arbeitsschritte, wie man Testfälle mittels Junit und Eclipse schreiben kann, illustrieren. Jian Wang, ia00 11.Feb.2002 Seite 4/15

5 1. Aufbau des Frameworks JUnit Framework ist ein grossartig Design-Pattern-intensives Beispiel. Die Abbildung 1 zeigt einen Überblick über die Kernpatterns im Framework. Wir werden aber hier nicht auf alle Details eingehen, sondern nur auf die aus der Benutzersicht wichtigsten Punkte. Das Interface Test und die zwei Klassen, TestCase und TestSuite zusammen haben das Composite-Pattern realisiert. Dieses Pattern ermöglicht dem Programmierer, viele unterschiedliche Testfälle leicht zusammenstellen und gleichzeitig laufen zu lassen. Test: Composite(Component). Ist das Interface, wo alle Typen von Unit-Test-Klassen implementieren müssen. Die Implementierungs-Klassen im Framework sind TestCase und TestSuite. TestCase: Composite(Leaf). Ist die zentrale Abstraktklasse, von welcher die User-Definierte Testfälle-Klassen erweitern können. TestSuite: Composite(Composite). Enthält eine Zusammenstellung von Test Objekten: TestCase, andere TestSuite oder die Benutzer eigene Implementation von dem Interface Test oder alle mögliche Kombinationen davon. TestResult:Collecting Parameter. Akkumuliert das Ergebnis von jedem Testablauf, wie Failures und Errors. Sie ist ein Erweiterungspunkt des Frameworks. Benutzer können weitere TestResult schreiben, um eigene Interpretation von Ergebnis zu definieren. Abb. 1 JUnit Patterns Übersicht Jian Wang, Ia00 11.Feb.2002 Seite 5/15

6 2. JUnit Kochrezept mit Eclipse Nun wie verwendet man Junit? Um die Arbeitsweise besser zu beleuchten, nehme ich ein AmpelModell als Beispiel. Das AmpelModell hat drei Lichter: Rot, Gelb und Grün. Durch das Drücken eines Knopfs auf dem GUI, schaltet die Ampel zyklisch in der Folge von rot, rot + gelb, grün, gelb und wieder rot um. Die Klasse hat folgende Methoden: public boolean getred(); public boolean getyellow(); public boolean getgreen(); public void setred(boolean b); public void setgreen(boolean b); public void setredyellow(boolean b); public void setyellow(boolean b); public void step(); // prüft ob das Rot-Licht an ist // prüft ob das Gelb-Licht an ist // prüft ob das Grün-Licht an ist // setzt die Ampel in rot // setzt die Ampel in grün // setzt die Ampel in rot+yellow // setzt die Ampel in gelb // schaltet die Ampel um public void addpropertychangelistener(propertychangelistener l); Beginnen wir ganz am Anfang - bei der Installation Installation von JUnit Die jeweils aktuelle JUnit-Version kann man von herunterladen. In seinem ZIP-Archiv werden ausser der benötigten JAR-Datei src.jar auch noch Beispiele und Tests für das Framework selbst geliefert. Dann in Eclipse 1.Lege neues Java-Projekt junit an. 2.File Import..., Zip file, Browse..., src.jar wählen. 3.Die nötige Packages wie in der Abb.2 gezeigt wählen: junit.extensions, junit.framework, junit.runner und junit.textui. 4.Wähle das src Verzeichnis von der junit- Projekt als die Destination for imported resources. Und Finish drücken. Abb. 2 JUnit Packages zu importieren 2.2 Ampel-Project Setup Lege ein neues Java-Projekt ampel für unser Beispiel an. In 'File Properties', das Projekt junit in 'Java Build Path Projects' übernehme. Siehe Abb. 3. Abb. 3 JUnit im Build Path zu übernehmen 2.3 Testfälle Schreiben Unter Umstände kann man die Testfällen-Gestaltung unterschiedlich strukturieren. Hier werden die drei meist gebrauchten Arten beschrieben. 1. Simple Test Modell 2. Test Fixture Modell 3. Test Suite Modell Jian Wang, ia00 11.Feb.2002 Seite 6/15

7 2.3.1 Simple Test Modell Bei 'Simple Test Modell' ist ein Testfall zu schreiben wie der Name sagt sehr einfach: 1. Generiere eine Subklasse von Junit.framework.TestCase. 2. Erstelle eine oder mehrere public void parameterlosen Test-Methoden. Damit diese Methoden von JUnit automatisch aufgegriffen werden, müssen ihre Namen mit dem Prefix, test beginnen. 3. Um die Ergebnisse zu verifizieren, stehen in JUnit zahlreiche Assertion-Facilities zur Verfügung. Wir schreiben jetzt einen Testfall, in dem wird die erste Anforderung unseres Beispiels überprüft, wobei ein neues AmpelModell-Objekt immer mit dem Zustand rot beginnen soll: import junit.framework.*; public class AmpelModellSimpleTest extends TestCase { public void testnewampel() { AmpelModellSimple a = new AmpelModellSimple(); asserttrue(a.getred()); assertfalse(a.getyellow()); assertfalse(a.getgreen()); Die Methode asserttrue() überprüft zur Laufzeit den boolean-ausdruck. Ergibt sich der Wert als false, so bricht der Testfall an dieser Stelle ab, ein Failure wird registriert und der nächste Test, falls vorhanden, wird gestartet. Der Name der Testklasse setzt sich per Konvention aus dem Namen der Zielklasse und der Endung Test zusammen. So kann das automatisierte Erkennen und eventuelle Entfernen von Testklassen erleichtert werden Der erste Testlauf Lassen wir nun diesen Testfall laufen beim Wählen des 'Run As JUnit Test' im Hauptmenü. Der JUnit View signalisiert mit einem roten Balken mit einer Reihe von Fehlern. Oben im Fenster wird die Anzahl der durchgeführten Tests, der dabei geworfenen Java-Exceptions sowie der fehlgeschlagenen Testfälle angezeigt. Im mittleren Bereich des JUnit Views findet man unter dem Reiter 'Failures' die Liste der fehlgeschlagenen Tests. Der Reiter 'Hierarchy' gibt eine Übersicht aller durchgeführten Tests. Der untere Bereich 'Failure Trace' zeigt den Call Back beim Ausführen fehlerhafter Test an. JUnit unterscheidet zwischen Failure und Error. Das Vorkommen eines Failures ist vorauszusehen, und wird mit der Assertions kontrolliert. Errors sind unerwartete Probleme wie zum Beispiel eine NullPointerException. Unter Failure Trace-Bereich in Abb. 4 ist die Fehlermeldung, Abb.4 JUnit View (asserttrue) die von der Methode asserttrue() ausgelöst wurde, nicht gerade sehr hilfreich. Wenn wir anstatt eine andere Methode assertequals() wie im folgenden Beispiel verwenden, bekommen wir einen JUnit View wie in Abb. 5 aufgezeigt. public void testnewampel() { AmpelModell a = new AmpelModell(); Jian Wang, Ia00 11.Feb.2002 Seite 7/15

8 assertequals( true, a.getred()); assertequals( false, a.getyellow()); assertequals( false, a.getgreen()); Bei der Fehlermeldung wird jetzt die Fehlerursache genauer aufgeführt (Abb. 5): expected: <true> but was: <false> Abb.5 JUnit View (assertequals) mit genauer Fehlermeldung Für die weiteren Assertion-Facilities, kann man in der JUnit API Dokumentation nachschlagen. Nachdem wir alle fehlerhaften Implementierungen korrigiert haben, signalisiert JUnit View dies mit einem grünen Balken Fixture Modell In der Praxis ist es oft so, dass wir eine Menge von Tests haben, die sich auf dasselbe oder ein ähnliches Set von Objekten beziehen. Um das Duplizieren des Codes zur Initialisierung dieser Objekte zu vermeiden, können sie in eine so genannte Test-Fixture zusammen erstellt werden. Jeder Test kann dann eigene, leicht unterscheidende Nachrichten oder Parameter an die Test-Fixture geben, und die unterschiedliche Ereignis kontrollieren. JUnit bietet eine Möglichkeit, den Code, der zur Erzeugung der Fixture benötigt wird, in die Methode setup() auszulagern. Nach dem Ausführen eines Tests Ressourcen wie zum Beispiel eine geöffnete Datei, Datenbank-Verbindungen können in einer Methode teardown() freigegeben werden. Der Lebenszyklus eines Testfalls läutet folgendermassen ab: 1. setup() wird ausgeführt. 2. eine Testmethode wird aufgegriffen. 3. teardown() wird aufgerufen. 4. wiederholt die obere Schritten für jede Testmethode. Dadurch wird gewährleistet, dass die Veränderungen, die ein Testfall auf Objekte der Fixture hat, keine Auswirkungen in einem anderen Testfall zeigen. Als Beispiel erweitern wir die AmpelModell-Klasse so, dass sie in einem GUI benutzt werden kann. Dazu muss die Möglichkeit bestehen, Änderungen des internen Zustands zu erkennen und entsprechend zu reagieren. Wir verwenden hier den java.beans.propertychangelistener. Unsere Tests werden prüfen ob die entsprechenden Events richtig ausgelöst werden. Der Einbau einer Fixture in der Testklasse sieht so aus: public class AmpelModellEventTest extends TestCase { private AmpelModellEvent ampel; private boolean gotevent; protected void setup() { Jian Wang, ia00 11.Feb.2002 Seite 8/15

9 ampel = new AmpelModellEvent(); ampel.addpropertychangelistener(new PropertyChangeListener() { public void propertychange(propertychangeevent evt) { gotevent = true; ); protected void teardown() { /*wir haben keine ständige Resource gebraucht */ // Das setzen des selben Werts keinen Event generieren soll. public void testnoevent() { ampel.setred(ampel.getred()); assertequals(false, gotevent); // prüft ob das Ändern des roten Lichts ein Event auslöst. public void testredevent() {... //prüft ob ein Event auslöst nach jedem step(). public void teststeptriggerevent() {... Wie gesehen, das Objekt Ampel ist als Instanz-Variabel deklariert, auf die von allen Tests aus zugegriffen werden kann. Die Methode setup() wurde überschrieben um die Variablen zu initialisieren. Da wir keine ständigen Ressourcen zugeteilt haben, machen wir nichts in der Methode teardown(). Nachdem die Fixture aufgebaut ist, haben wir drei Testmethoden hinzugefügt. Im Beispiel oben zeigt, wie die Testmethode testnoevent() mit der Fixture interagiert durch das Aufrufen der getter- und setter- Methoden des ampel-objektes TestSuite Modell Wenn wir die obige Testklasse laufen lassen, wird der TestRunner per Default alle TestMethoden der Klasse aufgreifen. Es gibt aber noch eine andere Variante, TestSuite Modell. Dieses Modell wird auch als Dynamic Testrunning bezeichnet. Die benötigten Tests können in einer TestSuite zusammengefasst werden, dadurch kann der Programmierer aus eigenen Wünschen selbst die Tests gestalten. Dazu brauchen wir zusätzlich nur noch einen Konstruktor mit String als Eingabe, und eine Implementierung von einer statischen Methode suite(). public AmpelModellEventTest(String name) { super(name); public static Test suite() { TestSuite suite = new TestSuite(); suite.addtest(new AmpelModellEventTest("testNoEvent")); suite.addtest(new AmpelModellEventTest("testRedEvent")); suite.addtest(new AmpelModellEventTest("testStepTriggerEvent")); return suite; Die Methode addtest() erlaubt das Hinzufügen von Tests zu einer Suite. Ein einzelner Testfall wird über den Konstruktor der Testfall -Klasse erzeugt. Als Parameter ist der Name von einer der zum Laufenden Test- Methoden. Durch Reflektion kann der TestRunner dann dynamisch die Methoden aufrufen. In der Praxis haben wir nicht nur eine oder zwei Testklassen. Statt jeweils einzelne Testklasse nacheinander als JUnit Test aufzurufen, ist es sinnvoll alle Testfälle mit einem Befehl zu starten. Diese ermöglicht JUnit mit seinem Composite-Pattern-Design. Durch alle Testfälle zu einer TestSuite zusammenzufassen, alle in der Suite befindliche Tests werden in der Reihenfolge des Hinzufügens ausgeführt. Das Zufügen der Testfälle ist ähnlich wie das Beispiel oben, ausserdem als Parameter wird einem Klassen-Objekt ( AmpelModellSimpleTest.class ) verwendet. Jian Wang, Ia00 11.Feb.2002 Seite 9/15

10 Eine solche TestSuite kann in Eclipse sehr leicht mit File New, Other..., Java, JUnit, TestSuite erzeugt werden. Defaultmässig wird eine neue Klasse AllTests erstellt, und alle sich in der gleichen Package befindende Testfällen werden automatisch angehängt. import junit.framework.test; import junit.framework.testsuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test for ampelmodell"); suite.addtest(new TestSuite(AmpelModellSimpleTest.class)); suite.addtest(new TestSuite(AmpelModellStepTest.class)); suite.addtest(new TestSuite(AmpelModellEventTest.class)); return suite; Lassen wir die AllTests-Klasse als JUnit Test laufen, bekommen wir einen JUnit View wie in Abb. 6 erscheint. Was hier besonders interessant ist, ist dass unter dem Reiter Hierarchy des JUnit Views alle Tests, die TestSuite enthält, angezeigt werden. Abb.6 Testsuite Hierarchie im JUnit View Schluss Nach der Begründung der Notwendigkeit von Automatisierten Testen, haben wir anhand eines kurzen Beispiels den Automatisierungsframework Junit kennen gelernt. JUnit ermöglicht Ein übersichtliches Testergebnis. Beliebige Zusammenfassung von Tests in Testsuiten. Die Unabhängigkeit der Testfälle, durch die Gemeinsamkeit von Tests in Test-Fixtures auszulagern. Die leichte Trennung von Testcode und Produktionscode, da alle Testfälle in einer eigenen Klassenhierarchie erstellt werden erweitern von der Basisklasse junit.framework.testcase. Als der de facto Standard Java-Unit-Test-API, ist JUnit in diversen IDEs eingebunden. Jian Wang, ia00 11.Feb.2002 Seite 10/15

11 Anhang (Source-Code des Beispiels) 1. Anwendungscode 1.1 AmpelModellSimple.java package ampelmodell; public class AmpelModellSimple { // prüft ob das Rot-Licht an ist public boolean getred() { return true; // return false; // fehlerhafte Zuweisung // prüft ob das Gelb-Licht an ist public boolean getyellow() { return false; // prüft ob das Grün-Licht an ist public boolean getgreen() { return false; 1.2 AmpelModellEvent.java package ampelmodell; import java.beans.propertychangesupport; import java.beans.propertychangelistener; public class AmpelModellEvent { // RED = 0x001, YELLOW = 0x010, RED-YELLOW = 0x011, GREEN = 0x100 private static final int RED = 1, YELLOW = 2, GREEN = 4; private int lights = RED; public AmpelModellEvent() { lights = RED; // prüft ob das Rot-Licht an ist public boolean getred() { return (lights & RED) == RED; // prüft ob das Gelb-Licht an ist public boolean getyellow() { return (lights & YELLOW) == YELLOW; // prüft ob das Grün-Licht an ist public boolean getgreen() { return (lights & GREEN) == GREEN; /** Methode step schaltet den Ampelzustand jeweils um. * Diese ist aber Bug-haftet im GUI. */ // public void step() { // switch(lights) { // case RED: // lights = RED + YELLOW; // break; // case RED+YELLOW: // lights = GREEN; // break; // case GREEN: // lights = YELLOW; // break; // case YELLOW: // lights = RED; // break; // default: throw new RuntimeException("Illegaler Ampelzustand: " + lights); // // // /** Methode step schaltet den Ampelzustand jeweils um. * Diese ist die Bug-freie Implementierung. */ public void step() { Jian Wang, Ia00 11.Feb.2002 Seite 11/15

12 switch(lights) { case RED: setyellow(true); break; case RED+YELLOW: setred(false); setyellow(false); setgreen(true); break; case GREEN: setyellow(true); setgreen(false); break; case YELLOW: setred(true); setyellow(false); break; default: throw new RuntimeException("Illegaler Ampelzustand: " + lights); // Das Ändern des Lichts soll ein Event auslösen. private PropertyChangeSupport pcs = new PropertyChangeSupport(this); public void addpropertychangelistener(propertychangelistener l) { pcs.addpropertychangelistener(l); /** Die setter-methoden lössen Propertyänderungen aus. */ public void setred(boolean b) { if (getred() ^ b) { lights ^= RED; pcs.firepropertychange("red",!b, b); public void setgreen(boolean b) { if (getgreen() ^ b) { lights ^= GREEN; pcs.firepropertychange("green",!b, b); public void setredyellow(boolean b){ if ((getred() && getyellow()) ^ b) { lights ^= RED+YELLOW; pcs.firepropertychange("red-yellow",!b, b); public void setyellow(boolean b){ if (getyellow() ^ b) { lights ^= YELLOW; pcs.firepropertychange("yellow",!b, b); 2. Testcode 2.1 AmpelModellSimpleTest.java package test.ampelmodell; import ampelmodell.ampelmodellsimple; import junit.framework.testcase; Jian Wang, ia00 11.Feb.2002 Seite 12/15

13 public class AmpelModellSimpleTest extends TestCase { // prüft ob ein neues AmpelModell-Objekt mit dem Zustand rot beginnt. public void testnewampel() { AmpelModellSimple a = new AmpelModellSimple(); // asserttrue und assertfalse werden verwendet // asserttrue(a.getred()); // assertfalse(a.getyellow()); // assertfalse(a.getgreen()); // // assertequals wird verwendet. assertequals(true, a.getred()); assertequals(false, a.getyellow()); assertequals(false, a.getgreen()); 2.2 AmpelModellEventTest.java package test.ampelmodell; import ampelmodell.ampelmodellevent; import junit.framework.test; import junit.framework.testcase; import junit.framework.testsuite; import java.beans.propertychangelistener; import java.beans.propertychangeevent; public class AmpelModellEventTest extends TestCase { // Instanz-Variablen deklarieren private AmpelModellEvent ampel; private boolean gotevent; // Instanz-Variablen Initializieren protected void setup() { ampel = new AmpelModellEvent(); ampel.addpropertychangelistener(new PropertyChangeListener() { public void propertychange(propertychangeevent evt) { gotevent = true; ); // Da wir keine ständige Resourcen alloziert haben, machen wir nichts. protected void teardown() { // do nothing // Constructor AmpelModellEventTest. public AmpelModellEventTest(String name) { super(name); // Die Tests können in eine TestSuite zusammengefasst werden. public static Test suite() { TestSuite suite = new TestSuite(); suite.addtest(new AmpelModellEventTest("testNoEvent")); suite.addtest(new AmpelModellEventTest("testRedEvent")); suite.addtest(new AmpelModellEventTest("testStepTriggerEvent")); return suite; // Das setzen des selben Werts soll keinen Event auslösen. public void testnoevent() { ampel.setred(ampel.getred()); assertequals(false, gotevent); // prüft ob das Ändern des roten Lichts ein Event auslöst. public void testredevent() { ampel.setred(!ampel.getred()); Jian Wang, Ia00 11.Feb.2002 Seite 13/15

14 assertequals(true, gotevent); //prüft ob nach jedem step() ein Event ausgelöst wird. public void teststeptriggerevent() { for (int i=0; i<5; i++) { gotevent = false; ampel.step(); assertequals(true, gotevent); Jian Wang, ia00 11.Feb.2002 Seite 14/15

15 Literaturverzeichnis JUnit Project Homepage: Kent Beck, Erich Gamma: JUnit: A Cook s Tour. Kent Beck, Erich Gamma: Test-Infected: Programmers Love Writing test. Kent Beck, Erich Gamma: JUnit Cookbook. Erik Hatcher and Steve Loughram: Java Development with Ant, Manning Publications Co, August 2002, Chapter 4: Testing with JUnit Johannes Link: Unit Tests mit Java, Der Test-First-Ansatz, dpunkt Verlag, 2002 ISBN: extreme Programming Homepage: Eclipse Tutorial mit JUnit, (Die Herkunft meines Beispiels AmpelModell) : Jian Wang, Ia00 11.Feb.2002 Seite 15/15

Testen mit JUnit. Motivation

Testen 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

Mehr

Das Test-Framework JUnit ETIS SS04

Das 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

Mehr

Programmiertechnik II

Programmiertechnik 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

Mehr

Einführung in die Informatik Tools

Einfü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

Mehr

Software-Engineering Software-Management

Software-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

Mehr

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

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009 Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger

Mehr

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

Testen 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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

JUnit - 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 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

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: 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

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-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,

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-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

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes 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

Mehr

Unit Tests und Fehlersuche

Unit 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

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

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

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

SEP 114. Design by Contract

SEP 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

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Praktische Übung 'JUnit-Test'

Praktische Ü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

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten: WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks

Mehr

Markus Wichmann. Testen von Java Code mit. JUnit

Markus 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

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

25 Import der Beispiele

25 Import der Beispiele 25 Import der Beispiele Versuch es nicht mit Gewalt. Nimm einfach einen größeren Hammer (Murphy s Law) 25.1 Einleitung Alle Beispielprogramme dieses Buchs funktionieren mit jeder Java-konformen Entwicklungsumgebung.

Mehr

Programmieren in Java

Programmieren 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

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word Anleitung zum erstellen einer PDF-Datei aus Microsoft Word 1. Vorbereitung des PCs Um dem Tutorial folgen zu können müssen folgende Programme auf Ihrem PC installiert sein: Ghostskript 8.64: Ghostskript

Mehr

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt. Python Installation 1 Vorbereitung Diese Anleitung ist für Windows ausgelegt. 1.1 Download Python kann online unter https://www.python.org/downloads/ heruntergeladen werden. Hinweis: Im CoderDojo verwenden

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

MSDE 2000 mit Service Pack 3a

MSDE 2000 mit Service Pack 3a MSDE 2000 mit Service Pack 3a Neues MSDE im WINLine-Setup: Seit der WINLine 8.2 Build 972 wird auf der WINLine-CD ein neues Setup der Microsoft MSDE mit ausgeliefert. Mit dieser neuen Version MSDE 2000

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Feb-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Diese Anleitung beschreibt das Vorgehen mit dem Browser Internet Explorer. Das Herunterladen des Programms funktioniert in anderen Browsern ähnlich.

Diese Anleitung beschreibt das Vorgehen mit dem Browser Internet Explorer. Das Herunterladen des Programms funktioniert in anderen Browsern ähnlich. Die Lernsoftware Revoca Das Sekundarschulzentrum Weitsicht verfügt über eine Lizenz bei der Lernsoftware «Revoca». Damit können die Schülerinnen und Schüler auch zu Hause mit den Inhalten von Revoca arbeiten.

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung

Mehr

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Step by Step Softwareverteilung unter Novell. von Christian Bartl Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen

Mehr

Ebenenmasken Grundlagen

Ebenenmasken Grundlagen Ebenenmasken Grundlagen Was sind Ebenmasken? Was machen sie? Wofür braucht man sie? Wie funktionieren sie? Ebenmasken sind eines der sinnvollsten Tools in anspruchvollen EBV Programmen (EBV = elektronische

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Python SVN-Revision 12

Python SVN-Revision 12 Python SVN-Revision 12 Uwe Ziegenhagen 7. Januar 2012 Vorwort Dieses Skript erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit. Es wird geschrieben, um mir als Gedächtnisstütze für den Umgang

Mehr

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor: Client-Installation ec@ros2 ASP-Server 1. Allgemeine Informationen Für den Einsatz von ec@ros2 ist auf den Clients die Software Java Webstart (enthalten im Java Runtime Environment (JRE)) notwendig. Wir

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Der Kalender im ipad

Der Kalender im ipad Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,

Mehr

Unit Tests mit Junit 4. Dario Borchers

Unit 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

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE:

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE: Einrichten eines POP-Mailkontos unter Thunderbird Mail DE: Ein E-Mail-Konto können Sie am einfachsten über den integrierten Assistenten einrichten. Dieser führt Sie Schritt für Schritt durch alle Einstellungsmöglichkeiten

Mehr

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

Java Entwicklung für Embedded Devices Best & Worst Practices! Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Standard Daten-Backup-Script

Standard Daten-Backup-Script Inhaltsverzeichnis 1. Installations-Anleitung... 2 2. Ausführen manuelle Backups... 5 3. Backup-Script beim Abmelden ausführen... 6 4. Backup-Script zum Task-Planer hinzufügen... 8 2010 web-net.ch, Seite

Mehr

Hilfe zur Dokumentenverwaltung

Hilfe zur Dokumentenverwaltung Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Hilfe zur Urlaubsplanung und Zeiterfassung

Hilfe zur Urlaubsplanung und Zeiterfassung Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,

Mehr

AUF LETZTER SEITE DIESER ANLEITUNG!!!

AUF LETZTER SEITE DIESER ANLEITUNG!!! BELEG DATENABGLEICH: Der Beleg-Datenabgleich wird innerhalb des geöffneten Steuerfalls über ELSTER-Belegdaten abgleichen gestartet. Es werden Ihnen alle verfügbaren Belege zum Steuerfall im ersten Bildschirm

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Software-Engineering Grundlagen des Software-Engineering

Software-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

Mehr

DeltaVision Computer Software Programmierung Internet Beratung Schulung

DeltaVision Computer Software Programmierung Internet Beratung Schulung Zertifikate von DeltaVision für Office Projekte 1 Einleitung: Digitale Zertifikate für VBA-Projekte DeltaVision signiert ab 2009 alle seine VBA Projekte. So ist für den Anwender immer klar, dass der Code

Mehr

Outlook Vorlagen/Templates

Outlook Vorlagen/Templates Joachim Meyn Outlook Vorlagen/Templates Erstellen Sie Vorlagen bzw. Templates in Outlook Joachim Meyn 27.03.2013 Inhaltsverzeichnis Outlook Vorlagen (.oft Dateien)... 2 Vorbereitung... 2 Anlegen einer

Mehr