d3.2 unit testing mit vectorcast und fortlaufende ...€¦ · unit testing mit vectorcast und...
TRANSCRIPT
![Page 1: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/1.jpg)
Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen
mit Jenkins bei der Ottobock Healthcare GmbH
Anwenderbericht
Torsten Wender, Embedded Testing | München, 22. Juni 2017
![Page 2: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/2.jpg)
| © Ottobock
Gliederung
• Unit Testing bei Ottobock* Top 5 Anforderungen an Unit Test Tool* Lösung mit Vectorcast
• Testintegration bei Ottobock* Top 5 Anforderungen an CI Tool* Lösung mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 2
![Page 3: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/3.jpg)
| © Ottobock
Unit Testing bei Ottobock
Top 5 Anforderungen an Unit Test Tool
1. Tool soll effiziente C++Testentwicklung ermöglichen- Tabellarische Testdateneingabe, Stubs, Testdebugging, etc.- Kontrollflussprüfung, Zusichern von Übergabeparametern- Umgang mit Abstrakten Klassen/Templates
2. Tool soll Coverage-Messung ermöglichen- Nachweis der durch Regulatoren geforderten Testabdeckung
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 3
![Page 4: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/4.jpg)
| © Ottobock
Unit Testing bei Ottobock
Top 5 Anforderungen an Unit Test Tool
3. Tool soll mit verschiedenen Compilern funktionieren- Konfigurationsdatensatz-Verwaltung- Trennung von Konfigurationsdaten und Test-Input-Daten
4. Tool soll mit verschiedenen Targets funktionieren (Testausführung)- Windows-Simulator, Launchpad, Platinen aus Eigenfertigung
5. Tool soll Dokumentation in regulatorisch-relevantem Format erzeugen
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 4
![Page 5: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/5.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 5
1. Effiziente C++Testentwicklung (Tabellarische Testdateneingabe)
![Page 6: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/6.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 6
1. Effiziente C++Testentwicklung (Stubbing)
![Page 7: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/7.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 7
1. Effiziente C++Testentwicklung (Kontrollflussprüfung)
![Page 8: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/8.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 8
1. Effiziente C++Testentwicklung (Abstrakte Klassen, Templates)
• Spezialisierungen können „gewählt“ werden, wenig User Code notwendig
• Instanzierbare Klassen werden automatisch generiert, kein UserCodenotwendig
![Page 9: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/9.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 9
2. Messung der Testabdeckung
![Page 10: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/10.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 10
3. Unterstützung verschiedener Compiler (Konfigurationsdatensatzverwaltung)
![Page 11: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/11.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 11
3. Unterstützung verschiedener Compiler (Konfigurationsdatensatzverwaltung)
![Page 12: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/12.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 12
3. und 4. Unterstützung verschiedener Compiler und Targets• Trennung von Konfigurationsdaten und Test-Input-Daten• Trennung von versionsüberwachten Inhalten und Compilaten• Speicherung als editierbare Textdateien
![Page 13: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/13.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Vectorcast
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 13
5. Dokumentation in regulatorisch-relevantem Format (Requirements Gateway)
![Page 14: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/14.jpg)
| © Ottobock
Testintegration bei Ottobock
Top 5 Anforderungen an CI Tool
1. Tool soll konfigurierbare Testautomatisierung leisten- parametrisierte Testausführung auf virtuellen Maschinen
2. Tool soll auf Commit-Events im Produktionscode oder Testcode reagieren- Unterstützung mehrerer SCMs (TFS, SVN, Git)
3. Tool soll Testergebnisse aufzeichnen- Grafische Darstellung der Ergebnisse- Grafische Darstellung des Ergebnis-Trends- Berechnung der Ergebnis-Differenz zu vorherigen Run
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 14
![Page 15: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/15.jpg)
| © Ottobock
Testintegration bei Ottobock
Top 5 Anforderungen an CI Tool
4. Tool soll Coverage-Ergebnisse aufzeichnen- Grafische Darstellung der Ergebnisse- Grafische Darstellung des Ergebnis-Trends
5. Tool soll Ergebnisse unmittelbar an Entwickler zurückmelden- frühe Fehlererkennung- testgetriebene Entwicklung
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 15
![Page 16: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/16.jpg)
| © Ottobock
Testintegration bei Ottobock
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 16
1. Konfigurierbare Testautomatisierung
![Page 17: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/17.jpg)
| © Ottobock
Testintegration bei Ottobock
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 17
1. Konfigurierbare Testautomatisierung - Hauptskript
![Page 18: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/18.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 18
1. Konfigurierbare Testautomatisierung - Eingabe
![Page 19: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/19.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 19
1. Konfigurierbare Testautomatisierung - Ausgabe
![Page 20: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/20.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 20
2. Commit Trigger für Testausführung
![Page 21: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/21.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 21
3. Testergebnis und Reportarchivierung
![Page 22: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/22.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 22
3. Test-Trends
![Page 23: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/23.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 23
4. Coverage-Ergebnisse
![Page 24: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/24.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 24
4. Coverage-Trend
![Page 25: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/25.jpg)
| © Ottobock
Umsetzung bei Ottobock mit Jenkins
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 25
5. Entwickler-Feedback
![Page 26: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/26.jpg)
| © Ottobock
Fazit (1)
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 26
Positiv
• Die genannten Anforderungen können von der Werkzeugkette weitestgehend erfüllt werden
• Robustheit und Performanz des Prozesses sind zufriedenstellend• Wichtige Arbeitsschritte sind quellcodezugänglich (z.B. Python Skripte,
Jenkins-Plugins) und können somit adaptiert/optimiert werden• Frühes Feedback und somit frühzeitiges Erkennen von Bugs konnte
erreicht werden
![Page 27: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/27.jpg)
| © Ottobock
Fazit (2)
Unit Testing und fortlaufende Integration bei der Ottobock Healthcare GmbH | Torsten Wender, Embedded Testing | 22.06.2017 27
Negativ
• Hohe Komplexität bezüglich Compiler-, Linker-, Debugger-Einstellungen- Support war notwendig
• Hocher (aber einmaliger) Konfigurationsaufwand des Testintegrations-Prozesses
- Jenkins Job Erstellskript war vorhanden- Kleinere Anpassungen waren nötig
![Page 28: D3.2 Unit Testing mit Vectorcast und fortlaufende ...€¦ · Unit Testing mit Vectorcast und fortlaufende Integration von Testergebnissen mit Jenkins bei der Ottobock Healthcare](https://reader033.vdocuments.mx/reader033/viewer/2022053100/6059fbda7c80723acc10f10a/html5/thumbnails/28.jpg)
www.ottobock.com
Vielen Dank für IhreAufmerksamkeit!www.ottobock.com