C++ OpenCppCoverage. Detlef Wilkening
|
|
|
- Erich Straub
- vor 8 Jahren
- Abrufe
Transkript
1 Seite 1 / 52 C++ OpenCppCoverage Detlef Wilkening
2 Seite 2 / 52 Warum überhaupt dieser Vortrag? Wir waren mal wieder in einer Gruppe unterwegs zu einem C++ Treffen Und ich erzählte von einem meiner vielen Probleme: Kennt jemand ein Coverage Tool? Für Windows Arbeitet mit Microsoft Visual Studio zusammen Ist umsonst Damals kannte ich kein solches Coverage Tool
3 Seite 3 / 52 Warum überhaupt dieser Vortrag? Wir waren mal wieder in einer Gruppe unterwegs zu einem C++ Treffen Und ich erzählte von einem meiner vielen Probleme: Kennt jemand ein Coverage Tool? Für Windows Arbeitet mit Microsoft Visual Studio zusammen Ist umsonst Damals kannte ich kein solches Coverage Tool Doch dann danke an alle C++ User-Treffen bekam ich einen Hinweis: OpenCppCoverage Für das Microsoft Visual Studio Für Windows Open-Source und frei Aktuelle Version: Möglicherweise geht es anderen ähnlich Und Sie suchen auch ein solches Tool Darum dieser Vortrag
4 Seite 4 / 52 Aber erstmal für alle die, die sich nicht so auskennen: Was ist Coverage überhaupt? Was ist ein Coverage-Tool?
5 Seite 5 / 52 Man hat Tests Im Idealfall automatische Tests Z.B. Unit-Tests Können aber auch z.b. automatisierte GUI-Tests sein Können aber auch manuelle Tests sein Die Tests sind zu 100% erfolgreich Aber: Wie gut sind die Tests? Was sagen die 100% Erfolg aus? Hat man einfach nicht alles getestet? Oder nur die einfachen Dinge? Hier hilft ein Coverage-Tool
6 Seite 6 / 52 Coverage-Tool Zeigt, welcher Code bei einem Programmlauf abgedeckt wurde Der Programmablauf ist meist ein automatischer Test muss aber nicht Im Idealfall ist der gesamte Code abgedeckt Aber Achtung Nur weil 100% Code-Abdeckung erreicht ist Muss der Code nicht fehlerfrei sein Dabei gibt es noch mehr zu beachten Aber dazu später mehr Kleines Beispiel Vier-Gewinnt Programm Mit automatischen Unit-Tests HTML Outputs mit OpenCppCoverage Dateien-Seite (siehe Screens 2/3) ist nicht vollständig Beispiel besteht aus mehr Dateien
7 Seite 7 / 52 Beispiel Screens 1 / 3
8 Seite 8 / 52 Beispiel Screens 2 / 3
9 Seite 9 / 52 Beispiel Screens 3 / 3
10 Seite 10 / 52 Das ist natürlich ein gefakter Testlauf und Ergebnis Selbstverständlich hat der Test in Wirklichkeit 100% Coverage Ich habe für das Beispiel einige Tests disabled ;-)
11 Seite 11 / 52 Welche Coverage-Arten gibt es? Function coverage Wurde jede Funktion benutzt? Statement coverage Wurde jede Anweisung ausgeführt? Line coverage Wurde jede ausführbare Programmzeile ausgeführt Branch coverage Wurden alle Zweige bei Verzweigungen (If, Switch, ) ausgeführt? Condition coverage Wurden alle Boolschen-Ausdrücke zu false bzw. true ausgewertet? Siehe Beispiel gleich Path coverage Wurde jeder mögliche Pfad durch eine Funktion/Modul/ ausgeführt? Siehe Beispiel gleich Loop coverage Wurde jede Schleife 0-mal, 1-mal und mehr als 1-mal ausgeführt? Und weitere Parameter value coverage, LCSAJ coverage, State coverage,
12 Seite 12 / 52 In der Praxis wohl am wichtigsten Statement coverage Enthält damit z.b. Function coverage und Branch coverage Condition coverage & Path coverage Wurden alle Boolschen-Ausdrücke zu false bzw. true ausgewertet? Siehe Beispiel unten Es gibt 4 Möglichkeiten für die Condition coverage Aber es gibt nur 3 mögliche Pfade durch die Funktion» True und False fügen keinen weiteren Pfad hinzu Alle anderen sind entweder zu einfach oder schnell sehr aufwändig int fct(int x, int y) { if ((x>0) && (y>0)) { return x; } return y; }
13 Seite 13 / 52 OpenCppCoverage Coverage-Tool speziell für die Microsoft Visual-Studio Compiler Ab Visual Studio 2008 (inkl.) Sollte eigentlich auch mit älteren Versionen funktionieren Basiert intern auf den Microsoft Programm-Datenbank-Dateien (*.pdb) Features Frei, Open-Source Not intrusive Programm muss nicht instrumentiert oder neu compiliert werden Line Coverage Binär, HTML & Cobertura Reports Features von mir bislang nicht genutzt oder verifiziert Geringer Performance-Overhead Visual Studio Plugin existiert Coverage Zusammenfassung Child-Prozess Coverage Jenkins Support Durch Cobertura Ausgabe-Format
14 Seite 14 / 52 Aufruf Kommandozeile: OpenCppCoverage Optionen, u.a.: Executable Pfade zu den Sourcen Reg-Expr für Sourcen, die nicht gecoveragt werden sollen Module, die nicht gecoveragt werden sollen Ausgabe-Typ Ausgabe-Verzeichnis Ausgabe-Verzeichnis mit Nutzung von Datum & Uhrzeit Beispiel: OpenCppCoverage --sources E:\cdev\cprojects\Themen\Coverage\Coverage01 --modules e:\cdev --excluded_sources.test.cpp --export_type=html:e:\cdev\output\coverage\coverage01 -- e:\cdev\output\debug_x64\coverage01.exe
15 Seite 15 / 52 Beispiel Coverage01 Einfaches Beispiel Ausführlich Wenn auch langweilig Output HTML Folien 1. Code (diese hier) 2. Einstiegs-Seite & Detail-Seite 3. Code & Coverage Hinweis Bei späteren Beispielen zeige ich nur was wichtig ist Hier mal alles
16 Seite 16 / 52
17 Seite 17 / 52
18 Seite 18 / 52 Aber ich hatte hier auch einige Probleme Relative Pfade haben bei mir zum Teil nicht funktioniert Vielleicht war ich auch nur zu dumm, sie korrekt anzugeben Habe aber einiges probiert Darum im Aufruf-Beispiel weiter vorne alle Pfade absolut Ausgabe-Verzeichnis-Name mit Nutzung eines Zeitstempels (Datum & Uhrzeit) Hat bei mir nur funktioniert, wenn kein spezielles Verzeichnis Ohne Angabe eines Ausgabe-Verzeichnis hat es bei mir problemlos funktioniert Mit nicht Und ansonsten: Ich finde den HTML Output nicht optimal Lässt sich selbst mit den TableTools2 nicht optimal filtern und sortieren Habe aber die anderen Formate (gerade Cobertura) oder das Visual-Studio Plugin auch noch nicht ausprobiert Ich weiß: OpenCppCoverage ist OpenSource man könnte selber Ich habe sogar mal in die Sourcen reingeschaut, ganz ganz kurz nur Aber hatte bislang einfach keine Lust mich dort zu vertiefen
19 Seite 19 / 52 Es gab noch mehr Probleme und Unschönheiten Z.B. was das Line-Coverage anging Und bei Exceptions Und bei der Integration von Dateien Beispiele dafür auf den nächsten Folien
20 Seite 20 / 52 Beispiel Coverage02 Thema Abdeckung boolscher-ausdrücke Wird von OpenCppCoverage nicht unterstützt Test 4 gleiche Funktionen (f1, f2, f3, f4) Jeweils ein if mit 2 boolschen Ausdrücken Werden jeweils so aufgerufen, dass alle Bool-Variationen vorkommen
21 Seite 21 / 52
22 Seite 22 / 52 Beispiel Coverage03 Weiterhin Thema Abdeckung boolscher-ausdrücke Auch der Zeilen-Umbruch-Trick bringt hier nix OpenCppCoverage hat keine Condition coverage
23 Seite 23 / 52 Beispiel Coverage04 Zeilen-Coverage ist ein echtes Problem bei z.b. Lambda-Ausdrücken
24 Seite 24 / 52 Lambdas gelten als abgedeckt Wenn sie in einer Zeile stehen, wo Code ausgeführt wird Auch wenn der Lambda-Ausdruck selber nie ausgeführt wurde
25 Seite 25 / 52 Hier hilft der Zeilen-Umbruch-Trick etwas Aber Achtung Nicht ausgeführte Lambdas fallen dem User vielleicht auf Nicht grün markiert, sondern unmarkiert Nicht dem Tool Sie sind nicht rot und werden nicht als nicht-abgedeckt gemeldet! Warum sind sie nicht rot markiert? Die Coverage ist im Beispiel fehlerhaft 100%
26 Seite 26 / 52 Beispiel Coverage05 Auch wenn mehrere Anweisungen normal in einer Zeile stehen Ist die Coverage-Anzeige manchmal fehlerhaft Manchmal funktioniert sie auch korrekt
27 Seite 27 / 52 Beispiel Coverage06 Ein anderes Problem sind das Werfen von Exceptions Wenn in dem Scope ein Objekt mit Destruktor existiert Der scheinbar fehlende Destruktor-Aufruf wird angemeckert Ist ein bekannter Bug, den OpenCppCoverage nicht fixen kann Da der Code im PDB nun mal drin ist
28 Seite 28 / 52 Beispiele Coverage07 Coverage15 Problematisch ist auch, dass OpenCppCoverage manchmal Dateien ignoriert Daher nicht anzeigt, dass sie gar nicht benutzt wurden Daher die Coverage hier 0 % ist Dafür gibt es jetzt einige Beispiele Aber Achtung manche Beispiele funktionieren auch, aber manche auch nicht Hinweis Mir ist technisch klar, warum OpenCppCoverage die fehlende Coverage nicht melden kann Dazu später mehr Aber das ist einfach nicht, was ich von einem Coverage-Tool erwarte
29 Seite 29 / 52 Beispiel Coverage07
30 Seite 30 / 52 Beispiel Coverage07 Das klappt
31 Seite 31 / 52 Beispiel Coverage08 Quasi identisch, nur inline im Header implementiert
32 Seite 32 / 52 Beispiel Coverage08 Wird nicht angezeigt?
33 Seite 33 / 52 Beispiel Coverage09 Wird die Funktion genutzt
34 Seite 34 / 52 Beispiel Coverage09 Alles okay
35 Seite 35 / 52 Beispiel Coverage10 Und wie ist das, wenn man nur den Source nutzt?
36 Seite 36 / 52 Beispiel Coverage10 Er sieht den fehlenden Teil im Header nicht
37 Seite 37 / 52 Beispiel Coverage11 Und bei Templates Immerhin ist dort die Implementierung immer im Header?
38 Seite 38 / 52 Beispiel Coverage11 Ganz böse auch nicht
39 Seite 39 / 52 Beispiel Coverage12 Und wenn ich ein Objekt erzeuge, nur die Funktion nicht aufrufe
40 Seite 40 / 52 Beispiel Coverage12 Kein Einfluß immer noch fehlerhaft
41 Seite 41 / 52 Beispiel Coverage13 Ändert denn ein =default Default-Konstruktor was?
42 Seite 42 / 52 Beispiel Coverage13 Immer noch nichts böse, böse
43 Seite 43 / 52 Beispiel Coverage14 Und wenn ich die Funktion nutze?
44 Seite 44 / 52 Beispiel Coverage14 Dann klappt es
45 Seite 45 / 52 Beispiel Coverage15 Und bei mehreren Funktionen, die nicht alle genutzt werden?
46 Seite 46 / 52 Beispiel Coverage15 Auch wieder ganz böse er merkt s nicht
47 Seite 47 / 52 Beispiel Coverage15 Wieder nur unmarkiert, nicht rot markiert Hier Funktion g()
48 Seite 48 / 52 Technisch ist mir das schon klar Der Compiler optimiert nicht genutzte Inline-Funktionen weg Der Compiler instanziiert nicht genutzte Template-Funktionen nicht Das darf er auch gar nicht Sonst wäre er nicht standard-konform, und auch nicht nutzbar Und damit ist dieser Code nicht Teil des PDB Files vom Visual-Studio Und ich denke, das trifft auf nicht genutzte Lambdas auch zu Siehe Beispiel Coverage04 und Coverage05 Aus Sicht der Coverage ist dies aber nicht erwartungs-konform Und stellt das Tool natürlich in Frage!?
49 Seite 49 / 52 Fazit OpenCppCoverage 1/2 Es ist ein Coverage-Tool für das Visual-Studio Umsonst und offen Es funktioniert prinzipiell einfach und akzeptabel Meine ersten Versuche klappten auf Anhieb Meine Batch-Dateien sind kurz und waren schnell geschrieben Vielleicht sollte ich mal das Visual-Studio Plugin ausprobieren Läuft seitdem mit den Schwächen (s.u.) problemlos OpenCppCoverage hat aber auch einige Schwächen Line Coverage ist nicht mein Traum Lambdas, Ifs, Aufpassen, dass wirklich alles gecoveragt ist Exceptions mit Destruktor im Scope Ich bekomme manche Tests nicht auf 100% Dateien/Funktionen werden nicht integriert User muss aufpassen, dass wirklich alles gecoveragt ist Relative Pfade funktionieren nicht oder nur eingeschränkt Zeitstempel im Ausgabe-Namen bei expliziter Angabe funktioniert nicht
50 Seite 50 / 52 Fazit OpenCppCoverage 2/2 Ich hätte gerne ein besseres Tool Kennt jemand eine Alternative? Aber umsonst Kann aber mit den Schwächen leben Passe halt "ein bisschen" auf Unterm Strich benutze ich es zuhause ständig Und habe dadurch schon einiges gelernt und gefunden Stellen, die nicht getestet wurden Stellen, die gar nicht erreicht werden konnten Und die ich dann entfernt habe Natürlich mit einer entsprechenden Absicherung Ablaufpfade, die mit gar nicht klar waren Da Code typischerweise Guards nicht durchlaufen wurde Ich möchte nicht mehr darauf verzichten Aber würde mich natürlich über eine bessere Alternative freuen
51 Seite 51 / 52 Links
52 Seite 52 / 52 Kennt eigentlich jemand einen guten Profiler für Windows / Visual-Studio? Natürlich umsonst und Open-Source! Hat schon mal jemand den im Visual- Studio integrierten Profiler genutzt und kann darüber berichten?
Einführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
Workbooster File Exchanger Command Line Tool
Thema Technische Benutzerdokumentation - WBFileExchanger Workbooster File Exchanger Command Line Tool Letzte Anpassung 18. Januar 2014 Status / Version Finale Version - V 1.1 Summary Erstellung Diese technische
Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
Grundlagen der Programmierung in C++ Kontrollstrukturen
Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany [email protected] Block Keine Kontrollstruktur im eigentlichen Sinn Dient
Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface. von Christian Schildwächter
Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface von Christian Schildwächter Simulink Simulink S-Functions Softwareprojekt ROS-Arduino-Interface Simulink 3 LIVE DEMO 4 External
Praktikumstermin B-07: make & Makefiles
Praktikumstermin B-07: make & Makefiles Version 2014-11-26: Problem mit dem Löschbefehl gelöst. Ursache: Auf den Terminalrechnern funkt ein Softwarepaket aus einer anderen Lehrveranstaltung dazwischen
NCDiff Testmanagement leicht gemacht
Testmanagement leicht gemacht Nagler & Company Thomas Gebhard & Anton Garra Complexity Die stetige Anpassung an neue Anforderungen der IT und das Bestreben Marktgegebenheiten zu folgen oder voraus zu sein,
Einführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
Software Engineering in
Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?
Ogre Einführung Teil 1
Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.
XCOM 2: SDK Schnellstartanleitung
XCOM 2: SDK Schnellstartanleitung Inhalt Einführung... 1 Vor dem Start... 2 Das XCOM2-SDK in Steam installieren... 2 Installation des Visual Studio 2013 Shell (Isoliert) Redistributable Package... 2 Modbuddy
JCoverage. Uni Kassel Projektarbeit Software Engineering 12.11.2003. Markus Pilsl & Marko Medved
JCoverage Uni Kassel Projektarbeit Software Engineering 12.11.2003 Markus Pilsl & Marko Medved Was ist JCoverage Tool, welches anzeigt, wie oft jede wichtige Zeile des Quellcodes getestet wurde Soll helfen
Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.
Informatik I 05. November 2013 6. Python-, kommentieren, starten und entwickeln Informatik I 6. Python-, kommentieren, starten und entwickeln Bernhard Nebel Albert-Ludwigs-Universität Freiburg 05. November
4 Schleifen und Dateien
4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort
Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1
Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,
Source Code Konverter... 2. Online: (VB.net <-> C#)... 3. Kommerzielle Produkte (VB, C#, C++, Java)... 3. Code Nachbearbeitung in der Praxis...
Autor: Thomas Reinwart 2008-05-05 [email protected] Inhalt Source Code Konverter... 2 Online: (VB.net C#)... 3 Kommerzielle Produkte (VB, C#, C++, Java)... 3 Code Nachbearbeitung in der Praxis...
<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";
Vorbemerkungen Diese Schrittanleitung bezieht sich auf die Aufgaben 4 bis 6 von "Übung 2 - Schleifenbeispiele (1)" Sie soll als Anregung dienen, wie Sie Ihren Code blockweise erstellen und testen können.
Java Native Interface (JNI)
Java Native Interface (JNI) Das JNI erlaubt den Aufruf extern implementierter Funktionen. Damit ist ein Zugriff auf alle Ressourcen einer Maschine möglich. Der Aufruf erfolgt über die Java Virtual Machine
VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA
VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
Systematisches 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
3 Klassen, Attribute, Methoden
3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Informationen 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
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
Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
1.3 Erster Start des Aufmaß-Moduls und Anlegen der Datenbank
1. Installation auf einem Novell Server 1.1 Installation der Datenbank Pervasive SQL 2000i Die Server Engine der Pervasive SQL 2000i Datenbank wird auf dem Novell-Server über eine Arbeitsstation installiert.
Einführung in MS Visual Studio 2008
Einführung in MS Visual Studio 2008 1. Erste Projektmappe, erstes Projekt und erstes C++-Programm Visual Studio 2008 unterstützt die Organisation von Programmierprojekten in Form von Lösungen, d.h. Gruppen
JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation
MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35
DataTables LDAP Service usage Guide
DataTables LDAP Service usage Guide DTLDAP Usage Guide [email protected] / www.ktn.ch Benutzung des DTLDAP Service DataTables Der Service stellt einen JSON Feed für DataTables (http://www.datatables.net)
Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling
Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:
Technische Dokumentation SEPPmail Outlook Add-In v1.5.3
Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt
09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2
02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein
Meeting C++ C++11 R-Value Referenzen
Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit
Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT
Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden
novapro Open Audittrail Report
novapro Open Audittrail Report Bedienungshandbuch 7001042001 Q11 Diese Beschreibung entspricht dem aktuellen Programmstand Version 1.0. Änderungen erfolgen zu jeder Zeit und ohne vorherige Ankündigung.
Artikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel [email protected]
JSP JSTL JEE Vorlesung Teil 6 Ralf Gitzel [email protected] 1 Übersicht Ralf Gitzel [email protected] 2 Übersicht Wiederholung / Vertiefung JSTL Grundlagen JSTL Basisbefehle Templates über JSTL
Kurzanleitung Installation der Zend Studio Sprachpakete
Kurzanleitung Installation der Zend Studio Sprachpakete Von Zend Technologies, Inc. www.zend.com Installation Zend Studio Sprachpaket Wenn Ihre regionalen Einstellungen für Deutsch, Französisch oder Italienisch
1. Einleitung. 2. Einrichtung. 1.1 Was ist distcc? 2.1 Abhängigkeiten. 2.2 Installing Distcc. 2.3 Portage so einrichten, dass es Distcc benutzt
>> Gentoo Distcc Dokumentation [Bitte Kapitel auswählen] 1. Einleitung 1.1 Was ist distcc? Distcc ist ein Programm, welches sich um die Verteilung von Kompilierungsprozessen an teilnehmende Rechner kümmert.
Mac OS X Consoliero Teil 14: Webmail Agent unter Mac OS X Server 10.2
Mac OSX Consoliero Teil 14 Seite: 1/10 Mac OS X Consoliero Weiterführende Dokumentationen für Administratoren. Mac OS X Consoliero Teil 14: Webmail Agent unter Mac OS X Server 10.2 Christoph Müller, PTS
Einfü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).
ERANGER 3.4.1 Release Announcement
ERANGER 3.4.1 Release Announcement 16. März 2012 2012 Junisphere Systems AG Junisphere Systems AG Glatt Tower, P.O. Box 1572 CH-8301 Glattzentrum Tel. +41 (0)43 443 31 80 [email protected] www.junisphere.net
Testen und Debugging
Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
Updateanleitung zur Version 18.x
Updateanleitung zur Version 18.x Mit dem Update auf Version 18 kommt ein komplett überarbeitetes neues Installationsprogramm. Daher bitte (wie immer) sorgfältig lesen! 1. Datenupdate Spielen Sie auf jeden
Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon
Visualisierung der Eidolon Auswertung VisEiA Graphischer Client für das Emailspiel Eidolon Entstanden im Ramen einer Seminararbeit in Informatik Universität Fribourg, Schweiz [email protected] http://getit.at/viseia/
Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt
Qualitool Benutzerhandbuch
Qualitool Benutzerhandbuch 1. ALLGEMEINES... 2 2. EINRICHTUNG DER PRÜFREGELN... 3 3. AUFRUF DES PROGRAMMS... 4 4. ARBEITSORDNER EINSTELLEN... 5 5. PRÜFMASKE... 6 6. EINZELNE DATEIEN PRÜFEN... 7 7. AUTOMATISCHES
Outlook-Synchronisation
Outlook-Synchronisation Inhalt Inhalt 2 1.Voreinstellungen 3 2. Erstabgleich 6 3.Kontaktabgleich / Ansprechpartner 9 4. Terminabgleich 13 5. E-Mail 16 6. Allgemeine Einschränkungen 17 1. Voreinstellungen
IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.
IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous
Workshop Eventverarbeitung mit NAGIOS
Workshop Eventverarbeitung mit NAGIOS Marius Hein Michael Streb Agenda Einführung Entstehung der EventDB Ablösung der bisherigen Systeme bisher keine einfache Lösung Konsolidierung verschiedener Systeme
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
SimpleOOP Opensource OOP Plugin
SimpleOOP Opensource OOP Plugin Einführung SimpleOOP bringt PureBasic eine einfache OOP Unterstützung ohne komplizierten Syntax, mit besonderem Wert auf einen sauberen und simplen Code. SimpleOOP ist Opensource
Besprechung Übung 1 & Vorstellung Übung 2
Besprechung Übung 1 & Vorstellung Übung 2 Software Qualität, FS09 06.04.2009 Reinhard Stoiber Übung 1 Ergebnisse: grossteils gut Subversion (svn+ssh) auf Windows Server 2003 Bereitete Probleme mit Schreibrechten
Einführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
TIPPS & TRICKS SAP CM Teil 3
TIPPS & TRICKS SAP CM Teil 3 Schwerpunkte dieses Dokuments: Listeinstellungen Autor: Peter Nötzli Datum: 30.06.2014 Version: 2.0 Seite 1 Versionsverwaltung Vers.Nr Änd. Beschreibung Wer / Kürzel. Datum
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
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)
D2PDATA TO PDF. Installation von Data2Pdf(D2P) Übersicht. Version 1.3
Installation von Data2Pdf(D2P) Übersicht Version 1.3 Freitag, 21. Februar 2014 Übersicht Seite 2/15 1 INHALT 1 Inhalt... 2 2 Historie... 3 3 Überblick... 3 4 Vorgaben... 3 5 Erste Installation... 4 5.1
Programmierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18
UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft
Qt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
MGE Datenanbindung in GeoMedia
TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00
Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung
Neuerungen in SASUnit Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung Dr. Patrick René Warnat HMS Analytical Software GmbH Rohrbacher Str. 26 69115 Heidelberg [email protected]
Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung
Projektmanagement Vorlesung von Thomas Patzelt 10. Vorlesung 1 Test...(4) Oberflächentests testen die Benutzerschnittstelle des Systems, nicht nur auf Fehlerfreiheit sondern z.b. auch auf Konformität mit
Arbeitsblatt 5 EAD II NetBeans
Arbeitsblatt 5 EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans.
dato Denkwerkzeuge nut.s Software TS Technische Spezifikation Import AS400 Projekt nut.s Software Betrifft Import AS400 Autor Bernd Maierhofer
Projekt Betrifft Autor Bernd Maierhofer Anlage 07.06.2006 Version 1 Dokument Status freigegeben Über dieses Dokument Zweck Dieses Dokument beschreibt die Schnittstelle für die Übernahme von Stücklisten
Vector Software W H I T E P A P E R
Vector Software W H I T E P A P E R Nutzung der Code-Abdeckungsanalyse zur Erhöhung der Zuverlässigkeit von Embedded Software Einleitung Die Code-Abdeckungsanalyse oder Code Coverage dient der Vollständigkeitsprüfung
4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014
Entwicklungsumgebungen Packer, Vagrant, Puppet Alexander Pacnik Mannheim, 10.11.2014 inovex... über inovex und den Referenten 2 Entwicklungsumgebungen... Übersicht Einführung Packer Konfiguration Packer
COM-Add-Ins installieren
COM-Add-Ins installieren COM-Add-Ins sind Zusatzkomponenten, mit denen man Office-Anwendungen und die VBA-Entwicklungsumgebung erweitern kann. Programmiert werden sie grundsätzlich als ActiveX-Komponenten
xcall Technische Dokumentation
xcall Technische Dokumentation zu Version 4.x Autor: Martin Roth Erstelldatum: 14.08.2008 Version: 1.4 Seite 2 / 7 Zweck...3 Schnittstellenarchitektur...3 Outbound-Schnittstellen...3 Outlook...3 TwixTel...3
Profiling und Coverage mit GNU und Bare Embedded Systems
Profiling und Coverage mit GNU und Bare Embedded Systems Life is too short for bad tools! Prof. Erich Styger [email protected] +41 41 349 33 01 Coverage und Profiling Coverage: Analyse der Testabdeckung
WCF Services in InfoPath 2010 nutzen
WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post
Version 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.
Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.
ls [optionen] [namen]: ls zeigt den Inhalt von Verzeichnissen. Sind keine namen angegeben, werden die Dateien im aktuellen Verzeichnis aufgelistet. Sind eine oder mehrere namen angegeben, werden entweder
2010 Ing. Punzenberger COPA-DATA GmbH. Alle Rechte vorbehalten.
2010 Ing. Punzenberger COPA-DATA GmbH Alle Rechte vorbehalten. Die Weitergabe und Vervielfältigung dieses Dokuments ist - gleich in welcher Art und Weise nur mit schriftlicher Genehmigung der Firma COPA-DATA
Grundlagen der Programmentwicklung
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie
Subversion. Quellcodeverwaltung a la Opensource. Matthias Fischer. Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto.
Subversion Quellcodeverwaltung a la Opensource Matthias Fischer Technical Expert.NET Tieto, JOSI / Microsoft [email protected] Agenda Grundlagen Installation Administration / Konfiguration Verwendung
ShopwareAutoinvoice Installations- und Benutzeranleitung
ShopwareAutoinvoice Installations- und Benutzeranleitung 1. Installation Wechseln Sie in das Shop Backend unter /backend. Loggen Sie sich ein und wählen Sie Einstellungen -> Plugin Manager. Klicken Sie
TYPO3 und TypoScript
TYPO3 und TypoScript Webseiten programmieren, Templates erstellen, Extensions entwickeln von Tobias Hauser, Christian Wenz, Daniel Koch 1. Auflage Hanser München 2005 Verlag C.H. Beck im Internet: www.beck.de
Softwarequalität sicherstellen mit Sonar
Softwarequalität sicherstellen mit Sonar Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Hochschule München Michaela Lutz München, den 07. Juni 2013 1 Gliederung Was ist Sonar? Komponenten
Tutorial: Systemportierung per Datenbank-Sicherung. version: 0.1 Author: Anja Beuth
Tutorial: Systemportierung per Datenbank-Sicherung version: 0.1 Author: Anja Beuth Table of contents 1.1.1... 5 Voraussetzungen auf dem Zielsystem... Datenbank sichern... Datenbanksicherung auf Zielsystem
Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2
Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation
MOC 20486 - Entwicklung von ASP.NET MVC 4 Webapplikationen
MOC 20486 - Entwicklung von ASP.NET MVC 4 Webapplikationen Kompakt-Intensiv-Training Diese Schulung bereitet Sie optimal auf die MOC-Zertifzierung vor. Zu Beginn der Schulung erhalten Sie einen Überblick
Visual 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
Grundlagen 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
Erste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
Mit dem Podcasten starten: So konfigurierst Du das Wordpress-Plugin Podlove Publisher
Mit dem Podcasten starten: So konfigurierst Du das Wordpress-Plugin Podlove Publisher Version 1.0 Mit dem Podcasten starten: So konfigurierst Du das Wordpress-Plugin Podlove Publisher Der Podlove Publisher
Open Source Software. Die nachhaltigere IT
Open Source Software Die nachhaltigere IT Wer ist die Heinlein Support GmbH? Wir bieten seit 20 Jahren Wissen und Erfahrung rund um Linux- Server und E-Mails IT-Consulting und 24/7 Linux-Support mit 20
