Optimierungs-Glossar

Testen in der Produktion

Was ist Testen in der Produktion?

Testing in Production (TIP) ist eine Praxis der Softwareentwicklung, bei der neue Codeänderungen nicht in einer Staging-Umgebung, sondern im laufenden Betrieb getestet werden. Es ist eine der Testmethoden, die bei der kontinuierlichen Bereitstellung zum Einsatz kommen.

Die Produktionssoftware ist die Version der Software, die live für echte Nutzer/innen freigegeben wird. Im Gegensatz dazu befindet sich die Entwicklungs-, Staging- oder Vorproduktionssoftware noch in der Entwicklung und ist noch nicht für Endnutzer/innen verfügbar.

Warum in der Produktion testen?

Seit jeher versuchen Unternehmen sicherzustellen, dass die von ihnen erstellte Software in Entwicklungs-, Staging- und Vorproduktionsumgebungen gründlich auf Fehler getestet wird, lange bevor sie die Nutzer/innen in der Produktion erreicht. Das frühzeitige Aufspüren von Fehlern verhindert, dass die Nutzer/innen Fehler sehen, und erhöht das Vertrauen der Kunden und die allgemeine Zufriedenheit mit der Marke und ihren Produkten.

Es ist jedoch nicht einfach, alle Bugs in der Entwicklungs- und Staging-Umgebung zu finden. Entwicklungs- und QA-Teams können viel Zeit und Mühe darauf verwenden, Unit-Tests, Test-Suites und Testautomatisierungssysteme zu erstellen, die Produktionsumgebung zu simulieren oder Benutzerabläufe manuell mit Benutzerdaten und Testfällen zu überprüfen, um Fehler zu finden, nur um dann festzustellen, dass ein wichtiger Eckfall übersehen wurde. Am Ende erleben viele Benutzer/innen eine fehlerhafte Software, selbst wenn sie viel Zeit für Tests in der Entwicklung aufgewendet haben.

In vielen Fällen ist es unmöglich, die reale Software in einer Testumgebung vollständig zu simulieren. Angesichts der vielen Abhängigkeiten in modernen Produktionssystemen und der vielen möglichen Grenzfälle sind Produktionstests ein notwendiger Bestandteil von Devops und Softwaretests. Führende Softwareunternehmen wie Google, Netflix und Amazon veröffentlichen ständig neue Funktionen für einen Bruchteil ihrer Nutzer, um die Auswirkungen zu messen.

Produktionstests und Feature Flags

Mit dem Vormarsch der Feature Flags (auch bekannt als Feature Toggles und Feature Rollouts), die es den Entwicklungsteams ermöglichen, neue Software nur einem Bruchteil des Produktionsverkehrs auszusetzen, können Unternehmen experimentelle oder neue Funktionen einem kleinen Teil des Produktionsverkehrs vorsetzen, um schnell zu überprüfen, ob ihre Software wie erwartet in Echtzeit funktioniert, und gleichzeitig eine sichere Möglichkeit haben, nicht gefangene Fehler mit einem Feature Flag Kill Switch oder Rollback zurückzusetzen.

Die Durchführung von Tests in der Produktion über Rollouts oder Feature Flags ermöglicht es, alle Produktdaten, Abhängigkeiten und Randfälle in umfassenden Integrationstests zu berücksichtigen. Reale Daten können besonders bei Leistungs- und Lasttests von Vorteil sein.

Feature Flags haben außerdem den Vorteil, dass sie A/B-Tests ermöglichen, bei denen die neue Funktion mit der vorherigen Version der Software verglichen wird, um festzustellen, welche Version auf der Grundlage von Produktionsdaten ein besseres Benutzererlebnis bietet. So können Softwareingenieure nicht nur sicherstellen, dass ihre neuen Funktionen fehlerfrei sind, sondern auch anhand echter Daten überprüfen, ob die Änderung tatsächlich das Gesamterlebnis der Software verbessert.

Wenn dein Team Tests in der Produktion durchführen möchte, bietet Optimizely Rollouts eine unbegrenzte Anzahl kostenloser Feature Flags und Rollouts an, die auf einer unternehmensgerechten Plattform basieren.