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.

Code und Qualität 2: Testing

Code und Qualität 2: Testing Code und Qualität 2: Testing Proseminar Objektorientiertes Programmieren mit.net und C# Trung Hieu Dao Institut für Informatik Software & Systems Engineering Agenda Motivation Unit Tests in Visual Studio

Mehr

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

Unit Testing mit NUnit

Unit Testing mit NUnit Unit Testing mit NUnit Vortrag in der Praktikumsveranstaltung SWAT Sommersemester 2013 Michael Fiedler 16. Mai 2013 1 / 22 Überblick 1 Erinnerung: Unit-Tests 2 NUnit 3 Kurze Vorführung

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

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

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.

Mehr

Unit Testing, SUnit & You

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

Mehr

Unit Tests in der Testgetriebenen Entwicklung

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ß

Mehr

Das Test-Framework JUnit ETIS SS04

Das Test-Framework JUnit ETIS SS04 Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen

Mehr

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

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

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

Unit Tests mit Junit 4. Dario Borchers

Unit Tests mit Junit 4. Dario Borchers Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests

Mehr

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

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Programmiertechnik II

Programmiertechnik II Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing

Mehr

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

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

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests

Mehr

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

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

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

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen

Mehr

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

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da

Mehr

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes Programmieren mit Java. Test Driven Development Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test

Mehr

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

Test Driven Development

Test Driven Development Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)

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

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

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 1 Web-Testen mit JUnit und HttpUnit Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 2 Inhalt Entwicklertests in der Praxis Unit-Testing JUnit HttpUnit Praktisches Beispiel Bewertung

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

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit 1 DYNAMISCHER TEST Whitebox Testen mit JUnit Übersicht 2 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe

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

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

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

Mehr

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

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

Mehr

Software-Engineering Software-Management

Software-Engineering Software-Management Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3

Mehr

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing

Mehr

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

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

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

Markus Wichmann. Testen von Java Code mit. JUnit

Markus Wichmann. Testen von Java Code mit. JUnit Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig

Mehr

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

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

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

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

am Beispiel von JUnit

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

Mehr

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

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

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

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

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12 Vertretung von Prof. Dr. Blume WS 2011/12 Inhalt Test, Abnahme und Einführung Wartung- und Pflegephase gp Vorlesung Zusammenfassung Produkte und Recht (Folien von Prof. Blume) 2 , Abnahme und Einführung

Mehr

Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Testen von Programmen 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte

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

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

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

Mehr

Testen Prinzipien und Methoden

Testen Prinzipien und Methoden Testen Prinzipien und Methoden ALP 2 SS2002 4.7.2002 Natalie Ardet Definition Im folgenden gilt: Software = Programm + Daten + Dokumentation Motivation Software wird immer mehr in Bereichen eingesetzt,

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

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

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 grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

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

Agilität und systematischer Test

Agilität und systematischer Test Agilität und systematischer Test Wie können die Vorteile der agilen Softwareentwicklung mit einem systematischen Test kombiniert werden? Prof. Dr.-Ing. Andreas Spillner Hochschule Bremen Acceptance Café,

Mehr

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

Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest Konzeption und prototypische Implementierung eines Werkzeuges für den funktionalen Klassentest Übersicht Motivation Zielsetzung Lösungsansatz und dessen Realisierung Anwendungs-Szenarien Präsentation von

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

Testen mit JUnit. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03

Testen mit JUnit. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da die meisten Programme

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

Überblick. Einleitung. Unit-Tests. JUnit. HelloWorld Beispiel. Praktische Beispiele. Referenzen

Überblick. Einleitung. Unit-Tests. JUnit. HelloWorld Beispiel. Praktische Beispiele. Referenzen Testen mit JUnit 1 Überblick Einleitung Unit-Tests JUnit HelloWorld Beispiel Praktische Beispiele Referenzen 2 Einleitung Irren ist menschlich Überprüfung auf Knopfdruck Entwicklung richtiger Tests ->

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

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

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

Komponentenbasierter Taschenrechner mit CORBA

Komponentenbasierter Taschenrechner mit CORBA Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Testen. SEPR Referat: Testen - Oliver Herbst

Testen. SEPR Referat: Testen - Oliver Herbst Testen Inhalt 1. Grundlagen des Testens 2. Testen im Softwarelebenszyklus 3. Statischer Test 4. Dynamischer Test 5. Besondere Tests 2 1. Grundlagen des Testens 3 Grundlagen des Testens Motivation erfüllt

Mehr

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

Mehr

Unit Tests und Fehlersuche

Unit Tests und Fehlersuche Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein

Mehr

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

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

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

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

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Programmierpraktikum Java Entdecken. Merkblatt 3

Programmierpraktikum Java Entdecken. Merkblatt 3 Technische Universität München Fakultät für Informatik Prof. Dr. Helmut Seidl Michael Petter Melanie Dietz Raphael Geissler SS 2005 Programmierpraktikum Java Entdecken 1 extreme Programming Merkblatt 3

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

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt:

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt: Ein Port Scanner ist eine gute Möglichkeit den eigenen Server auf offene Ports zu scannen. Zu viele nicht benötigte und offene Ports können auf Ihrem Server und auf Ihrem Computer ein Sicherheitsrisiko

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

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

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

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

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

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

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

License Management 1.0 - SDK

License Management 1.0 - SDK License Management 1.0 - SDK Inhalt Allgemeine Beschreibung... 2 Vorbereitungen... 2 Download aller nötigen Dateien und Dokumentationen... 2 Beantragung eines ValidationKeys... 2 Beantantragung einer Development-Lizenz...

Mehr

Testen im Software- Lebenszyklus

Testen im Software- Lebenszyklus TestNG TestNG Testen im Software- Lebenszyklus White-Box vs Black-Box Testing White-Box-Testing Black-Box-Testing Test-Driven Development (TDD) testgetriebene Entwicklung zuerst werden die Unit-Tests erstellt.

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Cyrill Stachniss Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code

Mehr

JUnit. Unit testing unter Java

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.

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

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

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

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