NUnit - Testgetriebene Entwicklung unter.net

Größe: px
Ab Seite anzeigen:

Download "NUnit - Testgetriebene Entwicklung unter.net"

Transkript

1 NUnit - Testgetriebene Entwicklung unter.net Martin Blersch Forschungszentrum Informatik Universität Karlsruhe Dr.-Ing. Marc Schanne Forschungszentrum Informatik Universität Karlsruhe Zusammenfassung NUnit ist ein Rahmenwerk für die Erstellung von Komponenten- und Modultests (Unit-Tests) für die.net-plattform. Es unterstützt den Entwickler bei der testgetriebenen Entwicklung und trägt zu einer Steigerung der Codequalität bei, indem Fehler im Quellcode schnell erkannt werden können. Dies wiederum hilft Kosten zu sparen, die bei einer nachträglichen Fehlersuche anfallen würden. Wir versuchen die Vorteile durch den Einsatz von NUnit, sowie dessen Grenzen zu zeigen. Die wichtigsten Behauptungen (Asserts) werden vorgestellt und anhand eines Beispiels erklärt. I. SOFTWAREENTWICKLUNG VS. SOFTWARETESTS Häufig wird in der Softwareentwicklung auf ausgiebige Softwaretests aus Zeit- und Geldgründen verzichtet. Tests sind jedoch wichtig, denn sie steigern die Qualität und die Zuverlässigkeit eines Softwareprodukts. Daher nimmt das Testen in großen Softwareprojekten einen ähnlich hohen Stellenwert ein wie das Programmieren selbst und verursacht mittlerweile bis zu 50% der Kosten des kompletten Softwareentwicklungsprozesses. Durch die immer höheren Anforderungen an die Softwarequalität wird diese Rate vermutlich noch einmal steigen. Softwaretests werden oft als lästig empfunden. In der Regel ist die Zeit bei Projekten sowieso sehr knapp bemessen und durch die Entwicklung von guten Tests verlieren die Programmierer nochmals Zeit, in der sie nicht an der Funktionalität der Software arbeiten können. Vielmehr müssen sie Testfälle definieren, implementieren und später auswerten. II. WARUM ALSO TESTS? Mit steigendem Fortschritt und Komplexität eines Projekts steigen auch die Kosten für die Fehlerbeseitigung exponentiell. Das frühe Erkennen von Fehlern in Klassen, Methoden und Komponenten durch Softwaretests zahlt sich somit aus und die Qualität der Software nimmt zu. Tests sichern ein Mindestmaß an Leistung und Zuverlässigkeit und sind aus der Softwareentwicklung nicht mehr wegzudenken. Gesucht wird eine kostengünstige Testmethode die möglichst viele Fehler aufdeckt, leicht zu implementieren ist und die automatisiert werden kann, um auch nach Modifikationen von bereits getesteten Teilen der Software erneut benutzt werden zu können (Regressionstests). Dies ist gerade bei Software die häufig geändert werden muss wichtig, jedoch auch bei der Pflege, Weiterentwicklung oder Fehlerkorrektur eines Softwareprodukts. Studien haben gezeigt, dass Komponenten- und Modultests (Unit Tests) im Vergleich zu anderen Testmethoden das beste Kosten-Nutzen-Verhältnis haben. Trotz höherem initialen Aufwand für die Komponentenerstellung erreicht man dadurch geringere Folgekosten bei der späteren Fehlersuche und Beseitigung. Unit Tests sind der effektivste Weg um möglichst viele Fehler im Code aufzudecken. Sie bieten eine Alternative gegenüber Debugging und Standardausgaben, die, gerade bei komplexen Softwareelementen oder bei Schleifen, häufig zu unübersichtlichem Code führen. Bereits bei einer Schleife mit vielen Durchläufen sind die Ausgaben kaum noch überschaubar. Debugging ist gerade bei Programmen mit mehreren Threads nur umständlich möglich und erfordert vom Entwickler hohe Konzentration und Wissen über das Gesamtsystem. Deshalb ist es sehr fehleranfällig. Komponententests ersetzen keine Integrations-, System-, Last- oder Performancetests, denn das korrekte Funktionieren aller Tests bedeutet nicht, dass deren Zusammenspiel ebenfalls frei von Fehlern ist. Dies muss durch Integrationstests überprüft werden. Sie testen das korrekte Zusammenspiel von Komponenten in einem System, die voneinander abhängig sind. Dazu bedient man sich einer Reihe aufeinander abgestimmter Einzeltests. Komponententests kann man auch als Vorstufe von Integrationstests bezeichnen. Zur Sicherstellung des spezifikationsgemäßen Funktionierens des Gesamtsystems sind Tests auf Systemebene nötig. Neben funktionalen Qualitätsmerkmalen wie Korrektkeit und Vollständigkeit überprüfen Systemtests ebenfalls nichtfunktionale Eigenschaften. Last- und Performancetests sind Softwaretests die das Verhalten eines laufenden Systems unter Last beobachten und bewerten. III. KOMPONENTENTESTS MIT NUNIT NUnit ist ein Rahmenwerk zum Schreiben und Ausführen von automatischen Unit Tests für.net Sprachen. Es bietet eine grafische Benutzerschnittstelle und ist vollständig in C# geschrieben. Anfänglich wurde das Testrahmenwerk durch Philip A. Craig von JUnit portiert und von den Entwicklern Jim Newkirk, Michael Two, Alexei Vorontsov und Charlie Poole weiterentwickelt sowie an die.net-eigenen Fähigkeiten angepasst. NUnit ist Open Source, steht unter der zlib/libpng Lizenz 1 und darf daher auf die eigenen Bedürfnisse angepasst 1

2 und verändert werden. Die Nutzung ist zudem kostenlos. Eine ausführliche Dokumentation sowie einen Downloadlink zur aktuellen NUnit- Version findet man auf der Herstellerseite 2. IV. VORGEHENSWEISE Parallel zur Programmierung, oder bereits vor dem Implementieren der eigentlichen Klasse oder Funktion, werden passende Unit Tests entwickelt und implementiert. Dies bietet dem Entwickler die Möglichkeit seinen geschriebenen Code umgehend überprüfen und gegebenenfalls ändern zu können. NUnit ist ein Rahmenwerk, das Testerstellung, sowie Zusammenfassen und Ausführen verschiedener Tests unterstützt. Es bietet eine grafische Benutzeroberfläche (GUI), die übersichtlich die fehlgeschlagenen und korrekten Tests anzeigt. Die Tests werden in einer eigenen Testklasse ausgelagert und lassen den Programmcode des Softwareprodukts unberührt. Der Entwickler kann Behauptungen (Asserts) in die Testobjekte einbauen. Treffen diese Behauptungen nicht zu, schlägt der Test fehl. Unit Tests sind White-Box-Tests, das heißt eine Kenntnis über die innere Funktionsweise des zu testenden Systems wird vorausgesetzt. Der Entwickler kann somit testen ob alle internen Operationen der vorgegebenen Spezifikation entsprechen. NUnit unterstützt ihn bei der Testerstellung, Testdatengewinnung, Testtreiber- und Stub- Erstellung, Testausführung und Testauswertung durch Automatisierung. V. TESTGETRIEBENES ENTWICKELN MIT UNIT-TESTS Der Einsatz von Unit Tests ist ein wesentlicher Bestandteil in der agilen Softwareentwicklung. Dabei bemüht man sich schnell auf Änderungswünsche des Kunden reagieren zu können, was einen hohen Grad an Flexibilität voraussetzt. Der Code muss ständig neu geschrieben und angepasst werden. Automatisierte Unit Tests sollen sicherstellen, dass das Programm nach einer Änderung noch funktioniert. Agile Prozesse wie Extreme Programming verlangen jeweils mindestens einen Test pro Modul bzw. Komponente [1]. Dabei sollte keine Methode ungetestet bleiben. Dies ermöglicht bei einem Fehler im Programm eine genaue Lokalisierung. Er kann schnell entdeckt und behoben werden. Testfälle werden noch vor der eigentlichen Funktionalität implementiert und zwingen so den Entwickler sich früh mit seinem Code-Design auseinander zu setzen. Komponententests in der testgetriebenen Entwicklung sind Grey-Box-Tests, das heißt eine Mischung aus White-Box-Tests und Black-Box- Tests (nur die Spezifikation bekannt, nicht derern Implementierung). Eine Mischung dieser beiden Arten bietet die beste Testfallabdeckung, da so die Vorteile beider Arten kombiniert werden kann. Eine stetige Wiederholung aller Tests (Regressionstests) führt zu einer erheblichen Qualitätssteigerung [2]. VI. STRUKTUR DER UNIT-TESTS NUnit besitzt eine grafische Benutzeroberfläche und eine Konsole, die dieselbe Funktionalität bietet. Sie geben Auskunft über erfolgreiche oder fehlgeschlagene Tests. 2 Das Fenster ist, wie in Abbildung 1 dargestellt, in zwei Bereiche aufgeteilt. Die linke Spalte zeigt die ausgewählte Testklasse sowie die darin enthaltenen Tests in einer Baumstruktur. Werden die Tests ausgeführt zeigt ein grüner, gelber oder roter Punkt vor den Tests sowie vor der Testklasse das Ergebnis an. Eine erfolgreiche Behauptung wird durch einen grünen Punkt symbolisiert. Nicht ausgeführte Tests erscheinen gelb, Fehlgeschlagene rot. In derselben Farbe ist in der rechten Spalte ein Balken zu sehen, der das Ergebnis noch einmal verdeutlicht. Darunter werden in einem Fenster die eventuell vorhandenen Fehler aufgelistet. Es zeigt den Namen des fehlgeschlagenen Tests sowie das erwartete Ergebnis der Behauptung (Assertion) und das tatsächliche Ergebnis an. Dies ermöglicht eine schnelle Fehlersuche und -beseitigung. Ein neu zur Testklasse hinzugefügter Unit Test taucht als weiterer Ast in der linken Spalte der grafischen Oberfläche auf. Abbildung 1. Grafische Benutzeroberfläche von NUnit Neben der grafischen Oberfläche bietet NUnit eine Konsolenversion. Die Konsole speichert die Ergebnisse in einer XML-Datei. Diese Datei kann wiederum mit geeigneten Programmen weiterverarbeitet werden. Man startet die Überprüfung einer Datei durch den Befehl nunit-console <Dateiname>, wobei der Dateiname eine.dll,.csproj oder.nunit (NUnit-Test-) Datei sein kann. Weitere Befehle sind auf der Webseite zu finden. VII. AUFBAU EINER TESTKLASSE Testfälle werden über eigene Benutzerattribute (Custom Attributes) im.net Quellcode definiert und mittels Reflection ausgelesen. A. Beispielklasse namespace NUnitTestingExamples using System; using NUnit.Framework; [TestFixture] public class SuccessTests

3 [SetUp] public void Init() /*... */ [TearDown] public void Dispose() /*... */ public void Test1() /*... */ [ExpectedException(typeof(XYZ)] public void Test2() // Something that throws an // XYZ Exception [Ignore("skip this test")] public void IgnoredTest() /*... */ B. Erklärung using NUnit.Framework bindet das NUnit Framework ein. [TestFixture] ist eine Kollektion von Unit Tests. Dieses Attribut muss vor der Klassendeklaration eingefügt werden, um anzugeben, dass die Klasse Tests enthält. [SetUp] ist ein Initialisierungsabschnitt mit Code, der vor den eigentlichen Unit Tests ausgeführt wird. [TearDown] ist ein Codeabschnitt, der im Anschluss an alle Tests ausgeführt wird. ist ein einzelner Komponententest. Dieser wird vor einer Methode eingefügt, um anzuzeigen, dass es sich um einen Test handelt. [ExpectedException] enthält eine Ausnahme, welche von der Methode zurückgeben werden kann. [Ignore] kann vor einem Unit Test angegeben werden, um diesen zu deaktivieren. NUnit ignoriert alle Tests mit diesem Attribut. Eine Begründung kann mit angegeben werden. VIII. BEHAUPTUNGEN (ASSERTS) Mit Hilfe von Behauptungen kann der Entwickler überprüfen, ob ein Programm oder Programmabschnitt die vorgegebenen Spezifikationen erfüllt. Sie werden in die zugehörige Testklasse geschrieben und sollen das Verhalten der Methoden bei bestimmten Eingaben oder Parametern überprüfen. Behauptungen sind nach folgendem Schema aufgebaut: Assert.NameDerBehauptung(argument1, argument2,... ). Sie sind meist mehrfach überladen und existieren mit unterschiedlichen Parameterlisten. Eine genaue Beschreibung der einzelnen Befehle findet man auf der Projektseite von NUnit [3]. Eine kurze Übersicht über die verschiedenen Befehle befindet sich in der Tabelle I. ASSERT.NAMEDERBEHAUPTUNG(OBJECT EXPECTED, OBJECT ACTUAL) Gleichheitsbehauptungen (Equality Asserts) Identitätsbehauptungen (Identity Asserts) Vergleichsbehauptungen (Comparison Asserts) Typ Behauptungen (Type Asserts) Bedingungsbehauptungen (Condition Tests) Gebrauchsmethoden (Utility Methods) AreEqual, AreNotEqual Are(Not)Same, Contains Greater, Less, GreaterOrEqual, LessOrEqual Is(Not)InstanceOfType, Is(Not)AssignableFrom IsTrue, IsFalse, Is(Not)Null, IsNaN, Is(Not)Empty Fail(), Ignore() STRINGASSERT.NAMEDERBEHAUPTUNG(STRING EXP, STRING ACTUAL) String Asserts Contains, StartsWith, EndsWith, AreEqualIgnoringCase COLLECTIONASSERT.NAMEDERBEHAUPTUNG(ARG 1 [, arg 2 ]) CollectionAsserts AllItemsAreInstancesOfType, AllItemsAreNotNull, AllItemsAreUnique, AreEqual, AreEquivalent, AreNotEqual, AreNotEquivalent, Contains, DoesNotContain, IsSubsetOf, IsNotSubsetOf, IsEmpty, IsNotEmpty Tabelle I ÜBERSICHT - BEHAUPTUNGEN (ASSERTS) Beispiel: Assert.AreEqual(object expected, object actual). Neu sind bei NUnit ab Version 2.4 die Behauptungen für Zeichenketten (StringAsserts) und Sammlungen (CollectionAsserts). Ihre Schreibweise weicht von den normalen Asserts ab. Beispiel: StringAssert.Contains("Das Wetter ist schön", "schön") überprüft die Zeichenkette Das Wetter ist schön auf die Behauptung sie beinhalte (contains) schön. IX. BEISPIEL Als Beispiel soll die Klasse Person dienen. Ein Objekt dieser Klasse besitzt einen Namen, einen Arbeitsbereich und ein bestimmtes Gehalt. Ferner kann eine Person Angestellte unter bzw. Vorgesetzte über sich haben. Diese wiederum sind ebenfalls vom Typ Person und können durch die Methoden setemployee() und setchief() hinzugefügt werden. Der Einfachheit halber ist nur eine begrenzte Anzahl an Untergebenen (MAX EMPLOYEES) und Vorgesetzten (MAX CHIEFS) möglich. namespace TestProgram public class Person

4 private string name; private string department; private double salary; private Person[] chiefs; private Person[] employees; const int MAX_EMPLOYEES = 10; const int MAX_CHIEFS = 10; public Person(string name) department = ""; salary = 0; chiefs = new Person[MAX_CHIEFS]; employees = new Person[MAX_EMPLOYEES]; public void setchief(person chief) if (countchiefs() < MAX_CHIEFS) chiefs[countchiefs()] = chief; public void setemployee(person employee) if (countemployees() < MAX_EMPLOYEES) employees[countemployees()] = employee; public int countemployees() // return amount of employees in list public int countchiefs() // return amount of chiefs in list Die zugehörige Testdatei muss den selben Namensraum wie die Klasse Person besitzen und das NUnit Rahmenwerk durch die using-direktive importieren. Die Klasse PersonTest, die die Tests der Klasse Person enthält, muss durch das Benutzerattribut (Custom Attribute) [TestFixture] gekennzeichnet sein. using System; using System.Collections.Generic; using NUnit.Framework; namespace TestProgram [TestFixture] public class PersonTest Person person; [SetUp] public void Init() person = new Person("John"); person.salary = 5000; person.department = "Accountancy"; Die Methode Init(), die mit dem [SetUp] Attribut gekennzeichnet ist, erstellt eine Instanz der Klasse Person und weist ihr einen Namen, ein Gehalt sowie einen Arbeitsbereich zu. Wegen des Attributs [SetUp] wird diese Methode vor allen anderen Methoden der Testklasse PersonTest ausgeführt und bietet somit den anderen Testmethoden ein konkretes Objekt für deren Tests. Das folgende Beispiel zeigt einen einfachen Test, gekennzeichnet durch das Attribut. Er enthält drei Behauptungen (Asserts), die für einen erfolgreichen Ablauf der Testdatei allesamt korrekt sein müssen. Die Behauptung AreEqual erachtet zwei Zeichenketten für gleich, wenn sie denselben Inhalt besitzen. AreSame und AreNotSame prüfen zusätzlich ob es sich dabei um das identische bzw. nicht identische Objekt handelt. public void NameToStringTest() Assert.AreEqual(person.ToString(), "John"); Person person2 = new Person("John"); Assert.AreNotSame(person, person2); Assert.AreEqual(person.ToString(), person2.tostring()); Die Klasse Person enthält zwei Funktionen getchiefs(int pos) und getemployees(int pos), die den Vorgesetzten bzw. den Untergebenen der jeweiligen Person an der Indexstelle pos zurück liefert. Sie können eine IndexOutOfRange Ausnahme auslösen, falls versucht wird auf einen Index zuzugreifen, der größer ist als die Werte der Konstanten MAX EMPLOYEES und MAX CHIEFS. Die Ausnahme wird in diesem Beispiel geworfen und nicht abgefangen. // throws IndexOutOfRangeException public Person getemployee(int pos) try return employees[pos]; catch (IndexOutOfRangeException ex) throw new IndexOutOfRangeException( "An Error occured: " + ex);

5 Die dazugehörige Testmethode GetEmployeeExceptionTest soll genau diesen Fall testen und erwartet sogar diese Ausnahme. Dies wird durch das zusätzliche Attribut [ExpectedException], sowie dem erwarteten Ausnahmentyp als Parameter gekennzeichnet (typeof(indexoutofrangeexception)). [ExpectedException(typeof (IndexOutOfRangeException))] public void GetEmployeeExceptionTest() // throws IndexOutOfRangeException Assert.AreEqual(person.getEmployee(100).ToString(), "Julian"); X. VORTEILE DURCH DEN EINSATZ VON NUNIT Tests können beliebig oft ausgeführt und wiederholt werden (reproduzierbar). Mit dem Einsatz eines Unit Test-Tools wird eine höhere Codequalität in kürzerer Zeit und mit weniger Entwicklungskosten erreicht. Automatisierbar Reduziert die Komplexität der Software durch das Zerlegen der Software in kleinere Module und Komponenten. XI. GRENZEN VON NUNIT Es ist kein Testen von private Membern möglich, da die TestCase Klasse, von der alle Tests in NUnit ableiten müssen in einer separaten Testklasse liegt. Die Tests müssen als Code in eine Datei geschrieben werden. Nur ein Programmierer kann die Testsuite modifizieren. Mit NUnit ist nur die Geschäftslogik testbar. Für GUI- Elemente existieren jedoch spezielle Rahmenwerke, unter anderem NUnitASP [4] und NUnitForms [5] Die Testprogramme sind unter Umständen sehr aufwendig. Tests können nur zeigen, dass es Fehler gibt, nicht, dass es keine gibt. XII. BEWERTUNG Obwohl NUnit keine Universallösung ist, bietet es dem Entwickler für die gängigsten Testfälle eine komfortable Suite. Sie unterstützt ihn gerade bei der testgetriebenen Entwicklung durch das einfache Erstellen von Testfällen in einer separaten Datei. Durch die Test-First Strategie, also das Schreiben des Tests vor der eigentlichen Implementierung der Komponente, ist der Entwickler gezwungen, sich frühzeitig mit dem Design des Codes auseinander zu setzen. Dies erhöht die Codequalität. Allerdings zeigen Unit Tests nur vorhandene Fehler auf, nicht aber deren Nichtvorhandensein. Sie bieten eine sinnvolle Erweiterung, nicht aber einen vollständigen Ersatz anderer Testmethoden wie Integrations-, System-, Last- oder Performancetests. Die durch die Testfallerstellung anfallenden Kosten sind meist günstiger als eine spätere Fehlersuche. A. Erweiterungsmöglichkeiten von NUnit NUnit kann durch Pakete erweitert werden, um auch Elemente einer grafischen Benutzeroberfläche testen zu können. Sie setzen allesamt auf NUnit auf und sind ebenfalls Open Source. Für ASP.NET-Seiten steht NUnitASP [4] zur Verfügung. Das Rahmenwerk unterstützt die Abfrage von Webcontrols, unter Anderem von Buttons, Labels und TextBoxen. Für Windows Forms Elemente steht die Erweiterung NUnitForms [5] zur Verfügung. B. Alternativen zu NUnit Ein weiteres Rahmenwerk ist CSUnit [6], das ähnlich ist wie NUnit. Allerdings ist dessen Umfang an Assertbefehlen etwas kleiner. Ein Tutorial sowie eine Anleitung zum Umstieg von NUnit zu CSUnit findet man auf den Herstellerseiten. Um Unit Tests fest in Visual Studio zu integrieren empfiehlt sich das kommerzielle Produkt TestDriven.NET [7] oder das freie Rahmenwerk VSNUnit [8]. In Visual Studio Team System ist ein Komponenten- und Modultestframework bereits integriert. Dies zeigt, dass auch Microsoft die Bedeutung von testgetriebener Entwicklung erkannt hat und als Verkaufsargument einsetzt. Voraussichtlich werden alle kommenden Visual Studio Versionen die testgetriebene Entwicklung unterstützen. LITERATUR [1] K. Beck, Test-driven development : by example, 9th ed. Boston, Mass. [u.a.] : Addison-Wesley, [2], Extreme Programming Explained, 2nd ed. Boston, Mass. [u.a.] : Addison-Wesley, [3] M. C. Two, C. Poole, J. Cansdale, and G. Feldman, NUnit Rahmenwerk, [Online]. Available: [4] B. Knowles, J. Shore, and L. Khatskevitch, NUnitASP, [Online]. Available: [5] L. T. Maxon, NUnitForms, [Online]. Available: http: //nunitforms.sourceforge.net/ [6] J. W. Anderson, P. Lawson, M. Renschler, and M. Lange, csunit, [Online]. Available: [7] J. Cansdale, TestDriven.NET, [Online]. Available: [8] J. Gehtland, VSNUnit, [Online]. Available: net/projects/vsnunit/ [9] J. W. Newkirk and A. A. Vorontsov, Test-Driven Development in Microsoft.NET. Microsoft Press, [10] F. Westphal, Testgetriebene Entwicklung, [Online]. Available: [11] B. Rumpe, Extreme Programming - Back to Basics? [Online]. Available: [12] D. Wells, Extreme Programming, [Online]. Available: http: //www.extremeprogramming.org/ [13] P. Provost, Test-Driven Development in.net, [Online]. Available: in dotnet.asp [14] W. Stott and J. Newkirk, Test-Driven C# - Improve the Design and Flexibility of Your Project with Extreme Programming Techniques, [Online]. Available: 04/04/ExtremeProgramming/default.aspx [15] A. Hunt and D. Thomas, Pragmatic Unit Testing in C# with NUnit. The Pragmatic Bookshelf, Raleigh, [16] B. Hamilton, NUnit Pocket Reference. O Reilly, Cambridge, 2004.

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

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/

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

Testgetriebene Entwicklung mit Vulcan.NET und Visual Objects

Testgetriebene Entwicklung mit Vulcan.NET und Visual Objects begrüßt Sie herzlich zum Vortrag auf der VODC 2006 Testgetriebene Entwicklung Dozent Michael Fischer Copyright 2006 Fischer & Consultants GmbH (F&C) Martinstrasse 1 44137 Dortmund www.appfact.com Kontakt:

Mehr

zlib-lizenz (kompatibel zur GNU General Public License )

zlib-lizenz (kompatibel zur GNU General Public License ) 2 NUnit 2.1 Homepage http://www.nunit.org 2.2 Lizenz zlib-lizenz (kompatibel zur GNU General Public License ) 2.3 Untersuchte Version NUnit 2.5.9.10348 2.4 Letzter Untersuchungszeitpunkt 07.02.2011 2.5

Mehr

Thema: Testen von objektorientierter Software

Thema: Testen von objektorientierter Software Seminar Simulation und Bildanalyse mit Java Thema: Testen von objektorientierter Software Uta Dienst 1. Teil: Einführung in den Software-Test 2. Teil: JUnit-Einführung Uta Dienst 17.11.2003 2 1. Teil:

Mehr

Code verifizieren mittels

Code verifizieren mittels Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren

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

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

Mehr

Das automatisierte Testen mit JUnit

Das automatisierte Testen mit JUnit Das automatisierte Testen mit JUnit SWT Seminar (SS03) Ausgearbeitet von Sundui Baatarjav Am Fachbereich Informatik der TU-Berlin EINLEITUNG 3 JUNIT - FRAMEWORK 4 Aufbau und Struktur 4 TestCase 4 Assert

Mehr

Programmierung 2 Studiengang MI / WI

Programmierung 2 Studiengang MI / WI Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung

Mehr

Testphase. Das Testen

Testphase. Das Testen Testphase VIS Projekt Freie Universität Berlin N.Ardet - 17.4.2001 Das Testen Testen ist das Ausführen eines Software- (Teil)systems in einer definierten Umgebung und das Vergleichen der erzielten mit

Mehr

Test-Driven Developement Eine Einführung

Test-Driven Developement Eine Einführung Test-Driven Developement Eine Einführung 2007 by Tobias Hagen Im Rahmen der Veranstaltung Aktuelle Themen der Informatik bei Prof. Dr. Friedbert Kaspar Hochschule Furtwangen University Übersicht Einführung...

Mehr

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung Übersicht s s Gregoire Kemgne 1 Motivation Problem: Software wird immer größer und komplexer, dadurch ist diese immer schwerer zu überschauen Ein Projekt benötigt mehr Zeit und/oder Entwickler. Lösung:

Mehr

Whitepaper. Automatisierte Akzeptanztests mit FIT. Einleitung. Die Bedeutung von Akzeptanztests

Whitepaper. Automatisierte Akzeptanztests mit FIT. Einleitung. Die Bedeutung von Akzeptanztests Automatisierte Akzeptanztests mit FIT Einleitung Dieses beschreibt, wie man Tests aus Anwender-/Kundensicht mit dem Open-Source-Werkzeug FIT beschreibt und durchführt. Das ist für Kunden, Anwender und

Mehr

Unit Testing mit JUnit. Dr. Andreas Schroeder

Unit Testing mit JUnit. Dr. Andreas Schroeder Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?

Mehr

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java Hochschule München FK 07 SS 2009 Theis Michael - Senior Developer HVB Information Services GmbH März 2009 Grundlagen des

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

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014 Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase

Mehr

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG Medizin- und Informationstechnik AG Testautomatisierung Märchen, Möglichkeiten und praktischer Nutzen Richard Seidl 21. Januar 2013 TU Dresden Kardiologische Funktionsdiagnostik Vitalfunktions-Monitoring

Mehr

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

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim Test- Grundsätzliches - - - Ablauf von Tests Grundsätzliche Test- -Tests Äquivalenzklassenbildung Randwertanalyse -Tests Man unterscheidet verschiedene Überdeckungsgrade: Statement Coverage Decision Coverage,

Mehr

14. Tutorium zu Programmieren

14. Tutorium zu Programmieren 14. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

The Art of Unit Testing

The Art of Unit Testing The Art of Unit Testing 01.02.2011 Marco Heimeshoff Heimeshoff@gmx.de Übersicht Grundlagen des Unit Testing Test Driven Development Stubs & Mocks Behavior Driven Design The Art of Unit Testing Definition

Mehr

Übung zur Vorlesung Einführung in Software Engineering

Übung zur Vorlesung Einführung in Software Engineering Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei

Mehr

Testen von Softwaresystemen. 13. Januar 2015

Testen von Softwaresystemen. 13. Januar 2015 Testen von Softwaresystemen 13. Januar 2015 Überblick Was umfasst das Testen von Software? Warum sollte man Software testen? Motivation für Software-Tests Wie sollte man Software testen? Grundlegende Teststrategien

Mehr

Testest Du schon? Verfahren und Tools zum Testen von Software

Testest Du schon? Verfahren und Tools zum Testen von Software Testest Du schon? Verfahren und Tools zum Testen von Software Martin Kompf Dezember 2010 JAVA USER GROUP DARMSTADT Testing Software Ziel des Softwaretests ist es, Fehler aufzudecken. Nachzuweisen, dass

Mehr

Systematisches Testen von Software

Systematisches Testen von Software Programmierung Systematisches Testen von Software Markus Eckstein Systematika Information Systems GmbH Kurfürsten-Anlage 36 69115 Heidelberg markus.eckstein@systematika.com Zusammenfassung Die wichtigsten

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Dirk Wischermann Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 18. Dezember 2006 Inhalt Nachlese

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

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

Softwaretest. Algorithmen und Programmieren II SS 2008 Objektorientierte Programmierung. Algorithmen und Programmierung II SS 2008

Softwaretest. Algorithmen und Programmieren II SS 2008 Objektorientierte Programmierung. Algorithmen und Programmierung II SS 2008 Algorithmen und Programmieren II SS 2008 Objektorientierte Programmierung Softwaretest 03.07.2008 Softwaretest Ingo Dageförde 1 Agenda VL Softwaretest am 03.07.2008 Qualitätssicherung in der Softwareentwicklung

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Testen von Software / Modultests Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Programm-Tests Tests sollen zeigen, dass ein Programm das tut was es tun soll sowie

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1 Test Dipl. Wirtsch. Ing. Alexander Werth 9-1 Phasen der Problemdefinition Anforderungsanalyse Spezifikation Entwurf Implementation Erprobung Wartung Methoden der 9-2 Software Test / Erprobung Messen der

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Teststrategie festlegen und Teststufen aufeinander abstimmen

Teststrategie festlegen und Teststufen aufeinander abstimmen Testen Teststrategie festlegen und Teststufen aufeinander abstimmen Bereich Projektplanung und -steuerung Aktivität Projekt planen Ziele Effiziente Testausführung Vermeidung von doppelter Arbeit schnell

Mehr

Stuttgarter Test-Tage 2011 Der Fluch des grünen Balkens in sehr großen Projekten

Stuttgarter Test-Tage 2011 Der Fluch des grünen Balkens in sehr großen Projekten main {GRUPPE} Seite 1 Jürgen Nicolai Geschäftsführender Gesellschafter Liebknechtstrasse 33 70178 Stuttgart Tel : 0711 2270225 Fax : 0711 2270497 Mail : j.nicolai@main-gruppe.de Web: www.health4j.de Stuttgarter

Mehr

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012 Qualitätssicherung von Software am Beispiel von Unit Testing Klaus Kusche, Mai 2012 Inhalt Motivation Definition von Unit Tests, Einordnung in der QA, Nutzen Einordnung im V-Modell (==> Tafel) Inhalt,

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung

Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung Testen II (Management, Tools) Daniela Rose Fachgebiet Softwaretechnik und Systemgestaltung 12.12.2007 Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4.

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development

Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik Prof. A. Müller, HS KL Software

Mehr

Testen im Software- Entwicklungsprozess

Testen im Software- Entwicklungsprozess Technologie-Event 2006 Testen im Software- Entwicklungsprozess W.Lukas, INGTES AG Was nicht getestet wurde, funktioniert nicht. -- R.Güdel (ca. 1998) Seite 2 Was sollen wir tun? Anomalien & Defekte von

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Einführung Arten von Softwaretests Prinzipien Continuous Integration Tests in FLOSS-Projekten Quellen. Softwaretests. Christoph Betschart

Einführung Arten von Softwaretests Prinzipien Continuous Integration Tests in FLOSS-Projekten Quellen. Softwaretests. Christoph Betschart Softwaretests Christoph Betschart 27. Oktober 2014 Inhaltsverzeichnis Einführung Arten von Softwaretests Prinzipien Seven Principles of Software Testing Continuous Integration Tests in FLOSS-Projekten

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

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

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

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

4 Testgetriebene Entwicklung mit PHPUnit

4 Testgetriebene Entwicklung mit PHPUnit 57 4 Testgetriebene Entwicklung mit PHPUnit»The fewer tests you write, the less productive you are and the less stable your code becomes.«erich Gamma 4. 1 Einleitung Das Testen von Software ist wichtig.

Mehr

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R Vector Software W H I T E P A P E R Test Automation mit VectorCAST während der gesamten Softwareentwicklung VectorCAST Produktfamilie Die VectorCAST Produktfamilie automatisiert Testaktivitäten über den

Mehr

Wir schützen Ihre Investitionen. Qualitätssicherung nach Maß. IT Quality Services

Wir schützen Ihre Investitionen. Qualitätssicherung nach Maß. IT Quality Services Wir schützen Ihre Investitionen Qualitätssicherung nach Maß IT Quality Services Sicherheit, die senkt Mit den IT Quality Services schützen Sie Ihre Investitionen Ohne Qualitätssicherung Mit Qualitätssicherung

Mehr

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule

Mehr

Testen von Software. GUI-Testing: Jemmy & Marathon

Testen von Software. GUI-Testing: Jemmy & Marathon Testen von Software GUI-Testing: Jemmy & Marathon Kurzüberblick Jemmy: Marathon: Ist eine Java-Bibliothek Zum Testen von Java-GUI- Applikationen Enthält Methoden, um Benutzereingaben bei Swing/AWT Komponenten

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

Softwaretests in Visual Studio 2010

Softwaretests in Visual Studio 2010 Softwaretests in Visual Studio 2010 Eine Anleitung für die Sprache C# Alexander Schunk, Marcel Teuber, Henry Trobisch Inhalt 1. Vorbereitung... 2 2. Unit-Tests in Visual Studio... 2 2.1 Erstellung von

Mehr

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung Projektmanagement Vorlesung von Thomas Patzelt 10. Vorlesung 1 Test...(4) Oberflächentests testen die Benutzerschnittstelle des Systems, nicht nur auf Fehlerfreiheit sondern z.b. auch auf Konformität mit

Mehr

Testen von webbasierten Benutzeroberflächen

Testen von webbasierten Benutzeroberflächen Studiengruppe: IB6C Email: qasmi@hm.edu Dozent: Michael Theis 1 Agenda: Das eine basierte Testumgebung 2 Wer kennt diese Situationen nicht? =>Typische Fehler bei Webanwendungen! 3 Fehler wie diese sollten

Mehr

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Dipl.-Inf (FH) Matthias Müller 09.06.2010 Regressionstests Unter einem Regressionstest

Mehr

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann. Softwaretests Werkzeuge zur Automatisierung für Thementag Wer testet, ist feige 24.06.2009 Autor: Markus Alvermann Seite 2 / 39 Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous

Mehr

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering mit Übungen Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering 2 Organisation Ort: Seminarraum 05.002, Spiegelgasse 5 Ablauf: 15:15 Vorlesung Prüfung: Schriftlich,

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation Softwareentwicklungspraktikum Sommersemester 2007 Testdokumentation Auftraggeber Technische Universität Braunschweig

Mehr

Zwischenbericht - Großer Beleg

Zwischenbericht - Großer Beleg 6WXGLH]XPV\VWHPDWLVFKHQ 7HVWHQYRQZHEEDVLHUWHQ &OLHQW6HUYHU$QZHQGXQJHQ Zwischenbericht - Großer Beleg Thomas Förster Betreuerin: Dipl.-Softwaretechnol. Anne Thomas Hochschullehrer: Prof. Dr. rer. nat. habil.

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008

Codingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008 I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium

Mehr

Testmanagement. Dirk Tesche

Testmanagement. Dirk Tesche Testmanagement Dirk Tesche Agenda Einführung in die Thematik Testarten Testprozess Agile Methoden und Techniken Testautomatisierung Eingrenzung und Motivation Abbildung entnommen aus: www.campero.de Ziele

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Vector Software W H I T E P A P E R. Mit VectorCAST die FDA-Anforderungen an Softwaretests erfüllen

Vector Software W H I T E P A P E R. Mit VectorCAST die FDA-Anforderungen an Softwaretests erfüllen Vector Software W H I T E P A P E R Mit VectorCAST die FDA-Anforderungen an Softwaretests erfüllen Einführung Die VectorCAST Produktfamilie automatisiert Testaktivitäten über den gesamten Software Entwicklungszyklus.

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

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

EJB3.0 Unit-Testing Reloaded

EJB3.0 Unit-Testing Reloaded EJB3.0 Unit-Testing Reloaded Werner Eberling werner.eberling@mathema.de www.mathema.de Werner Eberling, MATHEMA Software GmbH - EJB3.0 - Unit-Testing Reloaded (G4 - Folie 1) Java Forum Stuttgart 2007 Automatisiertes

Mehr

Service Virtualisierung

Service Virtualisierung Service Virtualisierung So bekommen Sie Ihre Testumgebung in den Griff! Thomas Bucsics ANECON Software Design und Beratung G.m.b.H. Alser Str. 4/Hof 1 A-1090 Wien Tel.: +43 1 409 58 90 www.anecon.com office@anecon.com

Mehr

Valion Consulting AG Implementing Better Solutions Monbijoustrasse 20 CH-3011 Bern +41 (0)31 328 10 10 www.valionconsulting.ch

Valion Consulting AG Implementing Better Solutions Monbijoustrasse 20 CH-3011 Bern +41 (0)31 328 10 10 www.valionconsulting.ch Valion Consulting AG Implementing Better Solutions Monbijoustrasse 20 CH-3011 Bern +41 (0)31 328 10 10 www.valionconsulting.ch i ii iii 1 2 3 4 5 6 7 8 Presentation Reporting Business 9 Presentation Business

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Testmanagement in IT-Projekten

Testmanagement in IT-Projekten Teil 1: Projektmagazin 05/20009 Teil 2: Projektmagazin 06/2009 1 Test: Prozess, bei dem ein Programm oder ein Software-System ausgeführt wird, um Fehler zu finden Teil 1: Projektmagazin 05/20009 Teil 2:

Mehr

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin Agiles Testen Gedankensammlung 17. November 2013 - Patrick Koglin Inhalt Reflektion: Agilität notwendig? Wo? Eigenschaften agiler Entwicklung Quality is everyone s responsibility Qualität möglich machen

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Qualitätssicherungskonzept

Qualitätssicherungskonzept Softwaretechnikpraktikum Gruppe: swp15.aae SS 2015 Betreuer: Prof. Gräbe Datum: 15.06.2015 Tutor: Klemens Schölhorn Qualitätssicherungskonzept Projektteam: Felix Albroscheit Dorian Dahms Paul Eisenhuth

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Agile Testing. Der agile Weg zur Qualität. von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner. 1.

Agile Testing. Der agile Weg zur Qualität. von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner. 1. Agile Testing Der agile Weg zur Qualität von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner 1. Auflage Hanser München 2013 Verlag C.H. Beck im Internet: www.beck.de

Mehr

Automatisiertes UI Testing. Mark Allibone, 18.04.2013, #2

Automatisiertes UI Testing. Mark Allibone, 18.04.2013, #2 Coded UI Testing Automatisiertes UI Testing Mark Allibone, 18.04.2013, #2 Eine klassische Applikations Architektur Grafische Oberfläche Business Logik Datenzugriff (Datenbank, Cloud, etc) Mark Allibone,

Mehr

Einfaches Programmtesten

Einfaches Programmtesten http://www.constructionphotography.com Einfaches Programmtesten OOPM, Ralf Lämmel Naives Testen versus systematisches Testen (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 76 (C) Ralf Lämmel, OOPM,

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung Projektmanagement Vorlesung von Thomas Patzelt 9. Vorlesung 1 Pläne Kein Plan überlebt die erste Feindberührung - Feldmarschall Helmuth von Moltke Prognosen sind schwierig, besonders wenn sie die Zukunft

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage Inhalt 1. Sprachspezifische Fehlerrisiken C++ Java Smalltalk 2. Coverage - Modelle Statement Coverage Branch Coverage Inkrementelles Testen von Klassen Testen Polymorpher Bindungen Optimistischer Ausblick

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr