무신사 QA 엔지니어 업무 전격 파헤치기!

MUSINSA tech
MUSINSA tech
Published in
8 min readMay 18, 2023

매끄러운 무신사 서비스를 위해 품질을 보증하고, 새롭게 업데이트 되는 다양한 기술들이 안정적으로 배포되어 고객에게 제공될 수 있도록 힘쓰는 무신사의 QA그룹의 업무를 소개합니다.

QA(Quality Assurance) 란?

제품이나 서비스의 품질을 보증하고 유지하기 위한 프로세스로, 소프트웨어, 제조, 건설, 의료, 금융 등 다양한 산업에서 적용되고 있으며, 제품 또는 서비스의 품질 보증을 위한 필수적인 역할입니다.
소프트웨어 QA 분야에서의 좀 더 상세한 설명을 드리자면 서비스의 품질을 확인하기 위해 실행되는 전반적인 과정으로 제품(product)이나 서비스가 요구사항과 명세서에 따라 기능&비기능적인 측면을 테스트합니다. 이를 통해 오류,결함 및 누락된 요구사항을 검출하고 수정해, 제품이나 서비스의 완성도와 품질을 높입니다.

QA그룹은 어떤 일을 하나요?

무신사의 QA그룹이 하는 일은 크게 3가지 정도로 나눌 수 있는데요.

1) 제품이나 서비스가 릴리즈 되기 전 품질을 확보하기 위한 테스팅

2) 프로세스 개선과 업무 효율화 그리고

3) 고객이 안정적으로 서비스를 이용할 수 있도록 하기 위한 품질 안정성 확보입니다.

위 세 가지 업무를 각각 조금 자세히 설명해보겠습니다.

첫번째로 테스팅은 QA에게 있어서 가장 기본적이고 필수적인 업무입니다.
일반적으로 QA 직무를 떠올리실 때, 가장 먼저 생각하실 수 있는 업무이기도 합니다.
우선, 기획의 요구사항과 명세서를 분석해서 누락된 요구사항을 찾아 수정합니다. 개발이 진행되는 동안 QA그룹에서는 구체적인 테스트 전략과 계획을 세우는데요. 개발이 완료되었을 때 테스트할 수 있는 환경과 테스트 데이터를 조성해두는 것입니다. 테스트를 진행하는 과정에서, 개발 중에는 몰랐던 오류 및 결함을 발견하고 수정합니다. 이러한 테스팅 과정을 통해 보다 높은 품질의 서비스를 만들 수 있는 것이죠.
또한, 사용자의 입장에서 불편한 부분이나 개선이 필요한 요소를 체크하는 것도 테스팅 업무에 포함되는데요. 이러한 이슈가 발견되면, 제품 개발팀에게 공유하여 수정하고 개선할 수 있게 합니다. 제기된 문제가 제대로 해결되었는지를 확인하고, 서비스의 완성도를 점검하는 것까지 QA의 업무이고요.

두번째로는 프로세스 개선과 업무 효율화가 있습니다.
SDLC(Software Development Life Cycle) 라고 불리는 소프트웨어 개발 수명 주기에서 필요/불필요한 단계를 찾아 개선하고, 이러한 개선점을 조직 전체에 알리고 적용합니다. 더불어, 기존 업무 방식 중 자동화로 효율을 높일 수 있는 부분을 찾아 자동화를 구현하는 작업도 진행합니다.

이러한 프로세스 개선의 한 예로, QA 프로세스의 착수 전에 인수테스트(Sanity Testing) 라는 단계를 새롭게 도입했던 사례를 소개합니다. 인수테스트란 개발이 완료된 후, QA가 제공한 주요 체크리스트를 이용하여 개발자가 직접 테스트를 수행하는 것인데요. 인수테스트 단계 도입을 통해, QA 업무 시작 전에 개발 품질을 미리 점검하고 개선할 수 있게 되어, 전체 테스트 과정과 제품 출시 일정을 보다 효과적으로 준수하게 되었습니다.

[그림1] 인수테스트 프로세스

또한 슬랙 채널과 연동하여, 자동적으로 업데이트 되는 무신사 앱 리뷰 채널 또한 반복적으로 진행되던 리뷰 수집 업무를 자동화 시스템 구축을 통해 효율화 했던 사례로 꼽을 수 있습니다.

[그림2] 앱리뷰 자동화 시스템

세번째로 소개드릴 부분이 품질 안정성 확보인데요.
서비스 오류와 같이 사용자가 직접적으로 체감할 수 있는 이슈들은 내부의 다양한 채널을 통해 유입되는데요. QA는 이런 채널들의 모니터링과 관리를 일원화하여, 이슈의 원인을 분석하고 이를 명확하게 분류된 지표로 표현합니다. 이를 통해 개선점을 도출하고 적용하여 이슈를 줄이는 방식으로 품질 안정성을 확보하는데, 이것 또한 QA가 수행하는 중요한 역할 중 하나입니다.

[그림3] 버그/오류 관리 일원화

또한 무신사 서비스를 사용자들이 불편함 없이 안정적으로 사용할 수 있도록 자동화 테스트를 통한 주기적인(일 단위) 서비스 품질 체크를 수행하고 있고, 점차 테스트 커버리지를 넓혀 나가고 있습니다.

[그림4] 일단위 자동화 테스트를 통한 주요 기능 점검

QA그룹의 업무는 어떻게 진행되나요?

QA그룹의 업무소개에 앞서, 저희 조직 구조에 대해 설명드리고 싶은데요.

QA 그룹의 테스트 엔지니어는 무신사의 테크 부문에서 목적 조직 개념의 트라이브-스쿼드 단위로 조직되어 있습니다. 이 구조를 통해 QA 엔지니어들은 주문 서비스, 상품 서비스 등 각 스쿼드를 중심으로 QA 업무를 담당하고 있습니다. 이러한 조직 구조는 QA 엔지니어들이 자신의 전문 분야에 집중하여 효율적으로 작업할 수 있도록 도와주고, 각 스쿼드의 요구 사항에 맞춰 테스트 전략과 절차를 개발하고 실행할 수 있게 합니다. 이를 통해 우리는 무신사 서비스의 품질을 유지하고 향상시키는 역할을 수행하고 있습니다.

업무 프로세스는 다음과 같이 진행되는데요. (업무 성격에 따라, 일부 프로세스가 추가 되기도, 생략되기도 합니다.)

QA Process

[그림5] QA 프로세스
[그림5] QA 프로세스
  1. 테스트 엔지니어는 스프린트마다 진행될 과제에 대한 요구사항과 명세를 분석합니다.
  2. 테스트 범위와 일정을 산정하며, 테스트 기간에 따라 인수테스트 진행 여부를 결정합니다.
  3. 테스트 설계를 통해 도출한 테스트케이스를 기반으로 테스트를 진행합니다.
  4. 테스트 중 발견한 결함에 대해 지속적으로 이슈 관리를 하며, 일정 지연을 최소화합니다.
  5. 테스트 환경 별로 모든 테스트가 종료되면 최종적으로 테스트가 완료되었다라는 승인의 의미인 Sign off를 유관 부서에 테스트 결과&리포트를 공유하고 배포를 요청합니다.
  6. 운영환경에 배포된 후, 고객에게 영향이 없는 범위 내에서 테스트한 내용이 잘 반영되었는지 확인하고, 예기치 못한 문제가 없는지 검토합니다.
  7. 마지막으로, 과제에 대한 테스팅을 마감하며 업무를 종료합니다.

테스트 마감 후 중요도 및 우선순위가 높은 테스트 케이스는 자동화 테스트 대상으로 수행범위로 확장하도록 자동화 테스트 엔지니어에게 추가를 요청합니다. 이렇게 개발된 스크립트는 일 단위 자동화 테스트에 포함되어 주요 기능이 점검 되어집니다.
이러한 프로세스를 통해 테스트 엔지니어들은 스프린트 과제에 대한 효과적인 테스트와 이슈 관리를 수행하며, 안정적인 서비스를 고객에게 제공하고 있습니다.

QA그룹이 업무하는 과정에서 가장 중시하는 부분이 있나요?

QA 그룹의 업무 범위 내에서 테스트 설계는 모든 과정 중 가장 중요한 절차입니다. 우리 QA 그룹은 체계적인 테스트 설계를 통해 최대한 많은 결함을 찾아내고, 이를 통해 고객에게 완성도 높은 서비스를 제공하는 것을 핵심 가치로 여깁니다. 이를 위해 우리는 무신사 서비스 내의 각 영역별 구조, 정책, 데이터 노출 방식 등의 지식을 ‘도메인분석서’라는 이름으로 지속적으로 누적하고 관리하고 있습니다. 도메인분석서는 테스트 설계 시 이력을 파악하고 영향 범위를 분석하는 등, 테스트 설계 품질 향상에 큰 도움이 되는 자산입니다. 이렇게 체계적인 테스트 설계를 통해 우리는 고객에게 더 나은 서비스를 제공할 수 있습니다.

[그림6] 도메인분석서 예시 (클릭시 확대됩니다)

지금까지 무신사의 QA엔지니어의 업무를 공유드렸습니다.

소프트웨어 테스팅 원칙에 따르면 “테스팅은 결함이 존재함을 밝히는 활동이지, 결함이 없음을 밝히는 활동이 아니다”라고 말합니다. 그러나 우리는 “더 이상 결함이 없다”라고 자신할 수 있는 수준의 전문성과 능력을 갖춘 QA 그룹이 되기 위해 끊임없이 노력하고 있습니다.

저희의 목표는 철저한 테스트 과정을 거쳐 무신사 회원들에게 최고의 서비스를 제공하는 것입니다. 그래서 저희는 매일매일 최선을 다하며 최고의 퍼포먼스를 발휘하고 있습니다. 오늘도 우리의 열정과 전문성을 바탕으로 최상의 결과를 위해 최선을 다하겠습니다.

--

--