Geschichte der Frage
Testumgebungen entstanden mit der Komplexität von IT-Produkten. Die Bereitstellung einer separaten Umgebung ermöglicht es Testern, neue Funktionalitäten sicher zu überprüfen, ohne die echten Benutzer und Daten zu beeinträchtigen.
Problem
Wenn das Testing in der Produktionsumgebung durchgeführt wird, können Daten verloren gehen, Geschäftsprozesse gestört werden oder Sicherheitsvorfälle auftreten. Manchmal unterscheiden sich Test- und Produktionsumgebungen, was "schleichende" Fehler verursacht — Änderungen funktionieren im Test, aber brechen in der Produktion (oder umgekehrt).
Lösung
Separate Testumgebungen (Test, Staging, Pre-Prod) werden organisiert, die die Produktionsumgebung maximal nachahmen. Für manuelles Testen ist die tatsächliche Übereinstimmung von API, Daten, Konfiguration und sogar „Hardware“ wichtig. Besondere Aufmerksamkeit wird der Isolierung von Benutzerdaten, der Einrichtung von Logging, Monitoring und Kontrolldaten gewidmet.
Kernmerkmale:
Kann die Produktionsumgebung für Testing verwendet werden, wenn die Tests ungefährlich sind?
Nein, es besteht immer das Risiko, die Arbeit der Benutzer zu stören oder Testdaten "zu offenbaren". Selbst "ungefährliche" Tests können Statistiken beeinflussen oder Last verursachen.
Was ist der Unterschied zwischen Test-, Staging- und Pre-Prod-Umgebung?
Test — Umgebung für grundlegende manuelle und automatisierte Tests, kann sich in den Daten unterscheiden. Staging/Pre-Prod — maximal ähnlich der Produktion, reproduziert Infrastruktur und Daten für abschließende Tests.
Welche Daten sollten in der Testumgebung verwendet werden: echte, anonymisierte oder synthetische?
Die beste Option sind anonymisierte Daten, die echten ähnlich sind. Echte Daten gefährden die Sicherheit, ausschließlich synthetische spiegeln nicht das echte Verhalten wider.
Die Tests der Fehlerbehebung werden in der Produktion durchgeführt, nach der Veröffentlichung wird der Fehler nur in der Testumgebung behoben, in der Folge tritt in der Produktion ein neuer Fehler auf: Kunden beschweren sich massenhaft.
Vorteile:
Nachteile:
Das Team überprüft die Funktionalität manuell in einer separaten Staging-Umgebung, die Testdaten werden regelmäßig aktualisiert, die Tests sind der Realität so nah wie möglich.
Vorteile:
Nachteile: