수동 QA (품질 보증)소프트웨어 테스터 (Manual QA Engineer)

수동 테스트를 위한 테스트 환경이란 무엇이며, 이를 운영 환경과 분리하여 설정하는 이유와 그 설정의 특징은 무엇인가요?

Hintsage AI 어시스턴트로 면접 통과

응답.

질문 역사

테스트 환경은 IT 제품의 복잡성이 증가함에 따라 등장하였습니다. 별도의 환경을 분리하면 테스트 담당자가 실제 사용자와 데이터를 건드리지 않고도 새로운 기능을 안전하게 검증할 수 있습니다.

문제

운영(production) 환경에서 테스트를 진행할 경우 데이터 손실, 비즈니스 프로세스의 중단 또는 보안 사고가 발생할 수 있습니다. 때로는 테스트 환경과 운영 환경이 다르기 때문에 "잡히지 않는" 오류가 발생할 수 있습니다. 즉, 테스트에서는 변경 사항이 작동하지만 운영에서는 실패하거나 그 반대의 경우입니다.

해결책

테스트(test), 스테이징(staging), 사전 생산(pre-prod)과 같은 별도의 환경을 운영 환경에 최대한 유사하게 구성합니다. 수동 테스트에서는 API, 데이터, 구성 및 심지어 하드웨어의 실제 일치가 중요합니다. 사용자 데이터의 격리, 로깅 설정, 모니터링 및 체크 데이터 설정에 특별한 주의를 기울입니다.

주요 특징:

  • 환경의 분리는 안전성을 보장하고 모든 테스트를 수행할 수 있도록 합니다.
  • 운영 환경과의 최대 일치는 "숨겨진" 오류의 위험을 줄입니다.
  • 테스트 데이터와 구성의 주기적 업데이트가 필요합니다.

트릭 질문들.

테스트가 무해하다면 운영 환경을 사용할 수 있나요?

아니요, 항상 사용자의 작업을 방해하거나 테스트 데이터를 "유출"할 위험이 있습니다. 심지어 "무해한" 테스트조차도 통계에 영향을 주거나 로드를 발생시킬 수 있습니다.

test, staging 및 pre-prod 환경의 차이점은 무엇인가요?

Test는 주요 수동 및 자동화 테스트를 위한 환경이며, 데이터에서 차이가 있을 수 있습니다. Staging/pre-prod는 운영과 최대한 유사하며 최종 테스트를 위해 인프라와 데이터를 복제합니다.

테스트 환경에서 사용하는 것이 바람직한 데이터는 실제 데이터, 익명화된 데이터 또는 합성 데이터 중 어떤 것인가요?

최고의 선택은 실제 데이터와 유사한 구조의 익명화된 데이터입니다. 실제 데이터는 보안을 파괴하고, 전적으로 합성된 데이터는 실제 행동을 반영하지 않습니다.

일반적인 오류와 안티 패턴

  • "전투" 데이터를 사용하거나 운영 서버에서 테스트하기.
  • 너무 단순한 테스트 환경.
  • 구성 및 데이터의 정기적인 업데이트 부족.

실생활 예시

부정적인 케이스

버그 수정 테스트가 운영 환경에서 수행되며, 버그가 수정되면 테스트 환경에서만 적용되어 운영 환경에서는 새로운 오류가 발생하여 고객들이 대대적으로 불만을 제기합니다.

장점:

  • 소규모 수정에 대한 빠른 테스트

단점:

  • 데이터 손실
  • 운영 서비스에서의 사고 가능성

긍정적인 케이스

팀이 별도의 스테이징에서 기능을 수동으로 검증하며, 테스트 데이터는 정기적으로 업데이트되고, 테스트는 최대한 현실에 가깝습니다.

장점:

  • 릴리스 전에 복잡한 버그를 발견

운영 환경의 안전성

단점:

  • 환경 지원을 위한 자원이 필요함
  • 때로는 актуальные 데이터 없이 "희귀한" 버그를 찾는 것이 더 어려움