grep

Engineering

29CM QA팀은 테스트 자동화 사용률을 극적으로 상승 시키기 위해 무엇을 바꿨을까?

29CM

2024년 9월 26일

원문에서 보기 ↗

29CM QA팀도 테스트 자동화를 사용하시는 타 QA분들처럼 CI/CD(저희는 Jenkins를 사용합니다) 툴을 사용해서 테스트 자동화를 수행하고 있습니다.

테스트 자동화를 위해 29CM앱의 전반적인 주요 기능을 검증 할 수 있도록 E2E 시나리오 28개를 (33개였으나 수행불가 시나리오제외)선정해놓고 APP 배포 전에 그것을 모두 수행하여 검증이 진행되도록 하였습니다.

APP은 이렇게 배포빌드에 트리거를 걸어놓음으로써 테스트 자동화로 대응을 할 수 있었는데 문제는 프론트엔드쪽 배포였습니다.

APP은 정기배포였지만 프론트엔드는 수시배포였고 배포가 연달아 나가는 경우도 빈번히 일어나고 있었습니다. 앱은 배포 전에 테스트가 가능했지만 프론트엔드는 배포 후 테스트 였기 때문에 빠른 검증이 반드시 필요한 상황이여서 최초의 전략은 시나리오별 수행이 가능하도록 구성하여 테스트 결과를 최대한 빨리 확인할 수 있도록 하는 것이였습니다.

기존 BVT 자동화를 사용할 경우 수행시간이 오래 걸릴것이기 때문에 빠른 피드백을 위한 결정이였습니다.

이것을 위해 2024년 초에 테스트 시나리오 중 웹뷰를 테스트하는 시나리오를 선별하여 독립적으로 수행할 수 있도록 수정하였고 해당 시나리오를 수행할 별도의 테스트 기기도 준비하였습니다. 빠른 수행과 병목을 해결하기 위한 준비였습니다.

하지만 이를 수행할 개발팀분들이 QA Jenkins에 직접 접근해야 실행할 수 있었기 때문에 접근성이 좋지 않아 실행에 어려움이 있는 상황이였고 이를 해결하기 위해 접근성을 높이기 위해 Slack bot을 사용하여 개발팀에 제공하기로 하였습니다.

팀원이신 정다정님이 빠르게 Slack bot 작업을 진행해주셨고 독립적인 시나리오를 수행할 수 있는 Slack bot이 완성되어 개발팀 전체에 공유하였습니다.

슬래쉬 커맨드로 시작할 수 있습니다.

출력된 팝업에서 시나리오를 선택하고 수행할 OS를 체크한뒤 확인버튼을 클릭!

테스트 자동화 수행 시작 알림이 해당 Slack bot을 호출한 채널에 발송됩니다.

Slack 알림 전용 채널에 선택한 테스트가 시작됨을 알려주며 소요시간을 알려줍니다.

테스트가 수행되며 결과를 실시간으로 전송합니다.

테스트가 완료될경우 해당 봇을 수행한 사람과 해당 OS 테스트 자동화 오너 QA에게 알림이 발송됩니다.

이렇게 만들어서 대대적인 홍보를 진행했습니다.

프론트엔드 배포 후 안정성 확보를 위한 간편하게 테스트 수행이 가능하도록 Slack bot을 만들었으니 사용할 수 있도록 권유하였으나 한달정도 운영했을 때 확인한 Slack bot 사용률은 저조했습니다.

QA팀 내부적으로는 손쉽게 QA 서비스를 사용할 수 있도록 UX도 크게 변경하였고 만들기 불편하면 사용하기는 편하다 라는 생각으로 최대한 직관적으로 UI도 구성하였는데 실제로는 사용되지 않는 프로세스였던 것이였습니다.

무엇이 패착이였을까요?

Slack bot도 결국은 사람의 개입이 필요한 구조였습니다.

기존에 없던 Flow를 추가로 수행해야 하기 때문에 개발자 분들에게 유익한 구조는 아니였던 것 이였습니다.

그래서 사람의 개입을 없애기로 합니다.

기존 App 테스트 자동화처럼 프론트엔드 배포 시 트리거를 연동하기로 방향을 전환했습니다.

다만 BVT 자동화 진행 시 네이티브 영역과 Webview영역이 함께 있었는데 프론트엔드팀의 경우 네이티브 영역의 테스트 결과는 필요없는 정보였습니다. 이것을 구분하고 강조된 알림을 받을 수 있도록 프론트엔드 팀과 테스트 자동화 운영방법에 대한 논의를 진행하여 추가 구현이 필요한 부분을 작업하게 됩니다.

또한 최초에 문제삼았던 BVT수행 시간을 줄이는 것을 고민했지만 단기간에 되지 않을 것이므로 더 빠른 주기의 알림을 받을 수 있도록 수정했습니다.

관련된 논의 내용은 아래와 같습니다.

  1. 테스트 실패 시 실패가 발생한 위치가 Webview라면 프론트엔드팀 멘션을 추가하여 QA와 같이 문제를 인식할 수 있도록 한다.
  2. 전체 테스트 시나리오 완료 시 멘션이 발송되는 것이 아니라, 시나리오 개별 케이스 결과에 멘션을 발송하도록 하여 테스트 실패 시 즉각 알 수 있도록 한다.
  3. App 테스트 자동화 때도 Webview 이슈라면 프론트엔트팀 멘션이 발송되도록 한다.

이 외에도 QA팀 내부적으로는 기존 테스트 자동화 BVT 수행시간을 20분 이내로 수행되도록 했는데 더 빠른 수행의 필요성을 느끼고 기존 테스트 기기 병렬 2대 수행에서 3대 수행으로 확장하여 수행시간을 더 단축시킬 계획을 가지고 있습니다.

또한 모바일 웹뷰에 그치지 않고 모바일 웹브라우져에서의 테스트도 수행될 수 있도록 현재는 모바일웹 테스트 자동화 시나리오도 10개 신규 구현이 완료되었으며 조만간 동시에 병렬 수행되도록 진행할 예정입니다.

이제는 기존 모바일 빌드에서 트리거되는 수행 갯수를 합치면 한달 평균 100회 이상 테스트 자동화가 수행되고 있으며 결과가 리포트 되고 있습니다.

5% 미만의 수행률에서 100%의 수행률이 된 것입니다.

수행률의 극적인 상승은 분별화되고 즉각적인 알림과 사람의 개입을 없앰으로써 이뤄낼 수 있게 되었습니다.

이 과정에서 팀에서 학습한것은 명확했습니다.

의도와 영향력이 명확한 것 이라도 사람의 개입 비용이 더 크다면 사용되지 않는다.

앞으로도 이것을 상기하며 QA활동을 해 나가야겠습니다 :)

MUSINSA CAREER

함께할 동료를 찾습니다.

29CM QA팀은 ‘고객의 더 나은 선택을 돕는다’라는 미션으로 출발했습니다. 우리는 우리만의 방식으로 콘텐츠를 제공하며, 브랜드와 고객 모두에게 대체 불가능한 커머스 플랫폼을 만들어가고 있습니다. 이 미션을 이루기 위해 우리는 흥미로우면서도 복잡한 문제들을 해결하고 있습니다. 만약 우리와 함께 이 문제들을 해결해 보고 싶다면, 주저하지 말고 29CM에 합류하세요!

🚀 팀 무신사 채용 페이지 (무신사/29CM 전체 포지션 확인이 가능해요)

🚀 팀 무신사 테크 소식을 받아보는 링크드인

🚀 무신사 테크 블로그

🚀 29CM 테크 블로그

🚀 무신사 테크 유튜브 채널

채용이 완료되면 공고가 닫힐 수 있으니 빠르게 지원해 주세요!