Einfaches Programmtesten
|
|
- Benedict Schräder
- vor 8 Jahren
- Abrufe
Transkript
1 Einfaches Programmtesten OOPM, Ralf Lämmel
2 Naives Testen versus systematisches Testen (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 76
3 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 77 Naives Testen von ggt public class Functionality { public static int gcd(int x, int y) { while (x!= y) { if (x > y) x = x - y; else y = y - x; } return x; } public static void main(string[] args) { System.out.println(gcd(6,5)); // 1 System.out.println(gcd(6,4)); // 2... } } Sind damit alle Fälle getestet? Wie wird dies kontrolliert?
4 Beispielecode zu dieser Vorlesung (Komplette Eclipse-Projekte) simpletest/ (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 78
5 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 79 Charakteristik des naiven Testens Ausführen von Tests in main() Methode. Ausgabe der Ergebnisse auf System.out. Manuelles Begutachten der Ergebnisse. u.u. unsystematische Auswahl der Testdaten. u.u. Überschreibung der Testfälle für neue Tests.
6 Systematisches Testen von ggt Import von Test- Methoden Werfe Ausnahme, wenn Werte nicht gleich Programmierte Testfälle (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau import static org.junit.assert.*;! public class Functionality { public static int gcd(int x, int y) {... } public static void main(string[] args) { assertequals(1, gcd(6,5)); assertequals(2, gcd(6,4));... } } Erwarteter Wert 80 Tatsächlicher (berechneter) Wert
7 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 81 Grundsätzliche Begriffe zum Testen SUT: System Under Test Testfall = Eingabedaten + erwartete Ausgabe (e) Testfallausführung Ermittlung der tatsächliche Ausgabe (t) Erfolgreicher Testfall: e und t stimmen überein. Gescheiterter Testfall: e und t stimmen nicht überein. Test-Treiber Programm zum Ausführen der Testfälle Protokollierung der Testergebnisse
8 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 82 Programmierung von Testfällen mittels Assert-Methoden assertequals(long expected,long actual) assertequals(double expected,double actual,double delta) asserttrue(<condition>) assertfalse(<condition>)... Reihenfolge beachten!
9 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 83 If it s not tested, it s broken! Compiler / IDE überprüft Syntax- und Typkorrektheit. Tests helfen bei funktionaler Korrektheit. Anforderungen für Tests: dokumentiert ausführbar seiteneffekt-frei unabhängig abdeckend...
10 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 84 Was kann Testen leisten? Erhöhung des Vertrauens in Korrektheit Verbindliche Form von Dokumentation Ausführen aller Programmteile Aufdeckung problematischer Änderungen
11 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. Was kann Testen nicht leisten? Beweis funktionaler Korrektheit. Beweis der Abwesenheit von Fehlern. Beweis der Übereinstimmung zwischen erwartetem Verhalten und Edsger Wybe Dijkstra * getestetem Verhalten Program testing can be used to show the presence of bugs, but never to show their absence (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 85
12 Methoden zum systematischen Testen (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 86
13 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 87 Granularitätsstufen für das Testen Unit-Test Integrationstest Anwendungstest
14 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 88 Granularitätsstufen für das Testen Unit-Test Integrationstest Anwendungstest Testen der vollständigen Anwendung in der Zielumgebung Akzeptanztest zur Erfüllung aller Anforderungen Regressionstest zum Vergleich zwischen zwei Versionen Last-Test zum (Zeit-) Verhalten unter einer gewissen Last Verantwortlich: Auftraggeber, Entwickler
15 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 89 Granularitätsstufen für das Testen Unit-Test Integrationstest Test des Zusammenspiels von Modulen einer Anwendung Teile der Umgebung simuliert Verantwortlich: Entwickler Anwendungstest
16 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 90 Granularitätsstufen für das Testen Unit-Test Test einzelner Module ( Test im Kleinen ) Paket Klasse Methode Wir konzentrieren uns vorerst auf das Testen von Methoden. Verantwortlich: Entwickler Integrationstest Anwendungstest
17 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 91 Glassbox-Testen Struktur-Testen Ableiten der Testfälle aus dem Code. Überdeckung (Coverage) von allen Anweisungen allen Zweige allen Teilbedingungen allen Pfaden
18 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 92 Glassbox-Testen int foo(int x, int y)! {! int z = 0;! if ((x>0) && (y>0)) {! z = x;! } }! return z;! Erreichen wir den Then-Zweig? Erschöpfen wir die Möglichkeiten für Wahrheitswerte?
19 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 93 Glassbox-Testen Funktionsüberdeckung! Definition: Alle Funktionen werden aufgerufen. Beispiel: Jeglicher Aufruf von foo.
20 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 94 Glassbox-Testen Anweisungsabdeckung! Definition: Alle Anweisungen werden ausgeführt. Beispiel: foo(1,1) Gegenbeispiel: foo(0,0) int foo(int x, int y)! {! int z = 0;! if ((x>0) && (y>0)) {! z = x;! }! return z;! }
21 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 95 Glassbox-Testen Zweigüberdeckung! Definition: Alle Zweige werden getestet. Beispiel: foo(1,1) foo(0,1) int foo(int x, int y)! {! int z = 0;! if ((x>0) && (y>0)) {! z = x;! }! return z;! }
22 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 96 Glassbox-Testen Bedingungsüberdeckung! Definition: Alle Teilbedingungen werden wahr und falsch. Beispiel: foo(1,1) foo(1,0) foo(0,0) int foo(int x, int y)! {! int z = 0;! if ((x>0) && (y>0)) {! z = x;! }! return z;! }
23 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 97 Blackbox-Testen Funktionales Testen Ableiten der Testfälle aus der Spezifikation. Spezifikation des Verhaltens WAS tut eine Methode? Überdeckung von Normalfällen Fehlerfällen Grenzfällen Wir konzentrieren uns vorerst auf das Testen von Normalfällen. Codeüberdeckung nicht notwendig vollständig.
24 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 98 Spezifikation von ggt Eingabe: x, y positive ganze Zahlen Ausgabe: z positive ganze Zahl Eigenschaft über x, y, z: z ist ein Teiler von x und y. Für jeden anderen Teiler z gilt dass z < z.
25 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 99 Anforderungen an Spezifikation Natürlichsprachlich, semiformal oder formal Eindeutig Präzise Korrekt Vollständig In der Praxis sind diese Anforderungen möglicherweise zu teuer. Allerdings helfen Tests auch als Form der Spezifikation. Widerspruchsfrei Wir werden uns später intensiver mit Spezifikationen beschäftigen.
26 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 100 Klassifizierung von Testfällen Momentaner Fokus Normalfälle Grenzfälle Fehlerfälle Testen aller Fälle ist typischerweise nicht möglich. Man bildet dann Äquivalenzklassen. Man kann ebenfalls zufällige Testdaten anwenden.
27 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 101 Normalfälle für ggt 1. Argument kleiner als 2. Argument 2. Argument kleiner als 1. Argument 1. Argument gleich zu 2. Argument 1. Argument ein Vielfaches vom 2. Argument 1. Argument nicht ein Vielfaches vom 2. Argument
28 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 102 Fehlerfälle Die Erwartung ist hier, dass das Programm definiertes Verhalten in den Fehlersituationen zeigt. Argument ausserhalb des Definitionsbereiches z.b. ggt von 0 und 1 Vorbedingung einer Methode nicht erfüllt z.b. Entfernen des Kopfelementes aus leerer Liste Wir werden später besondere Programmiertechniken besprechen, um erwartete Fehler ( Ausnahmen ) als erwartete Ergebnisse zu programmieren.
29 Danksagung: Teile dieser Vorlesung gehen auf Dr. Volker Riediger s OOPM 2008 Vorlesung zum Testen zurück. (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 103 Grenzfälle Die Hypothese ist hier, dass das Programm eventuell an den Grenzen versagt. Grenzen des Definitionsbereichs Leere Liste (wenn nicht schon Fehlerfall) Null (wenn nicht schon Fehlerfall) Ein-elementige Liste Operationen am Anfang/am Ende von Listen Eine nicht erzielbare Genauigkeit
30 Der logistische Ansatz zur Lösung, Abgabe und Kontrolle der Programmier(haus)aufgaben Beinhaltet einfaches Testen! (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 104
31 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 105 Schritte auf Seite des Studierenden Studierender holt die Aufgabe über svn ab. Studierender kopiert das Verzeichnis (z.b. 1 für die erste Aufgabe in das persönliche OOPM-Verzeichnis für Lösungen ( solutions ). Studierender löst die Programmieraufgabe: Anpassung von Datei Functionality.java Passieren der Tests in Datei PublicTests.java Studierender löst Hausaufgabe: Ersetzen von Datei Hausaufgabe.pdf durch Lösung. Studierender reicht Verzeichnis mit Lösung über svn ein. Im Prinzip reicht Functionality.java (und Hausaufgabe.pdf), aber zur Sicherheit sollte man das gesamte Eclipse-Projekt einreichen.
32 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 106 Architektur der Programmier(haus)aufgaben Vorgabe einer Klasse Functionality.java Methodensignaturen der Aufgabe Methodenkörper sind unvollständig oder fehlen Vorgabe einer Klasse PublicTests.java main-methode enthält Testfälle mittels assert Initial: Werfen einer Ausnahme Bei Abgabe: Kein Werfen Geheimhaltung einer Klasse ExtraTests.java
33 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 107 Verwendung von geheimen Tests Extra Tests für ggt import static org.junit.assert.*; Damit kann bei der! Kontrolle wirksam die public class ExtraTests { Korrektheit bzw. public static void main(string[] args) { Vollständigkeit der! Lösung überprüfen. // swap arguments assertequals(4, Functionality.gcd(8,12));! // bigger numbers assertequals(25, Functionality.gcd(175,25));! // much bigger numbers assertequals(64, Functionality.gcd(1024,192)); } }
34 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 108 Weitere Regeln für die Aufgaben ( subject to change ) Ganze Eclipse-Projekte einreichen. Das Eclipse-Projekt muss funktionieren as is. UTF-8 encoding in Eclipse einstellen. Eclipse-Versionen Kepler oder Luna verwenden. JUnit 4 (nicht 3) verwenden. Code nur begrenzt anpassen. Package, Klassen- und Methodennamen bewahren Methodensignaturen bewahren Nur fehlende Bereiche von Functionality.java ausfüllen.
35 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 109 Schritte bei der Aufgabekontrolle auf Seiten des OOPM-Teams Automatisches Kompilieren von Functionality.java u.a. Automatisches Ausführen von PublicTests.java auf Lösung. Automatisches Ausführen von ExtraTests.java auf Lösung. Automatische Klonerkennung ( Betrugskontrolle ) Automatische Metrikbestimmung ( besondere Lösungen ) Manuelle Würdigung des Codes. Manuelle Bewerbung der Hausaufgabe.
36 (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau Zusammenfassung Unit-Testen der funktionalen Korrektheit Programmierung mit asserts in Java Nicht behandelt: Anwendungs- und Integrationstesten Last-Testen zu Ressourcen Akzeptanz-Testen GUI-Testen... Ausblick Numerische Algorithmen Programmierung mit Feldern
Whitebox-Tests: Allgemeines
-Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv
MehrSEP 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
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
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrKomponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009
Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger
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
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
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
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
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
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
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrTest-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,
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrJavadoc. 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
MehrTest-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
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrProjektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung
Projektmanagement Vorlesung von Thomas Patzelt 9. Vorlesung 1 Pläne Kein Plan überlebt die erste Feindberührung - Feldmarschall Helmuth von Moltke Prognosen sind schwierig, besonders wenn sie die Zukunft
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrC++ mit Eclipse & GCC unter Windows
C++ mit Eclipse & GCC Seite 1 / 14 C++ mit Eclipse & GCC unter Windows Hinweise Stand 18. Okt. 2014 => GCC 4.9.1 Boost 1.56.0 Eclipse Luna V. 4.4.1 Java Version 8, Update 25 (entspricht 1.8.0_25) Achtung
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrPragmatik von Programmiersprachen
Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software
MehrMailUtilities: Remote Deployment - Einführung
MailUtilities: Remote Deployment - Einführung Zielsetzung Die Aufgabe von Remote Deployment adressiert zwei Szenarien: 1. Konfiguration der MailUtilities von einer Workstation aus, damit man das Control
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
MehrEinrichten eines POP-Mailkontos unter Thunderbird Mail DE:
Einrichten eines POP-Mailkontos unter Thunderbird Mail DE: Ein E-Mail-Konto können Sie am einfachsten über den integrierten Assistenten einrichten. Dieser führt Sie Schritt für Schritt durch alle Einstellungsmöglichkeiten
MehrObjektorientierte 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
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
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
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?
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
MehrProbeklausur Softwareengineering SS 15
Probeklausur Softwareengineering SS 15 Hinweis: Die Bearbeitungsdauer entspricht dem Punktewert. Aufgabe 1 (10 min) Beschreiben Sie das Vorgehensmodell Test-Driven-Development (TDD) a) Erläutern Sie das
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrJava Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
MehrBarcodedatei importieren
Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1
MehrEasyWk DAS Schwimmwettkampfprogramm
EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage
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
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,
MehrFree your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.
Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. 1 Automatische Verifikation von Anforderungen Dr. Guido Dischinger guido.dischinger@liantis.com
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrBackup der Progress Datenbank
Backup der Progress Datenbank Zeitplandienst (AT): Beachten Sie bitte: Die folgenden Aktionen können nur direkt am Server, vollzogen werden. Mit Progress 9.1 gibt es keine Möglichkeit über die Clients,
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrVisual Basic Express Debugging
Inhalt Dokument Beschreibung... 1 Projekt vorbereiten... 1 Verknüpfung zu Autocad/ProStructures einstellen... 2 Debugging... 4 Autocad/ProSteel Beispiel... 5 Dokument Beschreibung Debuggen nennt man das
MehrQualitätsmanagement im Projekt
Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrInstallationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.
Installationsanleitung Maschinenkonfiguration und PP s Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.Februar 2015 Inhaltsverzeichnis 1 Einbinden der Postprozessoren... 3 1.1
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrProgrammieren was ist das genau?
Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrSoftwaretechnik 1 Tutorium
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Tutorium 06. Juli 2009 Matthias Thoma (s_thoma@ira.uka.de) Heute Übungsblatt Nr. 4 + Übungsblatt Nr. 5 Softwarequalität
MehrTypisierung des Replikationsplan Wirries, Denis Datenbankspezialist
Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist Feintypisierung - Überblick Ergebnisse Ergebnisse aus aus anderen anderen Arbeitsergebnissen Arbeitsergebnissen Replikationsplan Replikationsplan
MehrTestplan. 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
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
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrInformationen zur Verwendung von Visual Studio und cmake
Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von
MehrDokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
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
Mehr1 Installation QTrans V2.0 unter Windows NT4
1 Installation QTrans V2.0 unter Windows NT4 1.1 Unterstützte Funktionen Unter NT4 wird nur der Betrieb von QTrans im Report-Client-Modus unterstützt, d. h. für die Anzeige von Schraubergebnissen und für
MehrBrainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen
Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrFehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker
Fehlermonitor Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker Das Programm ist problemlos zu installieren auf jedem Windows-PC (XP) mit.net
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,
MehrBauteilattribute als Sachdaten anzeigen
Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrVector 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
MehrFolgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
Mehr6 Systematisches Testen von Programmen
6 Systematisches Testen von Programmen Testen Untersuchung des Source-Codes nach Fehlern und Anomalien Stefan Lucks, Software-Entwicklung für Sichere Systeme SS 04, Kapitel 6 p.1/24 Untersuchung des Source-Codes
Mehr104 WebUntis -Dokumentation
104 WebUntis -Dokumentation 4.1.9.2 Das elektronische Klassenbuch im Betrieb Lehrer Aufruf Melden Sie sich mit Ihrem Benutzernamen und Ihrem Passwort am System an. Unter den aktuellen Tagesmeldungen erscheint
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
MehrElexis-BlueEvidence-Connector
Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert
MehrDas System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.
Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt
MehrMöglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!
Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Um mehrere Versionsstände parallel betreiben zu können, sollte man die folgenden Hintergründe kennen, um zu verstehen wo ggf. die Hürden liegen.
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrLEHRSTUHL FÜR DATENBANKEN
LEHRSTUHL FÜR DATENBANKEN Informatik II für Verkehrsingenieure Java & Eclipse Installationsguide Prof. Dr.-Ing. Wolfgang Lehner > Was ist Eclipse? Eine sogenannte Integrierte Entwicklungsumgebung (engl.
Mehr1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.
Programmierung des Farbsteuergeräts 340-00112 für Nikobus Diese Bedienungsanleitung gilt auch für die Nikobus-Produkte 340-00111 und 340-00113. Achtung: einige der aufgeführten Betriebsarten sind nur auf
MehrHandbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern
Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern Dateiname: ecdl_p2_02_03_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul 2 Tabellenkalkulation
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Modulare Programmierung Test Driven Development Refactoring Modular programmierung der
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrHOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8
Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8 Schritt 1: Altes Modul-Paket vollständig deinstallieren Die neuen MRG-Module sind aus dem Scope local in den Scope
MehrAutomatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk
SS EE IITTEE:: I 11/ /55 Bei jedem Aufruf des SSO-Applet wird kontrolliert, ob das Konfigurationsverzeichnis ( ssoapplet ) existiert. Dabei werden alle Laufwerke, auf die der Benutzer Lese- und Schreibrechte
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
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
MehrMicrosoft Update Windows Update
Microsoft bietet mehrere Möglichkeit, Updates durchzuführen, dies reicht von vollkommen automatisch bis zu gar nicht. Auf Rechnern unserer Kunden stellen wir seit September 2006 grundsätzlich die Option
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrVorgehensweise bei Lastschriftverfahren
Vorgehensweise bei Lastschriftverfahren Voraussetzung hierfür sind nötige Einstellungen im ControlCenter. Sie finden dort unter Punkt 29 die Möglichkeit bis zu drei Banken für das Lastschriftverfahren
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Mehr