Zum Inhalt springen

Suchen...

CI klein halten

Erfahre, wie Dolby durch Automationstools und Teamscale seine CI-Pipeline auf unter 10 Minuten optimiert - für maximale Effizienz in der Softwareentwicklung.

5 Min. Lesezeit
Cover für CI klein halten

Eine CI-Pipeline mit 6.000 Tests in unter 10 Minuten – klingt utopisch, ist aber machbar. Der Schlüssel liegt in intelligenter Testselektion: Nur die Tests laufen, die den veränderten Code wirklich abdecken, priorisiert nach Nähe zum Commit, Fehlerhistorie und Testlaufzeit. Die technische Umsetzung erforderte Custom-Integration mit PyTest, Code-Coverage-Mapping per API und ein nächtliches Update-System – alles entwickelt in einem kleinen Team mit begrenzten Ressourcen. Software Testing kann schnell sein, wenn man den Mut hat, bestehende Tools genau auf die eigenen Bedürfnisse zuzuschneiden.

Podcast Episode: CI klein halten

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 der Episode

  • CI-Pipeline bleibt unter 10 Minuten durch automatische Testselektion basierend auf Source-Code-Änderungen mit TeamScale.
  • Parametrisierung in PyTest verwandelt einen Testfall schnell in 50-100 Cases – granulare Code-Coverage wird essentiell.
  • Nächtliche Coverage-Updates erzeugen maximal einen Tag Gap – für schnelle Entwicklung reicht manuelle Aktualisierung zwischendurch.
  • Zeitbasiertes Test-Budget (5 Minuten) verhindert Pipeline-Überlauf besser als feste Testanzahl-Limits.
  • Kleine Teams mit Mehrfach-Rollen integrieren Tools schneller – QA Lead programmiert selbst die PyTest-Plugin-Integration.

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.

Diese Seite teilen

Ähnliche Beiträge