Ich weiß, dass wir bei der Entwicklung einer Lösung mindestens drei verschiedene Umgebungen haben sollten:
- Entwicklung : Die Programmierer können Änderungen jederzeit ändern und verschieben, um ihren Code schnell zu testen und in andere Änderungen zu integrieren, ohne befürchten zu müssen, dass etwas kaputt geht. Dies ist mit den TEST-Datenbanken und -Diensten verbunden.
- UAT : Sollte von den Entwicklern mit Ehrfurcht behandelt werden, da es eine "so gut wie möglich" Kopie der Produktionsumgebung in Bezug auf Hardware enthalten sollte, mit dem Unterschied, dass diese Umgebung mit einer bearbeitbaren Kopie der Produktionsdaten mit UAT-Datenbanken verbunden ist - Es wird sowohl vom Q & A-Team als auch von den Benutzern verwendet, um Änderungen zu validieren, die in die Produktion gehen
- Produktion : Das echte Geschäft.
Ich habe mich mit dieser Frage zu SoftwareEngineering und dieser Frage zu ServerFault befasst , und sie scheinen sich hinsichtlich der Bedeutung der Staging-Umgebung zu unterscheiden. Auf der Wikipedia-Seite zum Thema heißt es außerdem:
Die Hauptverwendung einer Staging-Umgebung besteht darin, alle Installations- / Konfigurations- / Migrationsskripts und -verfahren zu testen, bevor sie auf die Produktionsumgebung angewendet werden. Dies stellt sicher, dass alle größeren und kleineren Upgrades der Produktionsumgebung in kürzester Zeit zuverlässig und fehlerfrei durchgeführt werden.
Für mich ist Staging gleich UAT, wo Sie die Anwendungs- und Bereitstellungsverfahren testen müssen, bevor Sie in die reale Welt wechseln. Also schieben wir das Paket mit den Änderungen an UAT genauso voran wie mit der Produktion, vollautomatisch und mit all den Zeremonien, die wir mit der Produktionsumgebung haben sollten.
Was ist der richtige Unterschied zwischen einer UAT-Umgebung und einer Staging-Umgebung?
- -
EDIT: Um ganz klar zu sein, ich denke an eine Webanwendung, sei es eine Internet-Website oder eine Intranet-Website. Keine "Formular" -App oder mobile App.
Antworten:
Der Unterschied sind die Daten.
Eine UAT-Umgebung wird für die "Benutzerakzeptanz" neuer Funktionen eingerichtet. Um diese Funktionalität zu testen, können QS oder Stakeholder Benutzerprofile auf eine bestimmte Weise einrichten, um bestimmte Funktionen auszuüben, oder Scheinprodukte oder -konfigurationen einrichten, um sie alle zu überprüfen.
Eine Staging-Umgebung wird häufig mit einer Kopie von Produktionsdaten eingerichtet, die manchmal anonymisiert sind. Einige Unternehmen "aktualisieren" ihre Staging-Datenbank regelmäßig anhand eines Produktions-Snapshots. Das Hauptaugenmerk liegt darauf, sicherzustellen, dass die Anwendung in der Produktion genauso funktioniert wie in UAT. Anstatt Daten neu einzurichten, durchsuchen Tester die Datenbank nach Profilen und Produkten, die einer wesentlichen Reihe von Testfällen entsprechen. Oft enthalten die "echten" Daten Macken, die zu unerwarteten Randfällen führen, die während der UAT übersehen wurden. Außerdem müssten alle Datenmigrationstests in der Staging-Umgebung stattfinden.
quelle
Die Definition der Verwendung ist hier sehr weit gefasst und kann alle Arten von Dingen umfassen, die von einigen Konfigurationsänderungen durch Endbenutzer bis hin zu kostspieligen Infrastrukturfunktionen reichen, die in der UAT-Umgebung nicht verfügbar sind. Wichtig ist, dass die Version des Softwareprodukts beim Staging entweder neu oder aktuell sein kann, aber immer eine, die bereits akzeptiert wurde.
Mit anderen Worten:
Hinweis: Wie in der Frage selbst dargestellt, gibt es unterschiedliche Auffassungen von "Staging-Umgebung", und eines, das in Ihrem Unternehmen / Ihrer Umgebung verwendet wird, kann unterschiedlich sein.
quelle
Die Verwendung dieser verschiedenen Umgebungen hängt wirklich von Ihren Anforderungen ab. Aus Ihrem Kommentar "staging == UAT" geht hervor, dass Sie eine sehr kleine Anwendung ohne QA-Team und nur ein paar Entwickler haben.
Größere Anwendungsumgebungen verfügen möglicherweise über eine Integrationstestumgebung sowie eine QS-Umgebung, in der erstere Entwickler ihre Integrationstests ausführen und in letzterer das QA-Team ihre Tests ausführen. Möglicherweise gibt es eine Schulungsumgebung mit Bestandsdaten, die vor jeder Schulungssitzung wiederhergestellt werden. Die Staging-Umgebung würde vom Betriebsteam kontrolliert, um sicherzustellen, dass die Roll-outs ordnungsgemäß durchgeführt werden. Die UAT-Umgebung (User Acceptance Test) wird vom Kundenteam verwendet. Möglicherweise gibt es auch eine Produktions-Snapshot-Umgebung zum Reproduzieren von Kundenproblemen.
Mein Punkt ist es, den einzelnen Gesichtspunkt zu beachten, wenn Sie die Umgebungen bestimmen, die Sie benötigen.
quelle
UAT steht für " User Acceptance Testing" und ist die Umgebung, in der Benutzerakzeptanztests durchgeführt werden. Beachten Sie die Betonung des Benutzers - Ihre QS-Tests sind unterschiedlich. UAT bietet tatsächlichen Benutzern (oder zumindest Ihrem Schulungsteam, Vertrieb, Support-Personal usw.) die Möglichkeit, neue Funktionen auszuprobieren und die Software zu bewerten, bevor sie bereitgestellt wird ihre Produktionssysteme.
Was dies genau bedeutet, hängt von Ihren Prozessen ab:
In Bezug auf Continuous Deployment / Continuous Delivery wird die Staging-Umgebung zum Testen von Software in einer "produktionsähnlichen" Umgebung verwendet, da Entwickler wahrscheinlich in einer Umgebung mit erheblichen Unterschieden zur Produktion arbeiten werden (z. B. kein Lastausgleich, eine kleinere Datensatz etc ...)
quelle