준비 환경과 UAT 환경의 차이점은 무엇입니까?


10

솔루션을 개발하는 동안 적어도 3 가지 환경이 있어야한다는 것을 알고 있습니다.

  • 개발 : 프로그래머는 언제든지 코드를 빠르게 테스트하고 다른 변경 사항과 통합하기 위해 언제든지 변경 및 푸시 변경을 자유롭게 할 수 있습니다. 이는 테스트 데이터베이스 및 서비스에 연결되어 있습니다.
  • UAT : 하드웨어와 관련하여 프로덕션 환경의 "가능한 한"사본을 포함해야하므로 개발자가 경의를 표해야합니다. 차이점은이 환경이 편집 가능한 프로덕션 데이터 사본을 사용하여 UAT 데이터베이스에 연결되어 있다는 점입니다. Q & A 팀과 사용자가 프로덕션 환경에 적용 할 변경 사항을 확인하는 데 사용합니다.
  • 생산 : 실제 거래.

내가 살펴본 소프트웨어 공학에 대한이 질문에 Serverfault에이 질문에 , 그들은 준비 환경의 의미를 무엇에 다를 것으로 보인다. 또한, 주제에 관한 Wikipedia 페이지 에는 다음이 명시되어 있습니다.

스테이징 환경의 주요 용도는 모든 설치 / 구성 / 마이그레이션 스크립트 및 프로 시저가 프로덕션 환경에 적용되기 전에 테스트하는 것입니다. 이를 통해 프로덕션 환경으로의 모든 주요 및 소규모 업그레이드를 최소 시간 내에 오류없이 안정적으로 완료 할 수 있습니다.

저에게 Staging은 UAT와 동일하며 실제 환경으로 나아 가기 전에 응용 프로그램 및 배포 절차를 테스트해야합니다. 따라서 우리는 완전히 자동화 된 상태로 프로덕션 환경에 적용해야하는 모든 식과 함께 프로덕션에 푸시하는 것과 같은 방식으로 UAT 변경 사항으로 패키지를 푸시합니다.

UAT 환경과 준비 환경의 적절한 차이점은 무엇입니까?

-

편집 : 분명히하기 위해 웹 응용 프로그램, 인터넷 웹 사이트 또는 인트라넷 웹 사이트의 관점에서 생각하고 있습니다. "양식"앱 또는 모바일 앱이 없습니다.


4
더 많은 사람들이 체중을 측정하기를 원하지만 이것은 주로 의견에 근거한 것 같습니다. 현재 환경에서는 준비 및 UAT가 다릅니다. UAT는 프로덕션 배포와 동기화되지만 사용자가 소프트웨어를 가지고 놀 수 있도록 데이터로드가 다른 라이브 공용 환경입니다. 이를 사용자를위한 샌드 박스 환경이라고합니다. 스테이징은 배포 및 인프라 변경 사항을 프로덕션 및 UAT에서 실행하기 전에 테스트 할 수있는 개인 공간입니다. 고객에게 UAT의 가용성 및 사용에 관한 의무가 있지만 스테이징은 아닙니다. 다른 회사는 다를 수 있습니다.
Thomas Owens

@Thomas 당연히 요점은 바로 다음과 같습니다. 두 환경이 다르고 어떤 사람들에게는 하나의 것으로 보이고 다른 사람들에게는 다른 것을 의미합니다. Server Fault에 대한 질문에 따르면 온라인 프로덕션 데이터를 가리키는 준비를 사용하고 "스위치를 뒤집기"만하면된다고 생각합니다.이 방법은 흥미로운 접근법이지만 생각하는 것과는 다른 견해입니다.
Machado

2
그것이 어떤 사람들에게는 다른 것과 다른 사람들에게는 다른 것이 있다는 사실은 이것이 주로 의견에 근거를 두는 것입니다. 답은 없습니다. 내가 잘못했을 때 아직 닫을 때 방아쇠를 당기지 않았습니다. 잘 쓰여진 질문이며 표준 정의가있을 수 있습니다. 사람들이 그 표준 정의를 무시하고 자신의 것을 사용하기로 결정했다면 또 다른 이야기입니다.
Thomas Owens

@ThomasOwens, 공정한 진술. 마음에 들지 않으면 며칠 동안 열어두고 의견 기반의 답변 만 나오면 기꺼이 투표 해 드리겠습니다. :)
Machado

@ThomasOwens는이 질문이 사람들이 스테이징이라고하는 것에 다소 주관적이라고 생각합니다. 우리의 UAT와 준비 환경은 "동일한 것"이지만 이것은 릴리스가 많기 때문에 릴리스 준비가되면 준비 환경을 인수하고 UAT가 릴리스 할 준비를합니다. 자체 작업을 수행하는 개발자는 여전히 무대 환경에서 기능 분기를 사용하여 차단하지는 않습니다.
8월

답변:


10

차이점은 데이터입니다.

새로운 기능의 "사용자 승인"을 위해 UAT 환경이 설정되었습니다. 이 기능을 테스트하기 위해 QA 또는 이해 관계자는 특정 기능을 실행하기 위해 특정 방식으로 사용자 프로필을 설정하거나 모의 제품 또는 구성을 설정하여 모두 확인할 수 있습니다.

스테이징 환경은 종종 익명화 된 프로덕션 데이터의 사본으로 설정됩니다. 일부 회사는 정기적으로 프로덕션 스냅 샷에서 준비 데이터베이스를 "새로 고침"합니다. 주요 초점은 응용 프로그램이 UAT에서와 동일한 방식으로 프로덕션에서 작동하도록하는 것입니다. 테스터는 데이터를 새로 설정하는 대신 필수 테스트 케이스 세트와 일치하는 프로파일 및 제품을 데이터베이스에서 검색합니다. 종종 "실제"데이터에는 UAT 중에 놓친 예기치 않은 엣지 사례가 발생하는 단점이 있습니다. 또한 모든 데이터 마이그레이션 테스트는 준비 환경에서 수행해야합니다.


1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

사용 정의는 여기에서 매우 광범위하며 최종 사용자가 수행 한 일부 구성 변경에서 UAT 환경에서 사용할 수없는 값 비싼 인프라 기능에 이르기까지 모든 종류의 항목을 포함 할 수 있습니다. 준비의 소프트웨어 제품 버전은 새 제품이거나 현재 버전 일 수 있지만 항상 이미 합격 한 제품 일 수 있습니다.

다시 말해:

  • UAT 는 현재 버전이 사용되는 방식과 동일한 방식으로 새 버전의 소프트웨어 제품 이 사용될 경우 작동 한다는 것을 증명하기 위해 존재합니다 .
  • 스테이징 은 일부 허용되는 버전의 소프트웨어 제품 에서 소프트웨어 제품을 사용 하는 새로운 방식이 현재 버전의 소프트웨어 제품이 현재 사용되는 방식과 동일한 방식으로 작동 함을 증명하기 위해 존재합니다 .

참고 : 질문 자체에 묘사 된 것처럼 "준비 환경"에 대한 이해가 다르고 회사 / 환경에서 사용되는 환경이 다를 수 있습니다.


0

이러한 서로 다른 환경의 사용은 실제로 사용자의 요구에 달려 있습니다. "staging == UAT"라는 의견에 따르면 QA 팀이없고 아주 소수의 개발자 만있는 매우 작은 애플리케이션이있는 것처럼 들립니다.

더 큰 애플리케이션 환경에는 통합 테스트 환경뿐만 아니라 개발자가 통합 테스트를 수행하는 환경과 QA 팀이 테스트를 수행하는 환경 인 QA 환경이있을 수 있습니다. 각 교육 세션 전에 복원되는 재고 데이터가있는 교육 환경이있을 수 있습니다. 준비 환경은 롤아웃이 올바르게 수행되도록 운영 팀이 제어합니다. 고객 팀은 UAT (사용자 수락 테스트) 환경을 사용합니다. 고객 문제를 재현하기위한 프로덕션 스냅 샷 환경이있을 수도 있습니다.

필자의 요점은 필요한 환경을 결정할 때 단일 관점을 조심하는 것입니다.


목적이 다른 3 가지 테스트 환경이 있지만 여전히 테스트 환경이있는 것 같습니다. 하나는 Q & A에, 하나는 개발자에, 하나는 운영 팀에 중점을 둡니다. 그러나 이들 모두는 여전히 테스트 환경이며 테스트 데이터베이스와 연결되어 있습니다. 이것이 맞습니까? 아니면 뭔가 빠졌습니까?
Machado

그들 각각은 자신의 데이터베이스에 묶여있을 것입니다.
BobDalgleish

-1

UAT는 " 사용자 승인 테스트"를 나타내며 사용자 승인 테스트가 수행되는 환경입니다. 사용자에 대한 강조-QA 테스트가 다름, UAT는 실제 사용자 (또는 최소한 교육 팀, 영업, 지원 직원 등)가 새로운 기능을 시험하고 소프트웨어를 배포하기 전에 평가할 수있는 기회입니다. 그들의 생산 시스템.

이것이 의미하는 바는 프로세스에 따라 다릅니다.

  • UAT (환경)는 프로덕션 환경에서 "레벨"일 수 있으며 본질적으로 사용자가 새로운 기능을 사용해 볼 수있는 샌드 박스입니다.
  • UAT (환경)는 "생산"을 앞두고있어 새로운 기능이 평가 될 때까지 프로덕션에 배포되지 않습니다. (이 방법은 리드 타임이 길다는 것을 의미하므로이 방법에 관심이 없습니다).
  • 다중 테넌트 시스템이있어 UAT 환경이 필요하지 않을 수도 있습니다. 대신 기능 플래그를 사용하여 사용자가 프로덕션 시스템에서 새 기능을 평가하도록 할 수 있습니다.

Continuous Deployment / Continuous Delivery와 관련하여 스테이징 환경은 개발자가 프로덕션과 크게 다른 환경 (예 :로드 밸런싱 없음, 소규모 데이터 세트 등 ...)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.