Zum Hauptinhalt springen

Das zweitägige Seminar befasst sich mit dem Prozess der fortlaufenden Integration von Komponenten zu einem System mit dem Ziel der Steigerung der Softwarequalität. Dabei wird typischerweise durchgehend überprüft, ob sich die Anwendung noch erstellen lässt. Um die Qualität der Software noch weiter zu erhöhen und beständig zu gewährleisten, sollten sich diesem Prozess noch weitere Schritte wie automatisierte Tests anschließen.

Gerade in Softwareprojekten mit mehreren Entwickler*innen kommt es immer wieder vor, dass nicht eingepflegte Dateien oder Änderungen an Komponenten eines Systems dazu führen, dass es sich nicht mehr erstellen lässt oder Teilbereiche nicht mehr funktionieren. Das kann ein großes Hindernis in der Weiterentwicklung des Projektes darstellen, wenn z.B. verantwortliche Entwickler*innen im Urlaub sind.

Um dieser Problematik entgegenzuwirken, wurde der Prozess des Continuous Integration (CI) etabliert. Dabei dient ein Server gewissermaßen als weiterer Mitarbeitende, der im einfachsten Fall nur dafür zuständig ist, nach jeder Änderung das Projekt neu zu erstellen.

Dieser praxisorientierte Workshop erläutert Ihnen die Grundlagen des Continuous Integration sowie auch Grundlagen des professionellen Softwaretests. Im praktischen Teil lernen Sie, wie Sie eine Versionsverwaltung am Beispiel Subversion aufsetzen. Anhand eines Beispielprojektes und mit Hilfe des Google Test Frameworks werden Sie in diesem Training verschiedene Arten des dynamischen Tests durchführen. Mit CppCheck lernen Sie ein praktisches statisches Analysewerkzeug kennen, mit dem Sie manche Fehler schon im Vorfeld erkennen können, ohne die Software ausgeführt zu haben. Unter Verwendung des CI-Servers Jenkins werden Sie alle erlernten Schritte zu einem automatisierten Prozess verbinden. Dabei werden sich Theorie und Praxisteil jeweils abwechseln.

Das Beispielprojekt besteht aus einer Server-Applikation, die sich auf dem BeagleBone Black befindet, und einem Client, der auf der Workstation läuft. Der Fokus dieses Seminars liegt auf der kontinuierlichen Integration der auf dem Embedded System befindlichen Server-Applikation. Dabei wird Ihnen u.a. gezeigt, wie man Hardware in the Loop (HiL) Tests automatisiert und mit Jenkins realisiert.
 

Agenda

Tag 1

  • Theorie
    • Begriffserklärung Softwarequalität und Versionsverwaltung
    • Was ist Continuous Integration?
    • Warum Continuous Integration?
    • Wie setze ich Continuous Integration ein?
    • Grundlagen professioneller Softwaretest
      • Notwendigkeit des Testens
      • Was ist ein statischer Softwaretest und welche Arten gibt es?
         
  • Praxis
    • Vorstellung des Beispielprojektes und Vorbereitungen zu Continuous Integration
      • Aufsetzen eines VCS am Beispiel Subversion
      • Erstellung des Testframeworks Google Test
      • Projekterstellung und Cross-Compilation mit NetBeans
      • Probelauf des Beispielprojektes mit BeagleBone und Workstation
    • Vorstellung des CI-Servers Jenkins
      • Automatisierung des Projekt-Buildprozesses mit Jenkins

Tag 2

  • Theorie
    • Dynamischer Softwaretest
      • Grundlagen und Begriffserklärung
         
  • Praxis
    • Statischer Test
      • Wie bereite ich einen statischen Test für CI vor (am Beispiel CppCheck)?
      • Durchlauf mehrerer CI-Zyklen mit statischen Tests
    • Unittest
      •  Vorbereitung, Erläuterung und Einstieg in die Übung Unittest
    • Dynamischer Test und Einbindung CI
      • Fertigstellung der Übung zu Unittest
      • Erläuterung und Übung zu Integrationstest
      • Erläuterung und Übung zu Systemtest
    • Gruppenübung CI
      • Erweiterung der Sourcen in Teamarbeit
      • Durchlauf möglichst mehrerer CI-Zyklen


Vorkenntnisse

Die Teilnehmer*innen sollten praktische Kenntnisse in der Programmierung mit C/C++ haben. Vorkenntnisse im Testen sind nicht notwendig.
 

Technische Voraussetzungen

Eigener Laptop (alle technischen Details erhalten Sie in Ihrer Teilnahmebestätigung)


Zielgruppe

Entwicklung, Projektmanagement

loader-gif