반응형

제목: 소프트웨어 테스팅에서 테스트 환경이란?(What is the Test Environment in software testing?)

저자: Software Testing Studio

문서유형: 웹문서, 2016

출처 http://www.softwaretestingstudio.com/test-environment-software-testing/


소프트웨어 테스팅에서 테스트 환경

  • 테스트 환경이란 최종 사용자가 사용하는 실제 생산 환경의 복제(유사한 하드웨어와 소프트웨어 구성)를 의미하며, 개발된 애플리케이션의 테스팅이 이곳에서 이루어지게 된다.
  • 테스팅이 테스트 환경에서 일단 완료되면 테스트 팀은 실제 생산 전개를 위해 애플리케이션을 사인오프(sign-off)한다.
  • 성공적인 테스트 환경의 배후에는 대개 해당 환경 설립을 책임진 빌드 팀이 존재하며, 테스트 환경 준비 작업이 테스팅을 할 코드가 인도되기 한참 전에 시작된다.


여러 테스트 환경 목록

  • 개발 환경(Development Environment: Dev): 결함 수정을 포함한 실제 개발이 발생하는 곳. 단위 테스팅이 이 환경에서 개발자에 의해 수행됨. 성공적인 단위 테스트 후에는 빌드가 테스팅을 위한 다음 환경으로 이전됨
  • 시스템 테스트 환경(System Test Environment: ST): 테스팅이 이루어지는 곳이며 ‘QA 환경으로도 알려짐. 모든 테스트 케이스가 실행되고, 탐색 테스트(exploratory tests)가 수행되고, 결함 재테스팅과 회귀 테스팅이 수행됨. 끝으로 승인 테스팅을 위해 더 상위 환경에 전개되게 될 빌드를 위한 사인오프를 테스트 팀이 제공한다.  
  • 성능 테스트 환경(Performance Test Environment): 성능 테스팅을 위한 환경. 효과적인 성능 측정을 위해서는 생산 환경의 복제(, 서버 수, 용량, 메모리 등)가 필요로 되기 때문에 이 환경이 일반적인 테스트 환경과 다르다. 대개 일반 테스트 환경은 실질적인 생산 환경의 서버 수, 용량, 메모리 보다 가볍게(적게) 구축됨
  • 승인 테스트 환경(Acceptance Test Environment: UAT): 성공적인 시스템 테스팅 후에 빌드가 사용자 승인 테스트를 위하여 승인 테스트 환경에 전개됨. 사용자 승인 테스트 팀이 Go/No-Go 여부를 결정하면 애플리케이션이 애플리케이션 Go-live’로 불리는 다음의 상위 환경에 전개됨
  • 생산 환경(Production Environment: Live): 최종 사용자가 애플리케이션에 접근하게 되는 곳이며, ‘라이브 환경이라고도 알려짐


테스트 대상 애플리케이션의 심각도(criticality)나 타입에 따라 위와 다른 몇몇 변이가 존재할 수 있음. 예를 들면 아래와 같은 환경이 요구될 수도 있다.

  • 스테이징 환경(staging environment): 실 생산 데이터(real production data) 상에서 마이그레이션과 테스트를 수행
  • 생산 전 환경(pre-production environment): 사용자 프로파일, 보안, 재난 복구 및 백업 같은 것들을 테스트 할 수 있는 환경
  • 교육/훈련 환경(training environments): 실제 라이브로 가기 전에 조직의 사용자들을 위한 교육/훈련이 이루어지는 곳


테스트 환경 관리

테스트 환경 관리(Test Environment Management: TEM)은 소프트웨어 인도 프로세스(the software delivery process)의 한 기능임. TEM이 테스트 시나리오 실행과 버그 재현을 위한 검증되고 안정된 테스트 환경을 제공함으로써 소프트웨어 테스팅 사이클을 지원한다. TEM에 아래와 같은 활동들이 포함된다.

  • 새로운 환경 생성(Creation of new environments)
  • 각각의 팀에 환경 할당(Environment allocation to respective teams)
  • 모든 테스트 환경을 유지보수(Maintenance of all Test environments)
  • 환경 모니터링(Environment Monitoring)
  • 사건 관리(Incident management): 환경 이슈 추적 및 해결


테스트 환경 관리가 부적절하면 아래 예와 같은 문제가 흔히 발생한다.

  • 결함이 사용자 승인 테스트 환경(UAT environment)에서 재현이 안됨
  • 시스템 테스트 환경이 아직 준비가 안되어 재계획을 할 필요가 생김
  • 환경이 다운되어 일을 할 수가 없음, 일정이 밀리게 됨
  • 어떤 시점에 전개가 이루어졌지만 작업자들이 이를 통보 받지 못하고 나중에 알게됨
  • 보고된 결함이 코딩 결함이 아니라 환경적 이슈임
  • 전개 지시(Deployment instructions)가 부정확하여 실패가 일어남
  • 애플리케이션이 비즈니스 요구사항에 따라 성공적으로 구축되고 테스트되었지만 실제 생산 환경에 전개될 때 실패가 발생함(이유는 테스트 환경 구성이 생산 환경의 구성과 달랐기 때문에)

 

, 테스터의 상당한 시간과 노력이 환경 문제로 인해 소비될 수 있고, 이는 다시 생산성과 테스트 일정에 영향을 미치게 되므로 테스트 환경 관리가 중요하다. 적절한 테스트 환경 관리는 테스트 환경의 품질, 가용성, 효율성을 향상시킴으로써 궁극적으로 일정 및 비용 준수를 가능케 한다.

 



반응형

+ Recent posts