매거진 QA의 시작

Shift-right Testing

프로세스 및 기법 관련

by 제임스

Shift-right Testing은 소프트웨어가 운영 환경(실제 사용자가 사용하는 환경)에서 어떻게 작동하는지를 검증하는 테스트 접근 방식입니다.

소프트웨어 개발 초기나 중간에 집중하는 Shift-left Testing과는 반대로, 소프트웨어 배포 이후의 품질과 성능을 확인하고 개선하는 데 초점을 맞춥니다.

즉, “배포 후에도 테스팅은 끝나지 않는다!”는 철학을 기반으로 합니다.



Shift-right Testing이란?


Shift-right Testing은 실제 사용자 환경에서의 소프트웨어 동작을 관찰하고 검증하며, 발견된 데이터를 기반으로 지속적으로 개선해 나가는 접근법입니다.

• 소프트웨어를 배포한 후에도 문제가 발생할 가능성은 항상 존재합니다.

• 이 방법은 운영 환경에서 실시간으로 데이터를 수집하고 분석하여, 결함이나 성능 문제를 발견하는 것을 목표로 합니다.


예를 들어,

• 쇼핑몰 앱에서 “결제 속도가 특정 지역에서 느리다”는 사용자의 불만을 수집합니다.

• 이를 기반으로 문제를 분석하고, 시스템 성능을 개선합니다.



Shift-right Testing의 주요 특징


1. 운영 환경 중심

• 배포 후 실사용 데이터를 활용해 실제 사용자 경험을 기반으로 문제를 탐지합니다.

예: “모바일 사용자 비율이 높은데, 특정 기기에서 이미지가 깨지는 문제가 발생”

2. 실시간 피드백과 개선

• 사용자의 행동 데이터를 실시간으로 수집하고, 이를 분석해 빠르게 소프트웨어를 수정합니다.

예: 실시간 트래픽 분석을 통해 특정 시간대에 서버 부하가 증가하는 패턴 발견

3. 지속적인 품질 개선

• 운영 중에도 지속적으로 테스트를 수행하며 품질을 유지하고 향상합니다.

예: A/B 테스트를 통해 새로운 기능이 사용자 만족도를 높이는지 확인



Shift-right Testing은 마치...


Shift-right Testing은 자동차를 도로에 올려놓고 실주행 테스트를 진행하는 것과 같습니다.

• 자동차 제작 단계에서 안전성 검사를 마쳤더라도, 도로에서 실제로 운전해보지 않으면 예상치 못한 문제가 발생할 수 있습니다.

• 예를 들어, 비오는 날 미끄러운 도로에서 타이어의 성능을 검증하거나, 고속 주행 시 핸들링 안정성을 테스트합니다.


이처럼 Shift-right Testing은 실제 환경에서의 결함과 성능 문제를 확인하고, 이를 개선하는 데 중점을 둡니다.



Shift-right Testing의 실제 사례


사례 1: 쇼핑몰 앱

상황: 특정 사용자들이 “결제 버튼” 클릭 시 페이지가 멈춘다는 문제를 보고

Shift-right 접근

1. 서버 로그 데이터를 분석해 특정 브라우저에서만 오류가 발생하는 것을 발견

2. 결제 API 요청 속도를 개선해 문제 해결

3. 수정 사항 배포 후, 모니터링을 통해 문제가 해결되었는지 검증


사례 2: 게임 애플리케이션

상황: 새 기능 업데이트 후 일부 사용자가 게임이 느려졌다고 피드백

Shift-right 접근

1. 실시간 모니터링 도구로 CPU와 메모리 사용량을 확인

2. 특정 코드 변경이 리소스를 과도하게 사용하는 원인임을 파악

3. 문제를 수정하고 성능을 다시 측정


사례 3: 스트리밍 서비스

상황: 특정 시간대에 버퍼링이 발생

Shift-right 접근

1. 트래픽 패턴을 분석해 사용자가 몰리는 시간대와 지역을 확인

2. 서버 용량을 확장하고, 콘텐츠 배포 네트워크(CDN) 설정을 최적화

3. 이후 문제 발생률이 감소했는지 데이터를 통해 검증



Shift-right Testing의 도구와 기술


1. 모니터링 도구

예: Datadog, New Relic, Splunk

• 서버 상태, 응답 시간, 트래픽 등을 실시간으로 모니터링

2. A/B 테스트

• 두 가지 버전의 기능을 배포해, 사용자가 선호하는 버전을 선택

3. 실시간 로깅 및 데이터 분석

예: ELK 스택(Elasticsearch, Logstash, Kibana)

• 시스템 로그와 사용자 데이터를 수집하고 시각화하여 문제를 분석

4. 사용자 피드백 수집

예: 설문조사, 사용자 리뷰

• 사용자 관점에서 소프트웨어의 문제를 이해



Shift-right Testing의 단점


1. 빠른 대응 필요

• 운영 중 문제 발생 시, 즉각적인 수정과 배포가 요구되며, 그렇지 않으면 사용자의 신뢰를 잃을 수 있습니다.

2. 비용 부담

• 실시간 모니터링 도구와 서버 설정 비용이 추가로 발생할 수 있습니다.

3. 결함의 사용자 노출

• 운영 중 발견된 결함은 이미 사용자가 경험했을 가능성이 있으므로, 신뢰에 악영향을 줄 수 있습니다.



Shift-left Testing vs. Shift-right Testing

스크린샷 2024-12-15 16.23.18.png Shift-Left vs. Shift-Right



Shift-right Testing과 주니어 QA의 연결점


1. 사용자 관점 이해

• 주니어 QA는 운영 환경 데이터를 통해 실제 사용자가 소프트웨어를 어떻게 경험하는지 배울 수 있습니다.

2. 데이터 기반 문제 해결 훈련

• 실시간 데이터 분석과 모니터링 도구 사용을 통해 문제의 원인을 추적하고 해결하는 능력을 기릅니다.

3. 사용자 경험 중심 사고

• 단순한 결함 발견을 넘어, 사용자 경험을 개선하는 테스트 방법론을 배울 수 있습니다.



Shift-right Testing은 소프트웨어 배포 후에도 테스팅과 품질 관리가 지속적으로 이루어진다는 것을 강조합니다.

실시간 데이터를 활용해 운영 환경에서의 결함과 성능 문제를 감지하고 개선하며, 사용자 경험을 최우선으로 고려합니다.


Shift-left Testing과 상호 보완적으로 활용하면, 개발 초기부터 배포 후까지 소프트웨어의 품질을 완벽히 관리할 수 있습니다.

keyword
매거진의 이전글Shift-left Testing