Jaka jest różnica między środowiskiem przejściowym a środowiskiem UAT?

10

Wiem, że powinniśmy mieć co najmniej 3 różne środowiska podczas opracowywania rozwiązania:

  • Programowanie : Programiści mogą dowolnie zmieniać i wypychać zmiany w dowolnym momencie, aby szybko przetestować swój kod i zintegrować się z innymi zmianami, bez obawy, że coś zepsują - jest to związane z bazami danych i usługami TEST;
  • UAT : Powinien być traktowany z szacunkiem przez programistów, ponieważ powinien zawierać „możliwie najlepszą” kopię środowiska produkcyjnego w odniesieniu do sprzętu, z tą różnicą, że to środowisko jest podłączone do baz danych UAT z edytowalną kopią danych produkcyjnych - jest wykorzystywany zarówno przez zespół Q&A, jak i użytkowników do sprawdzania poprawności zmian wprowadzonych do produkcji
  • Produkcja : prawdziwa okazja.

Przyjrzałem się temu pytaniu na temat SoftwareEngineering i temu pytaniu na ServerFault. Wydaje się , że różnią się one co do znaczenia środowiska przejściowego. Ponadto strona Wikipedii na ten temat stwierdza, że:

Podstawowym zastosowaniem środowiska pomostowego jest przetestowanie wszystkich skryptów i procedur instalacji / konfiguracji / migracji, zanim zostaną one zastosowane w środowisku produkcyjnym. Zapewnia to, że wszystkie główne i drobne aktualizacje środowiska produkcyjnego zostaną wykonane niezawodnie bez błędów, w jak najkrótszym czasie.

Dla mnie Staging jest równy UAT, gdzie musisz przetestować procedury aplikacji i wdrażania przed przejściem do prawdziwego świata. Tak więc pchamy pakiet ze zmianami do UAT w ten sam sposób, w jaki pchamy do produkcji, w pełni zautomatyzowany i przy całej ceremonii, jaką powinniśmy odbyć w środowisku produkcyjnym.

Biorąc to pod uwagę, jaka jest właściwa różnica między środowiskiem UAT a środowiskiem przejściowym?

-

EDYCJA: Żeby było jasne, myślę o aplikacji internetowej, czy to o stronie internetowej, czy o intranecie. Brak aplikacji „formularzy” lub aplikacji mobilnej.

Machado
źródło
4
Chcę, żeby więcej ludzi ważyło, ale wydaje się, że opiera się to głównie na opiniach. W moim obecnym środowisku pomostowanie i UAT są różne. UAT to aktywne, publiczne środowisko, które jest zsynchronizowane z wdrożeniami produkcyjnymi, ale z innym obciążeniem danych, aby użytkownicy mogli bawić się oprogramowaniem. Nazywamy to środowiskiem piaskownicy dla użytkowników. Inscenizacja jest prywatnym miejscem do testowania zmian wdrażania i infrastruktury przed uruchomieniem ich w Production i UAT. Klienci mają obowiązki związane z dostępnością i korzystaniem z UAT, ale nie z etapami. Inne firmy prawdopodobnie będą inne.
Thomas Owens
@ThomasOwens chodzi o to, że: Oba środowiska są różne i dla niektórych osób wydaje się to jedno, a dla innych oznacza to inne. Pytanie o awarię serwera mówiło, że używasz inscenizacji wskazującej na dane produkcyjne online i po prostu „przełączasz przełącznik”, co uważam za interesujące podejście, ale jest to inne spojrzenie niż to, co mówisz.
Machado
2
Fakt, że dla niektórych ludzi to jedno, a dla innych coś innego, sprawia, że ​​ta opinia opiera się głównie na opinii - nie ma odpowiedzi. Nie pociągnąłem za spust przy zamykaniu, na wypadek, że się mylę. To dobrze napisane pytanie i może istnieć standardowa definicja. Teraz, jeśli ludzie zignorują tę standardową definicję i użyją własnej, to inna historia.
Thomas Owens
@ThomasOwens, uczciwe oświadczenie. Jeśli nie masz nic przeciwko, pozostawmy je otwarte przez kilka dni, a jeśli pojawią się tylko oparte na opiniach odpowiedzi, chętnie zagłosuję, aby się z tobą zamknąć. :)
Machado
@ThomasOwens zgodził się. Uważam, że to pytanie jest również nieco subiektywne w tym, co ludzie nazywają inscenizacją. Nasze UAT i środowisko przejściowe są „tym samym”, ale dzieje się tak, ponieważ mamy wiele wydań, więc kiedy jesteśmy gotowi do wydania, przejmujemy środowisko przejściowe i przygotowujemy je do UAT. Programiści, którzy pracują nad własnymi rzeczami, nadal mają możliwość korzystania z gałęzi funkcji w naszym środowisku scenicznym, więc ich nie blokuje.
sierpień

Odpowiedzi:

10

Różnica polega na danych.

Środowisko UAT jest skonfigurowane do „akceptacji przez użytkownika” nowej funkcjonalności. W celu przetestowania tej funkcji QA lub interesariusze mogą skonfigurować profile użytkowników w określony sposób w celu korzystania z określonych funkcji lub mogą skonfigurować fałszywe produkty lub konfiguracje, aby je sprawdzić.

Środowisko przejściowe jest często konfigurowane z kopią danych produkcyjnych, czasem anonimową. Niektóre korporacje regularnie „odświeżają” swoją bazę danych pomostowych na podstawie migawki produkcyjnej. Głównym celem jest upewnienie się, że aplikacja będzie działać w środowisku produkcyjnym w taki sam sposób, jak działała w UAT. Zamiast konfigurować dane od nowa, testerzy przeszukają bazę danych w poszukiwaniu profili i produktów pasujących do podstawowego zestawu przypadków testowych. Często „prawdziwe” dane zawierają dziwactwa, które powodują nieoczekiwane przypadki brzegowe, które zostały pominięte podczas UAT. Ponadto wszelkie testy migracji danych musiałyby odbywać się w środowisku testowym.

John Wu
źródło
1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

Definicja użycia jest tutaj bardzo szeroka i może obejmować wszelkiego rodzaju rzeczy, od pewnej zmiany konfiguracji dokonanej przez użytkowników końcowych do kosztownej funkcji infrastruktury niedostępnej w środowisku UAT. Co ważne, wersja oprogramowania na etapie może być nowa lub aktualna, ale zawsze taka, która już przeszła akceptację.

Innymi słowy:

  • UAT istnieje, aby udowodnić, że nowa wersja oprogramowania działałaby, gdyby była używana w taki sam sposób, jak używana jest bieżąca wersja.
  • Występuje etapowanie , aby udowodnić, że nowy sposób użytkowania oprogramowania z pewną akceptowaną wersją oprogramowania działałby w taki sam sposób, jak obecnie używana jest obecna wersja oprogramowania.

Uwaga: jak zostało to przedstawione w samym pytaniu, istnieje różne rozumienie „środowiska przejściowego”, a stosowane w firmie / środowisku może być inne.

Vlad
źródło
0

Korzystanie z tych różnych środowisk naprawdę zależy od twoich potrzeb. Z twojego komentarza, że ​​„staging == UAT”, brzmi to tak, jakbyś miał bardzo małą aplikację bez zespołu kontroli jakości i tylko kilku programistów.

Większe środowiska aplikacji mogą mieć środowisko testowe integracji, a także środowisko kontroli jakości, pierwsze, w którym programiści przeprowadzają testy integracji, a drugie, w którym zespół kontroli jakości przeprowadza testy. Może istnieć środowisko szkoleniowe, które ma dane zapasów, które są przywracane przed każdą sesją szkoleniową. Środowisko przemieszczania będzie kontrolowane przez zespół operacyjny, aby zapewnić prawidłowe wdrożenie. Zespół klienta użyłby środowiska testu akceptacji użytkownika (UAT). Może również istnieć środowisko migawki produkcyjnej do odtwarzania problemów klientów.

Moim celem jest uważanie na pojedynczy punkt widzenia podczas określania potrzebnych środowisk.

BobDalgleish
źródło
Wygląda na to, że masz 3 różne środowiska testowe o różnych celach, ale wciąż środowiska testowe: 1 koncentruje się na pytaniach i odpowiedziach, 1 koncentruje się na programistach, a drugi na zespole operacyjnym. Ale wszystkie z nich wciąż testują środowiska i są powiązane na przykład z testowymi bazami danych. Czy to prawda, czy coś mi brakuje?
Machado
Każdy z nich byłby związany z własnymi bazami danych, tak.
BobDalgleish,
-1

UAT oznacza „ Test akceptacji użytkownika ” i jest środowiskiem, w którym przeprowadzane są testy akceptacji użytkownika. Zwróć uwagę na nacisk na użytkownika - Twoje testy QA są inne, UAT jest szansą dla rzeczywistych użytkowników (lub przynajmniej twojego zespołu szkoleniowego, sprzedaży, personelu wsparcia itp.), Aby wypróbować nowe funkcje i ocenić oprogramowanie przed jego wdrożeniem w ich systemy produkcyjne.

Co to dokładnie będzie zależeć od twoich procesów:

  • UAT (środowisko) może być „równe” z produkcją i jest zasadniczo piaskownicą, w której użytkownicy mogą wypróbować nowe funkcje.
  • UAT (środowisko) może być „przed” produkcją, więc nowe funkcje nie zostaną wdrożone w produkcji, dopóki nie zostaną ocenione. (Nie podoba mi się to podejście, ponieważ niekoniecznie oznacza to, że masz dłuższy czas realizacji).
  • Jeśli masz system z wieloma dzierżawcami, możesz nawet nie potrzebować środowiska UAT, zamiast tego możesz poprosić użytkowników o ocenę nowych funkcji w systemach produkcyjnych przy użyciu flag opcji.

W zakresie ciągłego wdrażania / ciągłego dostarczania środowisko testowe jest używane do testowania oprogramowania w środowisku „produkcyjnym”, ponieważ jest prawdopodobne, że programiści będą pracować w środowisku o znacznych różnicach w produkcji (np. Brak równoważenia obciążenia, mniejszy zbiór danych itp ...)

Justin
źródło