Einführung und Einteilung. Software Engineering 1. Book. Pieter van den Hombergh. 5. Februar Vor allem: Testen!
|
|
- Ida Wetzel
- vor 6 Jahren
- Abrufe
Transkript
1 Einführung und Einteilung Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 5. Februar 2014 HOM/FHTeL Einführung und Einteilung 5. Februar /1 Software Engineering 1 Literatur Vor allem:! HOM/FHTeL Einführung und Einteilung 5. Februar /1 Book Literatur Objektorientiertes und Testautomatisierung in der Praxis oder von Software und Embedded Systems Wir benutzen zu den Vorlesungen, im Praktikum und im Projekt: Autor Uwe Vigenschow, der Firma oose.de. Verlag, ISBN dpunkt.verlag GmbH, Heidelberg, ISBN Preis 39 Euro oder Verlag, ISBN dpunkt.verlag GmbH, Heidelberg, ISBN Preis 39,90 Webseite Selbststudium für die nächste Woche: Studieren der Kapitel 1-4, Seiten 3-25 Nächste Woche möglicherweise ein Quiz zu diesen Kapiteln. HOM/FHTeL Einführung und Einteilung 5. Februar /1 1
2 Mariner 1 Im Jahr 1962 wurde die Trägerrakete der Mariner 1-Venussonde 290 Sekunden nach dem Start kontrolliert zerstört, da sie von der vorgesehenen Flugbahn abwich. Der Schaden belief sich auf ca. 18,5 Mio. $. Was war los? Der fehlerhafte Code für eine Schleife über die Werte 1, 2 und 3: DO 5 K = 1, 3 steht folgendermaßen im Programm: DO 5 K = 1. 3 Dieses sieht der Kompiler: DO5K = 1.3 und das ist die Deklaration der Variabele DO5K!! Kleine Ursache, große Folgen! HOM/FHTeL Einführung und Einteilung 5. Februar /1 Code der Venussonde Mariner 1 IF ( TVAL.LT. 0.2E -2) GOTO 40 DO 40 M = 1, 3 W0 = (M -1)*0.5 X = H * E -2* W0 DO 20 N0 = 1, 8 EPS = 5.0*10.0**( N0-7) CALL BESJ (X, 0, B0, EPS, IER ) IF ( IER.EQ. 0) GOTO CONTINUE DO 5 K = 1. 3 T(K) = W0 Z = 1.0/( X **2)* B1 ** E -4* B0 **2 D(K) = 3.076E -2*2.0*(1.0/ X*B0*B E -4**( B0 **2 -X*B0*B1 ))/ Z E(K) = H **2* * W0/ SIN (W0 )*Z H = D(K)-E(K) 5 CONTINUE 10 CONTINUE Y = H/W CONTINUE HOM/FHTeL Einführung und Einteilung 5. Februar /1 Das Ariane-Feuerwerk Herabfallende Trümmer, nach der Selbstzerstörung der Ariane-501 Rakete, am 4. Juli Die AR-501 explodierte durch einen Softwarefehler: die Geschwindigkeit passte nicht in die dazu reservierte Variabelengröße. Neue Techniken sind notwendig, um derartigen Unfälle vorzubeugen. Quelle Foto: ESA HOM/FHTeL Einführung und Einteilung 5. Februar /1 2
3 Ariane code declare vertical_veloc_sensor : float ; horizontal_veloc_sensor : float ; vertical_veloc_bias : integer ; horizontal_veloc_bias : integer ; begin declare pragma suppress ( numeric_error, horizontal_veloc_bias ); begin sensor_get ( vertical_veloc_sensor ); sensor_get ( horizontal_veloc_sensor ); vertical_veloc_bias := integer ( vertical_veloc_sensor ); horizontal_veloc_bias := integer ( horizontal_veloc_sensor ); exception when numeric_error => calculate_vertical_veloc (); when others => use_irs1 (); end ; end irs2 ; HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist schief gegangen? Standardgemäßig werden Wertebereiche auf Gültigkeit geprüft. Das kann aber auch unterdrückt werden, was im nächsten Abschnitt passiert: declare pragma suppress(numeric_error,horizontal_veloc_bias); Die vom Geschwindigkeitssensor ermittelte horizontale Geschwindigkeit wird in die intern benutzte Einheit umgerechnet und an die Steuerungssoftware weitergeleitet. Diese Umrechnung geschieht in der nachstehenden Codezeile, wobei der Wert in den Datentyp Integer umgewandelt wird: horizontal_veloc_bias := integer(horizontal_veloc_sensor); HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist schief gegangen? - Fortsetzung Genau hier findet, ungefähr 30 Sekunden nach dem Start, ein Integerüberlauf statt, der nicht abgefangen wird, weil der dazugehörige Test zuvor im Code abgeschaltet wurde. Bei der Ariane 4 gab es dabei nie Probleme; die Ariane 5 erreichte aber im selben Moment eine fünffache Geschwindigkeit. Das Risikomanagement war überzeugt davon, dass nur Hardware- und keine Softwarefehler auftreten könnten. [Mehr Details dazu Objektorientiertes und Testautomatisierung in der Praxis von Uwe Vigenschow ( HOM/FHTeL Einführung und Einteilung 5. Februar /1 3
4 Ist eine robustere Sprache die Lösung? Ein Komma anstelle eines Punkts führt in C++ zu einer Endlosschleife: while (x > 0,1)... In Java nicht, da die 1 nicht automatisch in ein True umgewandelt wird. Der Kompiler würde nörgeln. Also immer Java? Das ist auch keine Lösung. Die momentane Lösung: Frühzeitig Tests aufstellen (Sprachunabhängig) und regelmäßig ausführen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Einführung Wieso testen? Produktstandpunkt Das Programm soll korrekt sein, tun was der Auftragsgeber möchte. Die Software soll zuverlässig sein, nicht crashen. Stabilität: Die Software sollte nicht außer Tritt kommen, wenn der Benutzer sie falsch bedient. Prozessstandpunkt der Software trägt zur Verbesserung des Softwareprozesses bei. Kommunikation mit Kollegen Austausch von Code, der mit einem Test versehen ist. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist? Eine Definition: ist die Aktivität des Ausführens (eines Teils) eines Programms, mit dem Ziel, Fehler zu finden. Eine vollwertige Aktivität, die zum Entwicklungsprozess gehört. Was leistet und nicht leistet: Zeigen (beweisen), dass ein Programm keine Fehler enthält. Nur das Gegenteil ist möglich: belegen, dass ein Programm Fehler enthält. HOM/FHTeL Einführung und Einteilung 5. Februar /1 4
5 Arten von Tests Ein unit test testet auf diese Weise 1 (oder eine kleine Menge) Klassen. Ein Integrationstest benutzt man, wenn man 2 oder mehrere kleine Teile zusammenfügt. Ein Regressionstest dem gegenüber soll (in einer automatisierter Weise) das ganze Programm testen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Unit testen Black-box testing Softwaretest ohne Kenntnisse des exakten, internen Funktionierens des Moduls. Beispiel: von MyStack White-box testing Strukturelles basic path testing: Alle mögliche Kontrollpfade im Programm verfolgen und daraus den Test aufbauen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie stelle ich einen Unittest auf? Einfaches Beispiel, ein Stack (Stapel, Keller): Methoden: push Aufdrücken. pop Abnehmen. peek Oberstes betrachten. isempty Zustand abfragen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 5
6 Java Vertrag class MyStack implements Stack; Methoden Stack interface: p u b l i c i n t e r f a c e Stack { v o i d push ( O bject ) ; // put e l e m e n t O b ject peek ( ) ; // r e t u r n top e l e m e n t O b ject pop ( ) ; // remove and r e t u r n top e l e m e n t boolean isempty ( ) ; // s t a c k empty } Dieser Vertrag ist nicht ausreichend Wasserdicht. Wo besteht Verbesserungsbedarf? HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie stelle ich einen Unittest auf? 2 Schreibe: class StackTest Die Annotierte setup () stack = new MyStack( teardown( ) stack = public final void atestpush() Testmethoden wie nachstehend p u b l i c v o i d t e s t P u s h ( ) { S t r i n g t= H a l l o ; s t a c k. push ( t ) ; a s s e r t E q u a l s ( t, ( S t r i n g ) s t a c k. peek ( ) ) ; } Eine Methode ist eine Testmethode wenn sie Annotation hat. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Klassendiagramm TestCase <<interface>> Stack TestRunner StackTest MyStack HOM/FHTeL Einführung und Einteilung 5. Februar /1 6
7 Stubs, Drivers und Mock Stubs Oft braucht man noch andere Klassen, um die zu testende Klasse funktionieren zu lassen. Die sind aber noch nicht fertig! Oder zu umständlich für den Test. (Datenbankverbindung o.ä.) Sonderklassen, die das Verhalten der zukünftigen Klassen simulieren. Sind auch als Mock-Objekte bekannt. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Bedeutung von Unittests Unittests sind wichtig, weil sie es erlauben kleine Teile der Software zu testen. Man sieht immer wieder, dass eventuelle Fehler sich in kleinen Teilen der Software befinden und man muss so nicht stundenlang suchen, um herauszufinden wo sich der Fehler genau aufhält. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Integrationstests Gute Unittests ausgeführt, aber doch Probleme, wenn 2 oder mehr Klassen auf einmal zusammenarbeiten sollen. Möglichen Ursachen könnten sein: Mehrere Personen schreiben zusammen die Software. Wie klar die Vereinbarungen auch sind, immer wieder kann es zu Missverständnissen kommen. Das kann aber auch auftreten, wenn mann alleine arbeitet! HOM/FHTeL Einführung und Einteilung 5. Februar /1 7
8 Bedeutung von Integrationstests Wieso sind Integrationstests wichtig? So früh wie möglich testen schränkt die Suche nach Fehlern ein. Kein big-bang Unterfangen. Deshalb ist es gut, inkrementell vor zu gehen. Jedes mal, wenn man zwei zueinander passende Klassen fertig hat, führt man einen Integrationstest durch. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist ein Regressionstest? Ein Test, der das ganze Programm testet. Vorzugsweise völlig automatisiert. Durch Ausführen eines Kommandos (dem Test-Start), weiß der Benutzer des Tests, ob das Programm richtig funktioniert (dem Tests gemäß) oder ob noch irgendwo Fehler verborgen sind. Ist eine Sammlung einzelner Tests. Besteht aus einer Menge von Szenarien Umfasst Simulationen von normalen und abnormalen Situationen. HOM/FHTeL Einführung und Einteilung 5. Februar /1, 2 Normale Fälle Alle Handlungen und alle Eingaben (vom Benutzer, externe Eingaben und Konfigurationsdateien), die eine normale Auswirkung des Programms zur Folge haben sollten. Ausnahmebedingungen. (Exceptions) Falsche Eingabe des Benutzers oder falsche Eingabe durch Konfigurations- oder Eingabedateien. Außerordentlicher Systemzustand, z.b. das Erzeugen einer Ausgabedatei funktioniert nicht weil... HOM/FHTeL Einführung und Einteilung 5. Februar /1 8
9 3 Verknüpfung Usecases und vorgeschlagene Szenarien: Sind eine grundlegende Beschreibung wie die Software benutzt werden soll. Mehrere Benutzungsszenarien für einen Usecase. Also pro Usecase ein oder mehrere Szenarien im Regressionstest. Andersherum: Aus den Unit- und Integrationstests die man schreibt, Szenarien für den Regressionstest ableiten. (Werfe nie einen guten Test weg!) HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie baut man einen guten Regressionstest auf? Scenario Expected / Actual 1: Completely correct inputfile Output1 Output1 2: Completely correct inputfile Output2 Output2 3: Missing XML closing tag Error msg 1 Error msg 1 4: Non matching open and closing Error msg 2 Error msg 2 tag 3: XML file with unknown tag Error msg 3 Output5 Tabelle : Scenario 5 in abnormal situation Diese Tabelle ist nur ein Beispiel uas einer Anwending mit XML Datein. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Regressionstests, weshalb wichtig? Jeder kann diese Tests ausführen ohne große Vorkenntnisse vom System: Es muss nur ein Kommando abgesetzt werden, um in einem Augenblick zu sehen, ob das Programm richtig oder gar nicht funktioniert. Wenn man einmal die Basisversion der Software zum Laufen gebracht hat, ist es einfach zu sehen, ob beispeilsweise eine bestimmte (funktionelle) Änderung oder ein Refactoring keine nachteilige Auswirkung hat, indem man einen Regressionstest ausführt. HOM/FHTeL Einführung und Einteilung 5. Februar /1 9
10 Testing framework Was ist ein Framework? Eine Art von Gerüst: Es gibt Form und Richtung der Software an, die man schreibt. Softwareteile mit mehr oder weniger der gleichen Struktur. Jedes Framework umfasst wiederverwendbare Teile mit Basisfunktionalität. Spezifisch ausgerichtet für das Problem, das man lösen möchte. Einige Vorteile von Frameworks: Zeitgewinn Eine gleiche Struktur vereinfacht das Verstehen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Beispiele von test- JUnit, Mother 1 of all unit. Quelloffen, wie die Meisten. Frameworks in anderen Sprachen CppUnit für C++. Nunit für die.net Welt (in C#). PyUnit für Python XMLUnit SQLunit PHPUnit Etc. 1 Actually smalltalk was earlier HOM/FHTeL Einführung und Einteilung 5. Februar /1 Und was kostet es? Ein weiterer Nebeneffekt der Frameworks ist, dass die meisten Frameworks quelloffen und weit verbreitet sind. JUnit und die darauf setzenden Testtools sind Standards in der Java Welt. Aber, abhängig vom Produkttyp (in Zusammenhang mit den Risiken) können Tests sehr viel kosten. Im Normalfall zwischen 20 und 40% der gesamten Entwicklungskosten. In manchen kritischen Fällen sogar über 50%. Das sind hauptsächlich Gehaltskosten. HOM/FHTeL Einführung und Einteilung 5. Februar /1 10
11 Tips Schreibe deine Tests, bevor du mit dem Programm selbst anfängst. Teste von Anfang an. Teste gründlich, und achte vor allem auf die Randfälle. Entwickle für jeden Usecase mindestens einen Test. Und wann bin ich Fertig? Eigentlich nie HOM/FHTeL Einführung und Einteilung 5. Februar /1 11
Einführung und Einteilung
Einführung und Einteilung Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 5. Februar 2014 HOM/FHTeL Einführung und Einteilung 5. Februar 2014 1/1 Einführung und
MehrProgrammiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
MehrJUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1
JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen
MehrCode verifizieren mittels
Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren
MehrAriane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler
Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler Christian Weyand Universität Koblenz - Landau Ariane 5 - Luftfahrt p.1 Das Ariane - Programm Gründung der European Space Agency (ESA) mittlerweile
MehrSystematisches Testen
Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn
MehrSwp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept
Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,
Mehrextern, also zwischen Menschen intern, also im internen Kommunikationsprozess bei der Transformation
3 1 Komplexe Systeme führen zu Fehlern»Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit.«1 Für uns bietet diese Erkenntnis kaum eine Möglichkeit, Fehler zu vermeiden. Also wollen wir uns
MehrUnit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG
Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/
MehrUnit Tests mit Junit 4. Dario Borchers
Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests
MehrProgrammieren 2 04 Testen und Testautomatisierung
Programmieren 2 04 Testen und Testautomatisierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Das Programm funktioniert super!...denkt
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Mehr1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
MehrSoftware 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
MehrThema: Testen von objektorientierter Software
Seminar Simulation und Bildanalyse mit Java Thema: Testen von objektorientierter Software Uta Dienst 1. Teil: Einführung in den Software-Test 2. Teil: JUnit-Einführung Uta Dienst 17.11.2003 2 1. Teil:
MehrQualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit
1 DYNAMISCHER TEST Whitebox Testen mit JUnit Übersicht 2 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe
MehrEnterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
MehrSOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST
SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen
MehrJUnit 4 Tutorial. Wolfgang Stöttinger
JUnit 4 Tutorial Wolfgang Stöttinger JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3
MehrUnit Tests und Fehlersuche
Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein
MehrProgrammieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
MehrSoftware - 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
MehrMarkus Wichmann. Testen von Java Code mit. JUnit
Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig
MehrStapel (Stack, Keller)
Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).
MehrProgrammierprojekt. Anne0e Bieniusa Sommersemester 2014
Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase
MehrMock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Mock-Objekte Verschiedene Testhelfer Ein Stummel (engl. stub) ist ein nur rudimentär implementierter Teil der Software und dient als Platzhalter
MehrUnit 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
MehrWeb-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
MehrDas Test-Framework JUnit ETIS SS04
Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen
MehrTesten mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls
Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests
MehrAufgabenblatt Nr. 5 Generizität und TicTacToe
Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung
MehrJUnit. 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.
MehrErster Bug: eine Motte
SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte
MehrProseminar Software Desaster. ARIANE 5 Absturz des Flugs 501
Proseminar Software Desaster ARIANE 5 Absturz des Flugs 501 Mathias Riedl 4.12.2002 Gliederung: 1. Einleitung: Rückschlag für Raumfahrt 2. Allgemeine Beschreibung des Vorfalls a. Ablauf des Countdowns
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrObjektorientiertes Testen und Testautomatisierung in der Praxis
Objektorientiertes Testen und Testautomatisierung in der Praxis Konzepte, Techniken und Verfahren von Uwe Vigenschow 1. Auflage Objektorientiertes Testen und Testautomatisierung in der Praxis Vigenschow
MehrTesten 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
MehrUnit 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
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrUnit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck
Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
Mehr5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
5. Dokumentieren und Testen Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrProgrammieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte der Softwareentwicklung.
Mehr1. 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:
MehrTesten mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang
Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da
MehrUnit Testing mit JUnit. Dr. Andreas Schroeder
Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
MehrJava Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit Prof. Dr. Nikolaus Wulff JUnit JUnit ist das Opensource Testframework. Es existieren Portierungen für fast alle objektorientierten
MehrEffizientes und effektives Testen von Embedded SW mit Google Test. Michael Bernhard
Effizientes und effektives Testen von Embedded SW mit Google Test Michael Bernhard 1 Agenda Warum testen? Wie testen? Google Test und Google Mock Toolintegration Schlussfolgerung 2 Die Norm fordert es
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
MehrSoftwaretests 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrStarthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum
Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit
MehrSystematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015
Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrJava für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
Mehram 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Übersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrTesten 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,
MehrLösungen zum Test objektorientierter Software
Lösungen zum Test objektorientierter Software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 14. März 2013 HOM/FHTeL Lösungen zum Test objektorientierter Software
MehrQualitä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,
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrTesten im Software- Lebenszyklus
TestNG TestNG Testen im Software- Lebenszyklus White-Box vs Black-Box Testing White-Box-Testing Black-Box-Testing Test-Driven Development (TDD) testgetriebene Entwicklung zuerst werden die Unit-Tests erstellt.
MehrThe 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
MehrInfo: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen
Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels
MehrFACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
MehrTesten von grafischen Benutzeroberflächen
Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrEinstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
MehrTesten 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
MehrCode 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
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrUE 2: Lexikalische Analyse (Scanner)
UE 2: Lexikalische Analyse (Scanner) Testen siehe Testanleitung auf Homepage! diese Woche in der UE: Softwaretesten mit JUnit Eine Einführung" UB-UE2-Angabe.zip: (neu seit 21.10.2004) Compilerklassen (Token.java,
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
MehrInformatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
MehrSoftware Engineering. 3. JUnit und ANT. Franz-Josef Elmer, Universität Basel, HS 2012
Software Engineering 3. JUnit und ANT Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 3. JUnit und ANT 2 Unit Testing Unit Test: Automatischer Test welcher eine Einheit (z.b. Modul,
Mehr1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2
1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing
MehrTest 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)
MehrAllgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen
5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:
MehrQualität, Fehler un Testvorgehen
, Fehler un Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 20. Februar 2013 HOM/FHTeL, Fehler un 20. Februar 2013 1/23 , Fehler un Pieter van den Hombergh Fontys
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum
MehrTestphase. 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
MehrC# 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
MehrVom Testkonzept zu JUnit
Testen und Testkonzept Dipl.-Inf. (FH) Christopher Olbertz 2. Dezember 2014 Testen und Testkonzept Warum testen? Wichtig, obwohl bei Programmierern unbeliebt Stellt weitgehend korrekte Funktionsweise eines
MehrFramework zur Unterstützung von Unit-Tests
JUnit Framework zur Unterstützung von Unit-Tests Automatisierte Ausführung von Tests Ideen dahinter Testgetriebene Entwicklung: Erst testen, dann programmieren Alle Testfälle häufig ausführen (nach jeder
MehrÜbung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 4 Votierung in der Woche vom 21.05.0725.05.07 Aufgabe 9 Waggons rangieren
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrKlausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.
Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrÜbungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11
Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe
Mehr