Testen in der Produktion
Inhalt
Was ist Testen in der Produktion?
Testen in der Produktion (TIP) ist eine Praxis der Softwareentwicklung, bei der neue Code-Änderungen nicht in einer Staging-Umgebung, sondern unter laufendem Benutzerverkehr getestet werden. Es ist eine der Testmethoden, die bei Continuous Delivery zum Einsatz kommen.
Produktionssoftware ist die Version der Software, die live für echte Benutzer freigegeben wird. Im Gegensatz dazu befindet sich die Entwicklungs-, Staging- oder Vorproduktionssoftware noch in der Entwicklung und ist noch nicht für Endbenutzer verfügbar.
Warum in der Produktion testen?
In der Vergangenheit haben Unternehmen versucht, sicherzustellen, dass die von ihnen erstellte Software in Entwicklungs-, Staging- und Vorproduktionsumgebungen gründlich auf Fehler getestet wird, lange bevor sie die Benutzer in der Produktion erreicht. Das frühzeitige Aufspüren von Fehlern verhindert, dass die Benutzer Fehler sehen, und erhöht das Vertrauen der Kunden und die allgemeine Zufriedenheit mit einer Marke und ihren Produkten.
Es ist jedoch nicht einfach, alle Bugs in der Entwicklung und im Staging zu finden. Technik- 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 eine fehlerhafte Software, selbst wenn sie viel Zeit in das Testen in der Entwicklung investiert haben.
In vielen Fällen ist es unmöglich, die reale Software in einer Testumgebung vollständig zu simulieren. Angesichts all der Abhängigkeiten, die in modernen Produktionssystemen bestehen, und der vielen möglichen Randfälle sind Produktionstests ein notwendiger Bestandteil von Devops und Softwaretests geworden. 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 aussetzen, 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. Daten aus der realen Welt sind vor allem bei Leistungs- und Belastungstests von Vorteil.
Feature Flag-Tools haben außerdem den zusätzlichen 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 Erlebnis für den Benutzer 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 Ihr Team Tests in der Produktion durchführen möchte, bietet Optimizely Rollouts eine unbegrenzte Anzahl kostenloser Feature Flags und Feature-Rollouts, die auf einer Plattform der Enterprise-Klasse basieren.