Blog

CI klein halten - Richard Seidl

Geschrieben von Richard Seidl | 04.12.2023

Lars und sein Team haben ein Konzept entwickelt, wie sie bei Dolby die CI Pipeline trotz ständig wachsender Test-Suite immer unter 10min halten. Sie setzen dabei auf diverse Automationstools, die nicht nur Zeit sparen, sondern auch Fehlerquellen minimieren. Lars erläuterte detailliert, wie diese verschiedenen Tools in ihren Entwicklungsprozess integriert wurden, um eine nahtlose und automatisierte Workflow-Kette zu schaffen.

”In den 10 Minuten müssen alle Backends gebaut werden (…) da hast Du Linux, Windows, Arm, 64bit (…) Unittest und Tests” – Lars Kempe

Lars begann seine berufliche Laufbahn als Elektriker, einer Tätigkeit, die er acht Jahre lang, einschließlich seiner Ausbildung, ausübte. Nach einer Weiterbildung in Dresden, durch die er zum staatlich anerkannten Techniker wurde und die Fachhochschulreife erlangte, zog er nach Nürnberg. Dort startete er seine Karriere im Bereich der Mobilfunktechnologie als Systemtester bei Lucent Technologies. Anschließend absolvierte er erfolgreich sein Studium zum Bachelor und kehrte in den Mobilfunkbereich zurück, wo er als Tool Entwickler und Tester tätig war. Im Jahr 2011 wechselte er zu Dolby, wo er zunächst als Tester begann und aktuell als QA Lead im Bereich Automotive arbeitet.

Highlights in dieser Episode:

  • Lars Kempe ist QA Lead bei Dolby und gab uns Einblicke in die Optimierung ihrer CI-Pipeline
  • Sie streben eine maximale Laufzeit von 10 Minuten für ihre CI-Pipeline an
  • Die Tests werden selektiert und durchgeführt, um eine effiziente Abdeckung zu gewährleisten
  • Die Integration von Tools wie TeamScale spielte eine entscheidende Rolle bei der Optimierung
  • Die Testlaufzeiten wurden von nächtlich auf 1,5 Stunden reduziert, mit dem Ziel, sie in der CI auf 10 Minuten zu halten
  • Die Herausforderung bestand darin, die Integration mit vorhandenen Tools und Umgebungen wie Git und PyTest zu realisieren
  • Die Implementierung der Integration dauerte etwa zwei bis drei Wochen
  • Die Priorisierung und Auswahl der Tests basiert auf der Nähe zum Source-Code und anderen Faktoren, um die Effizienz zu maximieren
  • Sie haben eine harte Regel implementiert, dass die Laufzeit der CI nicht mehr als 10 Minuten betragen darf
  • Die Zukunft sieht vor, die Prozesse weiter zu optimieren und in anderen Projekten auszurollen

Wie Dolby seine CI-Pipeline optimiert: Einblicke in Geschwindigkeit und Effizienz

In dieser Folge spreche ich mit Lars, QA Lead bei Dolby, über die Herausforderungen und Lösungen der CI-Pipeline-Optimierung für maximale Effizienz. Erfahren Sie, wie Dolby eine schnelle und effektive Pipeline aufbaut und welche Rolle die Testautomatisierung dabei spielt.

Der Wunsch nach Geschwindigkeit

Ich konnte heut mit Lars Kempe, dem QA Lead bei Dolby, über ein Thema sprechen, das vielen in der Softwareentwicklung am Herzen liegt: Wie hält man die Continuous Integration (CI) Pipeline schlank und effizient? Die Marke Dolby ist uns allen bekannt – sei es durch Surround-Systeme oder Kinomusik. Doch hinter dem ikonischen Logo verbirgt sich mehr als nur herausragende Audioqualität; es steckt auch eine ausgeklügelte Strategie zur Optimierung ihrer CI-Pipeline dahinter.

Die Herausforderung: Schnelligkeit versus Qualität

Lars sprach zunächst über die Herausforderungen, denen er sich gegenübersah. Eines der Hauptziele bei Dolby war es stets, eine schnelle CI zu gewährleisten. Doch wie erreicht man dieses Ziel, ohne die Qualität der Software zu beeinträchtigen? Lars erläuterte, dass sie begonnen hatten, von Grund auf ein neues Projekt mit dem Ziel einer schnellen CI zu entwickeln. Mit einer Mischung aus Erfahrungen aus früheren Projekten und der Einführung des Tools Team Scale gelang es ihnen, diesen Ansatz erfolgreich umzusetzen.

Der Schlüssel zum Erfolg: Testautomatisierung

Eine der Schlüsselstrategien zur Beschleunigung der CI-Pipeline bei Dolby war die vollständige Automatisierung ihrer Tests. Das neue Projekt startete mit wenigen hundert Tests, doch dank Pytest konnte schnell eine hohe Anzahl an Testfällen generiert werden. Dies ermöglichte es ihnen, ihre Pipeline effizient zu gestalten und gleichzeitig eine umfassende Abdeckung sicherzustellen. Die Parametrisierung spielte dabei eine zentrale Rolle – aus einer einzigen Testfunktion konnten so zahlreiche Testfälle entstehen.

Integration und Optimierung: Ein kontinuierlicher Prozess

Die Integration von Team-Skill in ihre Pipeline war nicht ohne Hürden. Lars teilte mit uns die Schwierigkeiten und den Aufwand, der notwendig war, um eine nahtlose Integration zu gewährleisten. Die Anpassung an ihre spezifische Umgebung erforderte Entwicklungsarbeit und kreative Lösungen. Doch durch enge Zusammenarbeit mit dem Team-Skill Support und hartnäckiges Engagement gelang es ihnen schließlich, eine Pipeline zu schaffen, die sowohl schnell als auch präzise ist.

Effizienz im Fokus: Zeit als entscheidender Faktor

Einer der interessantesten Aspekte von Dolbys Ansatz ist die Fokussierung auf Zeit als Hauptkriterium für Effizienz. Durch das Festlegen einer maximalen Laufzeit für Tests innerhalb der CI – in ihrem Fall 10 Minuten – konnten sie einen Prozess schaffen, der schnell Feedback liefert und zugleich gründlich ist. Diese rigorose Zeitvorgabe zwang das Team dazu, ständig an der Effizienz ihrer Tests zu arbeiten und sicherzustellen, dass nur die relevantesten Tests durchgeführt werden.

Zukunftspläne: Weiterhin auf dem Weg zur Perfektion

Zum Abschluss unseres Gesprächs sprach Lars über die Zukunftsvisionen von Dolby in Bezug auf ihre CI-Pipeline. Trotz des bereits erreichten Erfolgs sieht Lars Raum für Verbesserungen. Insbesondere im Bereich der Merge-Requests streben sie danach, den Prozess noch weiter zu optimieren. Das Ziel bleibt dasselbe: Eine schnelle, effiziente Pipeline zu unterhalten, die es dem Team ermöglicht, hochwertige Software schnell auf den Markt zu bringen.