Das automatisierte Testen mit JUnit
|
|
|
- Dennis Baumhauer
- vor 10 Jahren
- Abrufe
Transkript
1 Das automatisierte Testen mit JUnit SWT Seminar (SS03) Ausgearbeitet von Sundui Baatarjav Am Fachbereich Informatik der TU-Berlin
2 EINLEITUNG 3 JUNIT - FRAMEWORK 4 Aufbau und Struktur 4 TestCase 4 Assert 6 TestRunner 6 Testfixture 8 TestSuite 8 Testen von Exception 10 DIE ERWEITERTEN JUNIT-FRAMEWORKS 11 JXUni -Framework 11 JFCUnit 11 XMLUnit 12 Castus 12 ZUSAMMENFASSUNG 12 QUELLENVERZEICHNIS 12
3 Einleitung Testen ist wichtig bei der Softwareentwicklung. Leider haben die meisten Projekte wenig Zeit zum Testen. Es gibt verschiede Testansätze. z.b. Modultest, Spezifikationstest, Integrationstest etc. In dieser Ausarbeitung wird Modultest vorgestellt und welches Werkzeug unterstützt Modultest. Die zentrale Testaufgabe der Programmierer sind jedoch die so genannten Unit Tests, auch Modultests genannt. Unit Tests werden in der Softwareentwicklungsprozess auf unterschiedliche Phasen eingesetzt. z.b. Bei der V-Modell 1 wird Unit Test in der Phase Modultest eingesetzt. XP 2 ist leichtgewichtige Softwareentwicklungsprozess, in der als erstes Unit Tests vor der eigentlichen Applikationscode geschrieben werden. Unit Tests konzentriert sich nicht auf das gesamte System, sondern auf einzelne Einheiten (Moduls) des Systems. Jedes einzelne Stück Code ist getestet. Dadurch werden Änderungen, die vorhandene Funktionalität zerstören, sofort entdeckt. Für die Unit Tests besteht die Forderung zur völligen Automatisierung. Ohne Automatisierung sind Unit Tests in der Praxis unvorstellbar, weil Unit Tests unzählige Male pro Tag ausgeführt werden. Die Sprache zur Testspezifikation ist die Programmiersprache selbst. Es gibt zwei Möglichkeiten, um die Applikationsklasse zu testen: Statische Methode: für jede Klasse eine statische Methode mitzugeben, die eigene Tests ausführt. Eigene Tester-Klasse: für jede Klasse gibt es eine eigene Tester-Klasse, die die Funktionalität der Klasse testet. Diese beiden Varianten haben Vor- und Nachteile. Statische Methode Eigene Tester-Klasse Vorteile Zugriff auf private Teile der Klasse möglich. Leichte Wiederverwendungen des Testcode in Unterklassen Trennung von Anwendungscode und Testcode. Strukturierung des Testcode unabhängig von Klassenstruktur Nachteile Keine Trennung von Anwendungscode und Testcode Zusätzliche Klasse notwendig. Kein Zugriff auf private Teile der Klasse möglich Es gibt Unit Testing Frameworks für die meisten Programmiersprachen. z.b. CppUnit für C++,.NUnit für.net Sprachen. Im Folgenden wird JUnit-Framework näher vorgestellt. 1 V-Modell nach Böhm 2 Extreme Programming
4 JUnit - Framework Aufbau und Struktur JUnit (Java for Unit Testing) bietet ein in Java geschriebenes Framework zur Automatisierung von Unit Tests an. Dieses Open-Source-Framework zur Automatisierung von Unit Tests in Java wurde von Kent Beck und Erich Gamma entwickelt. Die aktuelle Version von JUnit 3.8 ist über die Website verfügbar. Diese Klassen spielen wichtige Rolle in JUnit-Framework: TestRunner, um Tests auszuführen. TestCase, um Testfall zu erstellen. TestSuite, um Testfälle zusammenzufassen. Assert, um Testfall zu überprüfen. TestResult, um Testergebnisse zu sammeln. In der Abbildung 1 wird gezeigt, wie diese Klassen miteinander in Verbindung stehen. Abbildung 1 TestCase Die Testfälle werden in eigenen Klassen definiert und die Testklasse muss von der Klasse junit.framework.testcase abgeleitet werden. Damit werden der Testcode und der Applikationscode getrennt behandelt. Wichtig ist, dass die Ausführung des Testfalles keine
5 Auswirkung auf andere Testfälle hat. Der Testfall wird in der Methode, deren Name mit test anfängt, geschrieben. Als kleines Beispiel haben wir eine Klasse Money 3. Diese Klasse besitzt das Attribute amount,das den Geldbetrag darstellt, und die Methode getamount(), die den Geldbetrag ausgibt, und add(int i), die den Geldbetrag um i erhöht. Beispiel: Klasse Money public class Money { private double amount; public Money(int amount) throws Exception { if (amount < 0) { throw new Exception( Grösser als NULL sein! ); this.amount = amount; public double getamount() { return this.amount; public void add(int i) { this.amount +=i; Die Klasse MoneyTest ist abgeleitet von TestCase und Testklasse für die Klasse Money public class MoneyTest extends junit.framework.testcase Meistens werden alle public Methoden von der Applikationsklasse getestet. Nun schreiben wir Testfälle: import junit.framework.*; public class MoneyTest extends TestCase { public MoneyTest(String name) { super(name); public void testgetamount() throws Exception { Money money = new Money(10); asserttrue(money.getamount(), 10); public void testadd() throws Exception { Money money = new Money(10); money.add(10); assertequals(money.getmoney(), 20); public void testconstructor() throws Exception { public static void main(string[] args) { junit.swingui.testrunner.run(moneytest.class); 3 aus dem JUnit-Homepage
6 Assert Bestimmte Eigenschaften von Testobjekt werden auf Übereinstimmung mit unseren Erwartungen überprüft. Die Klasse Assert bietet sämtliche assert-methoden an, die zur eindeutigen Überprüfung der Testergebnisse dienen: asserttrue( boolean condition) verifiziert, ob eine Bedingung wahr ist. assertequals(object expected, Object actual) verifiziert, ob zwei Objekte gleich sind. ( Der Vergleich erfolgt in JUnit über die equals Methode.) assertfalse(boolean conditon) verifiziert, ob eine Bedingung falsch ist. assertnull(object object) verifiziert, ob eine Objektreferenz null ist. assertnotnull(object object) verifiziert, ob eine Objektreferenz nicht null ist. assertsame(object expected, Object actual) verifiziert, ob zwei Objekte gleiche Referenzen haben. assertnotsame(object expected, Object actual) verifiziert, ob zwei Objekte nicht gleiche Referenzen haben. fail() Testfall einfach fehlschlägt. ( benutzt meisten Testen von Exception) Die Klasse TestCase ist von der Klasse Assert abgeleitet. TestRunner JUnit - Framework bietet drei unterschiedliche TestRunner-Klassen, um die Tests auszuführen: a) junit.textui.testrunner, der die Testergebnisse auf dem Konsule schreibt. b) junit.awtui.testrunner, ein einfaches AWT-basiertes graphisches Tool. c) junit.swingui.testrunner, ein komplexeres Swing-basiertes graphisches Tool. Nun führen wir unsere Testklasse mit diesen drei TestRunner aus. a) junit.textui.testrunner #java -cp junit.jar;. junit.textui.testrunner MoneyTest Time: 0,01 OK (3 tests) Jeder Punkt der Ausgabe zeigt uns einen erfolgreich ausgeführten Test; dazu hätten wir noch die Testausführungszeit, das Gesamtergebnis (OK) und die Anzahl der Tests. Fehlgeschlagene Tests hätten sich als F oder E in der Textausgabe bemerkbar gemacht und das Gesamtergebnis geändert. ( F entspricht Failure und E entspricht Error, aber dazu später mehr) b) junit.awtui.testrunner #java -cp junit.jar;. junit.awtui.testrunner MoneyTest In der Abbildung 2 junit.awtui.testrunner wird gezeigt.
7 Abbildung 2 Der grüne Balken zeigt, dass die Tests erfolgreich abgelaufen sind. Wenn der Balken rote Farbe hätte, würde dann bedeuten, dass die Tests fehlgeschlagen sind. c) junit.swingui.testrunner #java -cp junit.jar;. junit.swingui.testrunner MoneyTest In der Abbildung 3 wird junit.swingui.testrunner gezeigt. Abbildung 3
8 Wie junit.awtui.testrunner, zusätzlich kann man Testhierarchie sehen. Testfixture In der Klasse MoneyTest kommt dieses Testobjekt Money money = new Money (10) an mehreren Stellen öfter vor, d.h. dieses Testobjekt wurde an mehreren Stellen dupliziert. Dies ist typisch für eine Menge von Tests, die sich auf eine konkrete Komponente beziehen. Meistens wird nicht nur ein Objekt, sondern ein ganzes Geflecht von Objekten erzeugt, das für alle Testfälle einer Testklasse den Ausgangszustand darstellt, genannt auch Fixture. JUnit erlaubt es uns, den Code, der zur Erstellung der Fixture benötigt wird, in die Methode setup() auszulagern. Die Methode setup() wird vor jeden test-methoden aufgerufen. JUnit bietet die Möglichkeit, nach dem Ausführen eines Tests die Ressourcen in einer teardown()-methode freizugeben, die im setup() reserviert wurden, wie z.b. Dateien, Datenbankverbindung etc. In der Abbildung 4 wird die Funktionalität der Klasse TestCase gezeigt. Die setup() bzw. teardown() Methode werden unabhängig davon ausgeführt, ob die Test erfolgreich beendet oder fehlschlägt. Abbildung 4 Also sieht jetzt unser Code so aus: protected setup() throws Exception { money = new Money(10); public void testgetamount() { assertequals(money.getamount(), 10); public void testgetadd() { money.add(10); assertequals(money.getamount(), 20); protected teardown() { money = null; TestSuite Unser Ziel ist es, den gesamten Testprozess so weit möglich zu automatisieren, weil wir die Tests mehrmals ausführen. Die Testfälle können beliebig in Testsuiten zusammengefasst werden. Das Konzept ist in der Klasse junit.framework.testsuite verfügbar. Es gibt 2 Möglichkeiten, die Testsuite aufzubauen:
9 1. Wenn man suite() Methode in der Klasse TestCase nicht implementiert, werden die verschieden Testfälle von Testklasse in einer unbestimmten Reihenfolge aufgebaut. Die suite() Methode von der abgeleiteten Klasse TestCase benutzt. 2. Wenn man suite() Methode wird in der TestCase abgeleiteten Testklasse implementiert, dann kann man bestimmen, welcher Testfall zuerst aufrufen kann. Die Klasse TestSuite bietet addtestsuite(), addtest() Methode an, um die Reihenfolge zu bestimmen und Tests zusammenzubauen. In der Abbildung 5 werden die Klasse TestSuite und deren Zusammenhänge dargestellt. Abbildung 5 In unserem Beispiel: public class MoneyTest extends TestCase { public static Test suite() { Test suite= new TestSuite( MoneyTest"); suite.addtest(new TestCaseTest("testConstructor")); suite.addtest(new TestCaseTest("testGetAmount")); suite.addtest(new TestCaseTest( testadd )) return suite; public void static main(string[] args) { TestRunner.run(MoneyTest.suite()); Hier wird textuelle TestRunner benutzt. Ein Punkt entspricht einem Testfall, der erfolgreich abgelaufen ist. #java -cp junit.jar;. MoneyTest Time: 0,031 OK (3 tests) Testsuites können beliebig verschachtelt werden. Hier werden beispielsweise alle Testklassen von JUnit Framework in einem Testsuite zusammengefügt. package junit.tests;
10 import junit.framework.*; /** * TestSuite that runs all the JUnit tests */ public class AllTests { public static void main(string[] args) { junit.textui.testrunner.run(suite()); public static Test suite() { TestSuite suite= new TestSuite("Framework Tests"); suite.addtest(junit.tests.framework.alltests.suite()); suite.addtest(junit.tests.runner.alltests.suite()); suite.addtest(junit.tests.extensions.alltests.suite()); return suite; Auf dem Konsule zeigt, dass Tests unter folgenden Ergebnissen abgelaufen sind. #java -cp junit.jar;. junit.textui.testrunner junit.tests.alltests.... Time: 0,859 OK (91 tests) Testen von Exception Generell muss man zwischen zwei unterschiedlichen Kategorien von Fehlerfällen unterscheiden. Fehler, die wir vorhersehen und innerhalb der Applikation abfangen möchten. Die korrekte Behandlung solcher Fälle müssen wir in unseren Tests berücksichtigen. Fehler, die nicht vorhersehbar sind oder unerwartet entstanden sind. z.b. NullPointerException Das Auftreten erwarteter Fehler führt zur Rückgabe des richtigen Fehlerobjektes bzw. zum Werfen der richtigen Exception. In unserem Beispiel haben wir so implementiert, dass wir unsere Klasse mit grösser als Null Werten initialisiert, sonst wirft eine Exception zurück. Diese Zahl 0 teilt den Raum aller möglichen Testfälle in 2 Äquivalenzklassen. Ausschnitt aus Money-Klasse: public Money(int amount)throws Exception { if (amount < 0 ) { throw new Exception("Grösser als NULL sein!"); this.amount=amount; Dann sieht unsere Testklasse so aus: public void testconstructor() { try { Money money = new Money(-10); fail( Exception nicht aufgefangen ); catch (Exception e) { asserttrue( Exception aufgefangen!, true);
11 protect void setup() { try { money = new Money (10); catch (Exception e) { fail( Fehler auftreten ); Die erweiterten JUnit-Frameworks Das JUnit-Framework wird in unterschiedlichen Anwendungen erweitert, je nachdem in Abhängigkeit von Ziel und Zweck. z.b. JFC Unit ist ein Testframework für die swing basierten Anwendungen. Hier sind sämtliche erweiterte JUnit-Frameworks aufgelistet: JXUnit: (XML -Technologie basierte Testen) JunutEE: für den HTML-dokumentierten Servertest Jub: zur Generierung einfach Testtreiberbausteine JTestCase: zur Auslagerung der Testdaten vom Java-Treiber in XML-Dateien HttpUnit: zum black box Web Testing Cactus: zum server-seitige Unit Test JFCUnit: für Java Swing basierte Anwendungen XMLUnit: XML Dokumenten, deren Struktur und Inhalt werden getestet JXUni -Framework JXUnit ist Erweiterung von JUnit, wobei Testdaten und Testcode getrennt behandelt werden. Das JUnit-Framework unterstützt solche Mechanismen nicht, dass die Testdaten unabhängig von Testcode verwaltet werden. JXUnit basiert auf XML-Technologie und benutzt das Quick- Framework 4. Das Quick-Framework ist Kern von JXUnit und mächtig und flexibel. Quick verbindet Java- Objekte und XML-Daten. Das Quick-Framework ermöglicht es, die Java-Objekte einfach aus den XML-Dokumenten einfach zu erzeugen. Nicht nur die Testdaten werden in speziellen XML-Dokumenten geschrieben, sondern auch Teil der Logik von Testfällen beinhaltet spezielle XML-Dokumente. Die XML-Datei ist genannt JXU Datei (Java for XML Unit). Die aktuelle Version von JXUnit ist und steht unter der Adresse zur Verfügung. Die Tests können mit Hilfe der JUnit Standard-TestRunner (textual, awt oder swing) ausgeführt werden. JFCUnit 4 Quick: XML Made Easy
12 JFCUnit ist auch ein erweitertes JUnit-Framework für die Java Swing basierten Anwendungen. Mit JFCUnit werden getestet: Graphische Oberfläche bzw. Komponente (z.b. Window, Button) Interaktion zwischen den Komponenten. (z.b. Ereignisse) Die Testklasse muss auch von JFCTestCase abgeleitet sein. Die aktuelle Version ist jfcunit. 1.03, und unter zu erhalten. XMLUnit XMLUnit ermöglicht es, Inhalt und Struktur von XML zu überprüfen. XMLUnit ist über die Website zu erhalten. Man kann die Korrektheit des XML Dokuments anhand der DTD überprüfen, aber korrekte XML kann einen inkorrekten Inhalt haben. Da XMLUnit bietet dies zu überprüfen. z.b. <seminar>swt</seminar> aber nicht <seminar>flp</seminar> Castus Die Website von Castus ist Castus ist Testing-Framework für Testen von serverseitigem Java Code. z.b. Servlets, EJBs. Die Testfälle werden von der Client-Seite gesteuert und werden auf der Server-Seite ausgeführt. Zusammenfassung JUnit ist ein reines Java-Framework. Testsprache ist gleich Programmiersprache. JUnit bietet die Möglichkeit, dass Test Anwendungscode getrennt behandelt werden. JUnit erlaubt es, die Gemeinsamkeiten von Tests in eine setup()-methode auszulagern, die für jeden Test getrennt ausgeführt wird. Dadurch spielt die Reihenfolge der Testfällen keine Rolle. Die Tests können beliebig in Testsuiten zusammengefasst werden. JUnit liefert ein übersichtliches Testergebnis. JUnit scheint daher für die Unit Tests als Automatisierungswerkzeug geeignet. JUnit ist erweiterbar je nach dem Ziel und Zwecke. Trotzdem bleiben Testvorgehen und Testfallerstellung weiterhin abhängig von dem Entwickler. Tests unterstützen den Entwickler während der ganzen Entwicklung. Quellenverzeichnis
13
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
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,
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
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
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
JUnit. Software-Tests
JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
Ü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
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...
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
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
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
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
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
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
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
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
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
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
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
Programmieren 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.
Unit 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
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
Testen von graphischen Benutzeroberflächen. 24. Juni 2015
Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013
Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael
Unit-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/
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,
Abschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
Vgl. Oestereich Kap 2.7 Seiten 134-147
Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte
Applet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel [email protected] Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
EasyWk DAS Schwimmwettkampfprogramm
EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage
Unit Testing, SUnit & You
HUMBOLDT-UNIVERSITÄT ZU BERLIN MENSCH-TECHNIK-INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Unit Testing, SUnit & You
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
Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
TTS - TinyTimeSystem. Unterrichtsprojekt BIBI
TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen
Adminer: Installationsanleitung
Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann
Arbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
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
Kapitel 3 Frames Seite 1
Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den
Testen von graphischen Benutzeroberflächen. 26. Juni 2013
Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien
Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV
MICROSOFT DYNAMICS NAV Inhaltsverzeichnis TECHNISCHE INFORMATION: Einleitung... 3 LESSOR LOHN/GEHALT Beschreibung... 3 Prüfung der Ausgleichszeilen... 9 Zurücksetzen der Ausgleichsroutine... 12 Vorgehensweise
Einführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
Unit 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ß
Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen
Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren
Task: Nmap Skripte ausführen
Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
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
! " # $ " % & 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
Java 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
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen
BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1
Javakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
JUnit. Unit testing unter Java
JUnit Unit testing unter Java Was ist Junit? einfaches Framework zum Schreiben von wiederholbaren Tests Besonders geeignet für unit testing Erlaubt Hierarchie von Testsuites Schreiben eines Test Case 1.
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
Der lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Acceptor-Connector. Acceptor-Connector
Acceptor-Connector Das Acceptor-Connector Pattern trennt den Verbindungsaufbau zwischen zwei Peer-Services und der Verarbeitung, welche bei bestehender Verbindung durchgeführt wird. Kontext Ein Netzwerksystem
In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.
Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern
1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Tutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben
Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
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
Online Banking System
Online Banking System Pflichtenheft im Rahmen des WI-Praktikum bei Thomas M. Lange Fachhochschule Giessen-Friedberg Fachbereich MNI Studiengang Informatik Erstellt von: Eugen Riske Yueksel Korkmaz Alper
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
Tipps und Tricks zu Netop Vision und Vision Pro
Tipps und Tricks zu Netop Vision und Vision Pro Anwendungen auf Schülercomputer freigeben und starten Netop Vision ermöglicht Ihnen, Anwendungen und Dateien auf allen Schülercomputern gleichzeitig zu starten.
Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
Kapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente
Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung
Seite 1 von 14. Cookie-Einstellungen verschiedener Browser
Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht
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
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
Framework zur Unterstützung von Unit-Tests
JUnit Framework zur Unterstützung von Unit-Tests Automatisierte Ausführung von Tests Ideen dahinter Testgetriebene Entwicklung: Erst testen, dann programmieren Alle Testfälle häufig ausführen (nach jeder
