Stellen Sie sich vor, die wichtigste Software Ihres Unternehmens fällt plötzlich aus. Was würde passieren? Bestellungen könnten verloren gehen, Fristen würden möglicherweise nicht eingehalten und Kunden würden sich mit Sicherheit beschweren.
Dieses Horrorszenario lässt sich vermeiden: durch die Implementierung eines kontinuierlichen und rigorosen Testprozesses, der Probleme erkennt, bevor sie Chaos verursachen. Einen solchen Prozess in Ihrer Organisation zu implementieren, ist jedoch leichter gesagt als getan.
In diesem Artikel erfahren Sie, was Sie beachten müssen, wenn Sie mit Tests in Ihrem Unternehmen beginnen, und wie Sie langfristig davon profitieren können.
Best Practices für Tests für Produktteams
Im ersten Teil dieses Artikels wird beschrieben, wie Sie mit der Implementierung von Tests in Ihrem Workflow beginnen.
Eine Testkultur in Ihrem Team implementieren
Damit Tests in Ihrem Team erfolgreich eingeführt werden können, muss jeder eine gemeinsame Denkweise haben und Qualität nicht als Belastung, sondern als Investition betrachten. Wie jede andere kulturelle Veränderung erfordert dies Zeit und Beständigkeit.
Regelmäßige Besprechungen, in denen Fehler, ihre Auswirkungen, ihre Ursachen und die Maßnahmen zur Behebung diskutiert werden, können dazu beitragen, diese Kultur zu prägen. So wird das Bewusstsein dafür geschärft, warum es gut ist, solche Mängel von vornherein zu vermeiden.
Wenn eine bestimmte Person im Team die Bemühungen überwacht und vorantreibt, kann die Wahrscheinlichkeit eines Erfolgs erheblich gesteigert werden. Eine Person, die team- oder sogar organisationsweite Richtlinien festlegt, Best Practices sammelt und weitergibt und sich auf allen Ebenen für die Umsetzung einsetzt.
Eine weitere nützliche Maßnahme kann darin bestehen, die Supportrolle Ihres Produkts zu ändern. Direkte, ungefilterte Informationen von Ihren Kunden zu erhalten und mehr über die alltäglichen Probleme zu erfahren, die sie mit Ihrem Produkt haben, kann für Produktmanager, Designer und Entwickler sehr wertvoll sein.
Ziel ist es, dass alle in Ihrem Team verstehen, dass Qualität ein Feature ist, das genauso wichtig ist wie jede andere Funktion, die Sie für Ihr Produkt entwickeln. Sobald alle diese Denkweise verinnerlicht haben, ist es ein natürlicher Schritt, zu verstehen, dass Tests auch eine Funktion sind. Denn Tests sind das, was die ausgelieferte Qualität sicherstellt.
Schritt-für-Schritt-Testprozess
Sobald die verschiedenen Teams, die an der Produktentwicklung beteiligt sind, sich einig sind, können Sie die Existenz und Verwendung von Tests weiter formalisieren.
Tests in die „Definition of Done“ aufnehmen
Wenn Sie Tests als Funktionsanforderung hinzufügen, geben Sie an, dass eine Funktion erst dann bereit für die Veröffentlichung ist, wenn sie ordnungsgemäß und automatisch getestet wurde.
Regelmäßig Tests durchführen
Nach der Implementierung können automatisierte Tests in jeder Phase des Entwicklungsprozesses als Schutz dienen. Sie erfordern kein menschliches Eingreifen und können in jedem wichtigen Schritt Ihrer Entwicklungspipeline ausgeführt werden. Beispiel:
- Bei jedem Commit.
- Bei jeder Pull-Anfrage.
- Nach jeder vollständigen Release- oder Umgebungsänderung.
Wenn Sie in Ihrer Produktionsumgebung auf Drittanbieterdienste angewiesen sind, kann es sogar sinnvoll sein, Ihre Tests in der Produktion auszuführen, um sicherzustellen, dass sich Drittanbieter-APIs wie erwartet verhalten.
Messwerte definieren und erfassen
Es ist wichtig, eine Reihe von Messwerten zu definieren, um die Effektivität Ihrer Tests und die Auswirkungen von Test-Workflows auf Ihr Unternehmen zu messen. Hier sind einige Beispiele für Messwerte, die Sie verwenden können:
- Releases pro Monat: Eine höhere Anzahl von Releases pro Monat kann auf einen agileren Entwicklungsprozess hindeuten. Automatisierte Tests spielen hier eine wichtige Rolle, da sie dafür sorgen, dass Releases mit Zuversicht durchgeführt werden können.
- Fehlerberichte: Ein abnehmender Trend bei Fehlerberichten kann ein positives Zeichen dafür sein, dass Ihre Test- und Entwicklungsprozesse effektiv sind.
- Testabdeckung: Die Abdeckung ist zwar nie ein exakter Messwert, kann aber ein guter Indikator dafür sein, wie gründlich Sie kritische Anwendungsfälle testen.
Diese Messwerte werden auch von anderen Faktoren beeinflusst, die sie verzerren können. So kann die Anzahl der Veröffentlichungen beispielsweise in der Ferienzeit sinken, während die Anzahl der Fehlerberichte steigt. Verlassen Sie sich also nicht nur auf wenige und gleichen Sie sie mit anderen Daten ab, die Ihrem Team zur Verfügung stehen.
Wenn Sie diese Schritte mit Ihrem Team erfolgreich umsetzen, wird sich das langfristig positiv auf die Produktintegrität auswirken. Aber es gibt noch mehr, was Sie tun können.
Best Practices für Tests für Systemadministratoren
Produktteams können nicht allein arbeiten. Sie sind auf die Hardware, Tools und Infrastruktur angewiesen, die von Systemadministratoren verwaltet werden. Auch wenn Systemadministratoren in der Regel nicht direkt zur Produktentwicklung beitragen, können sie den Entwicklungsablauf positiv beeinflussen. Sie können beispielsweise die Browserversion, die bestimmte Nutzergruppen im Unternehmen verwenden, aktiv verwalten.
Im zweiten Teil des Artikels wird beschrieben, wie das funktioniert, wobei die Chrome-Channels und Enterprise-Richtlinien verwendet werden.
Chrome-Release-Versionen
Standardmäßig wird Chrome automatisch aktualisiert, damit alle Nutzer die neueste, stabilste und sicherste Version von Chrome mit allen aktuellen Funktionen verwenden – die Version von Chrome, die im stabilen Channel veröffentlicht wird.
Als Unternehmen, das ein webbasiertes Produkt entwickelt, möchten Sie möglicherweise einen Browser vor dem stabilen Channel verwenden, damit Ihre Produktteams Zeit haben, Ihr Produkt an Änderungen an der Webplattform anzupassen.
Für diesen Anwendungsfall bietet Chrome insgesamt vier Release-Versionen, die für verschiedene Nutzergruppen vorgesehen sind.
Für Chrome gibt es verschiedene Release-Versionen, mit denen Sie zukünftige Browseränderungen vorwegnehmen und die neuesten Funktionen testen können, bevor sie allgemein verfügbar sind:
- Stabile Version: Die meisten Nutzer verwenden diese Version. Der stabile Channel wird automatisch aktualisiert, wenn eine neue Chrome-Version verfügbar ist. Das geschieht monatlich.
- Betaversion: Diese Version wird in vier bis sechs Wochen stabil. Sie haben also die Möglichkeit, eine Vorschau auf ein anstehendes stabiles Release zu erhalten, es zu testen und sich darauf vorzubereiten.
- Entwicklerversion: In dieser Version wird einmal pro Woche eine neue Version von Chrome bereitgestellt. Sie enthält alle aktuellen Fehlerkorrekturen, die später in die Betaversion übernommen werden. Wie der Name des Channels schon sagt, befindet er sich in der Entwicklung und kann daher unerwartet ausfallen. Er enthält aber auch die neuesten Funktionen, manchmal lange bevor sie in die stabile Version gelangen. Daher ist der Dev-Channel ein hervorragendes Tool für Prototyping und innovative Entwicklung.
- Canary-Channel: Der experimentellste Channel, der alle neuesten Funktionen enthält, aber nicht ausführlich getestet wurde. Mindestens täglich veröffentlicht.
Wenn Sie mehr über die Chrome-Channels erfahren möchten, sehen Sie sich die entsprechende Chrome Concepts-Folge an.
Kanäle in einer Beispielorganisation verwenden
Die Struktur von Produktteams variiert je nach Organisation, da es keinen universellen Ansatz für die Softwareentwicklung gibt. Wir gehen von einem Team mit den folgenden Rollen aus: Produktmanagement, UX und UI, Engineering, Operations und Support.
Für eine solche Organisation könnte die Channelaufteilung so aussehen:
- Produktmanagement: PMs können in der Regel den stabilen Channel verwenden, um dieselbe Version wie die meisten Nutzer zu verwenden. Gelegentlich verwenden sie den Beta- oder Entwicklerkanal, wenn sie an einer Funktion arbeiten, für die eine API erforderlich ist, die noch nicht eingeführt wurde.
- Entwicklung und UX: Teile dieser Teams können den Entwicklerkanal verwenden, um Zugriff auf die neuesten Funktionen wie Ansichtsübergänge zu erhalten, noch bevor sie in der stabilen Version verfügbar sind.
- Vorgänge: Könnten sich in der Betaphase befinden, um Probleme vorherzusehen, die sich auf Nutzer auswirken.
- Support: Kann auf dem stabilen Channel bleiben, um sicherzustellen, dass die Interaktion mit dem Produkt mit demselben Browser erfolgt wie bei den meisten Ihrer Kunden.
Kanäle mit Unternehmensrichtlinien verwalten
Chrome bietet nicht nur Richtlinien, sondern auch Unternehmens- und Verwaltungstools, mit denen Sie aktiv verwalten können, welcher Channel für die einzelnen Nutzer verwendet wird. Das ist nützlich, da die Testoberfläche sofort von einigen wenigen Einzelpersonen auf eine deterministische Gruppe von Nutzern erweitert wird. So lassen sich Fehler so früh wie möglich und nachvollziehbar erkennen.
Wenn Sie diese Art von Kontrolle nutzen möchten, empfehlen wir die folgende Konfiguration:
- Mitarbeiter (App-Nutzer): Um das Risiko von Unterbrechungen zu minimieren, sollten die meisten Mitarbeiter die stabile Version verwenden, die vom Chrome-Testteam umfassend geprüft wurde. Außerdem können 5 bis 10 % der Nutzer den Betakanal verwenden. Auf diesem Channel erhalten Administratoren eine Vorschau von 4 bis 6 Wochen auf die stabile Version. So können sie mögliche Probleme bei einem Release erkennen und haben mehr Zeit, diese zu beheben, bevor die Version für alle anderen freigegeben wird.
- IT-Abteilung: Mitglieder der IT-Abteilung, einschließlich der Systemadministratoren, können die Betaversion oder die Entwicklerversion verwenden, um eine Vorschau von 4–6 bzw. 9–12 Wochen auf zukünftige Entwicklungen für die stabile Chrome-Version zu erhalten.
Release-Versionen mit Langzeitsupport
Die Produktentwicklung verläuft möglicherweise nicht so schnell wie geplant und der monatliche Release-Zyklus von Chrome ist möglicherweise zu kurz. Für diesen Anwendungsfall bietet Chrome eine erweiterte stabile Version, bei der die Geräte Funktionsupdates in größeren Zeitabständen erhalten, Sicherheitsupdates aber weiterhin regelmäßig installiert werden. Diese Version wird alle acht Wochen aktualisiert.
Das folgende Diagramm zeigt, wie verschiedene Meilensteine die verschiedenen Release-Channels von Chrome durchlaufen:
- In den ersten vier Wochen werden in den stabilen und den erweiterten stabilen Versionen dieselben Versionen ausgeliefert. Danach weichen die beiden voneinander ab.
- Es gibt keinen erweiterten Betakanal. Stattdessen wird der standardmäßige vierwöchige Betazyklus verwendet, um sowohl die stabile als auch die erweiterte stabile Version zu stabilisieren. Unternehmen, die sich für die acht Wochen verlängerte stabile Version entscheiden, sollten weiterhin den Betakanal verwenden, um proaktiv Probleme zu erkennen, die sich auf ihre Umgebungen auswirken könnten.
Fazit
Tests sind ein wichtiger Bestandteil der Softwareentwicklung, um die Qualität der Produkte zu gewährleisten. Sie sind auch ein wichtiger Schritt für Systemadministratoren, um Mitarbeitern einer Organisation Zugriff auf hochwertige Software zu ermöglichen und Unterbrechungen von Geschäftsprozessen zu vermeiden.
Damit die Implementierung eines Test-Workflows in Ihrer Organisation gelingt, ist es wichtig, dass alle die gemeinsame Denkweise teilen, dass Qualität und damit Tests eine Funktion sind.
In diesem Artikel haben wir verschiedene Möglichkeiten zur Integration von Best Practices für Tests in Ihre Organisation untersucht. Eine detaillierte Übersicht der vorhandenen Testtools finden Sie in unserem Artikel Tools von Chrome für reibungslose, automatisierte Tests.
Praktische Anleitungen zum Testen von Anfang bis Ende finden Sie auch in unserem aktuellen Kurs zum Testen und den Best Practices für die Testautomatisierung auf web.dev.