토스증권 QA 문화 ‘통합테스트’를 아시나요? (feat. 해외주식)
안녕하세요. 토스증권 QA팀에서 일하고 있는 QA Manager 황채은입니다.
지난 글에서 잠깐 언급되었던 토스증권의 Closed Beta Test 기억하실까요? 🔗
지난 포스팅 참고하기 링크
오늘은 해외 증권 서비스 출시를 위해 토스증권 임직원 대상으로 진행한 Closed Beta Test 에 대해 소개하려고 합니다.
토스증권 서비스는 어떤 테스트 과정을 통해 출시되고 있을까요?
토스증권에서는 기능별로 Silo가 만들어져있고, 그 Silo에는 PO, Developer, PD, DA, QA가 함께 서비스를 만들고 있는데요.
- PO(Product Owner), 개발자(Front/Server/Core), PD(Product Designer), DA(Data Analyst), QA(Quality Assurance)
개발이 완료된 서비스들은 1차로 개발자 단위 테스트를 진행 후 QA Manager는 알파 환경에서 계획한 테스트를 진행하고, 이슈 수정이 모두 완료되면 QA 환경에서 최종 확인된 기능에 대해 서비스 Release를 Silo 별로 진행하고 있습니다. 이런 과정은 일반적인 IT 회사의 QA Cycle과 비슷하게 진행하고 있어요.
하지만, 토스증권에서는 내부 임직원들 대상으로 테스트 참여를 유도하여 미처 발견하지 못한 Edge Case 들과 보다 다양한 사용자의 피드백을 미리 얻고자 Closed Beta Test를 진행하기도 한답니다. 실제 제가 작년에 진행했던 토스증권의 해외 주식 서비스 런칭 경험을 소개해 드리려고 해요.
토스증권에서 진행한 내부 임직원 테스트는 아래의 다양한 테스트 방식의 개념을 조금씩 섞어서 진행했어요.
QA라면 모두가 알고 있는 탐색적 테스팅의 개념, Dog Fooding, Bug Bash를 모두 활용하였는데요. 그전에 개념들을 한번 언급하고 지나갈게요!
Closed Beta Test란?비공개 베타 테스트로, 서비스를 정식으로 오픈하기 전에 프로그램의 버그를 찾거나 사용성, 요구사항 충족 등을 검증하기 위해 개발자와 관련되지 않은 사용자에 의해 진행되는 테스트
탐색적 테스팅이란?테스트 대상 제품을 사용하면서 제품의 정보 습득과 동시에 테스트를 설계하고 실행하는 방식으로 탐색적 테스팅의 주요 구성요소는 Test Charter, Test Note, Time Boxing, Debrief가 있음
Dog Fooding 이란?서비스 출시 전 사용자의 입장에서 내부 인원이나 개발자가 직접 사용하며 제품을 개선하는 것
Bug Bash란?제품이 최종 릴리즈되기 전 다양한 직군의 인원들이 제품을 사용하며 아직 남아있을 수 있는 버그를 찾아내는 활동으로 짧은 시간에 많은 인원이 진행하기 때문에 상대적으로 빠르게 버그를 찾을 수 있음
토스증권의 Closed Beta Test는 어떻게 진행되었을까요?
업무시간에 임직원 대상으로 진행하는 만큼, 효율적으로 진행하기 위해 여러 준비과정이 필요했는데요.
개개인이 자율적으로 참석 가능한 임직원의 신청을 받았는데, 개발자를 제외한 임직원 중에서 70% 이상이 참여할 정도로 많은 관심을 가져주셨어요.
서비스에 대해 여러 피드백을 받기 위해 직군에 관계없이 참여가 가능한 분들은 모두 신청을 받았는데요. 그러다보니, 알파 환경 자체를 처음 접해보는 임직원분들도 있어 사용성에 어려움이 많아 사전 테스트 환경 준비가 중요했어요. 마치, 실제 서비스가 런칭되었을 때와 동일하게 사용하는 경험을 주기 위해 알파 테스트 환경이지만 운영과 동일한 환경에서 볼 수 있도록 테스트 환경을 마련하였는데, 모두의 시간을 할애하는 만큼 테스트 환경을 위해 InfraOps, Network Engineer, Devops 팀에서 테스트 환경 구축에 많은 도움을 주셨어요.
신청자 대다수가 토스증권 해외 주식에 대한 기본적인 Spec을 전혀 모르기 때문에 테스트 시나리오를 제공해야했어요. 그래서, 탐색적 테스팅의 Test Charter 개념을 섞어서 Test Scenario를 Use Case 형식으로 작성했는데요. 서비스의 주요 퍼널을 통과할 수 있게 작성하고 QA Team의 Peer Review를 통해 시나리오를 준비하였어요.
시나리오는 총 36건 작성을 하였고, 해외 증권 거래소 시간에 맞게 테스트를 진행해야 해서, Use Case를 테스트할 수 있는 Timeline을 설정했어요. 해외 증권 거래소의 테스트 거래소와 연동을 하여 실제 주식이 체결되는 것처럼 보이게 환경을 만들어 두었기 때문에, 먼저 증권 거래소 운영 시간에 맞추고 주식의 매수/매도 유형에 맞춰 시나리오를 만들었는데요. 그래서 해외 주식 서비스는 밤 11시가 넘은 심야에도 계속 진행되어야 했어요.
해당 Timeline에 맞게 임직원 모두가 같은 시간대에 테스트를 하는 것을 유도하기 위해 캘린더 초대도 잊지 않았어요! (참석자 모두, 심야 시간인데도 불구하고 수락을 눌러주셨어요!)
이렇게 준비된 테스트 형식을 모두가 이해하기 쉽게 “통합테스트” 라는 용어로 정리하였어요!
이제 마지막으로 테스트 진행 관련된 사항을 어떻게 공유할지, 어떻게 Debrief 할지를 정해야 했는데요.
토스증권은 업무를 보다 빠르고 효율적으로 진행할 수 있도록 만들어진 다양한 사내 툴들이 있어요.
대표적으로 Slack에서 JIRA(Bug Tracking System)를 바로 연동하여 이슈를 생성하고 완료까지 처리할 수 있는 (Bot)이 있어요. 또 Slack의 Workflow에서 Emoji를 남기면, 해당 게시글이 다른 채널로 전달되는 기능을 활용해서 보다 편하게 이슈를 모아볼 수 있었어요.
글로 설명하려니 이해가 잘 안되시죠?
그러면, 이제 저와 함께 통합테스트를 함께 진행해 볼까요?
- 완료 후 미션에 DONE Emoji를 남기면 Thread에 완료 표기
- 미션 중 이슈로 인해 진행하지 못하는 경우 SOS Emoji를 남기면 Thread에 표기
- 이슈에 Emoji를 남기면 별도 채널로 이동되고, 해당 채널에 이슈 등록
이런 미션의 형태로 진행하니, 임직원들도 게임에 참여하듯이 (미션 클리어! 효과음이 들리시나요?) 즐겁고 적극적으로 진행해 주셨어요. 또한 테스트를 진행하는 동안 이전에 사용하였던 해외증권 서비스의 경험을 비롯한 다양한 의견들을 제시해 주셨어요.
그렇게 통합테스트 기간 동안 약 100개가 넘는 피드백이 등록되었는데요. 👀
전달된 의견들은 실제로 Bug나 결함보다는 사용자로서의 의견에 더 가까운 내용들이 많았어요. 제시해 주신 여러 의견들을 통해 오픈 전 서비스의 사용성 및 품질을 더 높일 수 있었다고 생각해요.
3일이라는 짧다면 짧고 길다면 긴 기간 동안 모두가 즐겁게 테스트에 참여해 주셨어요.
서비스 출시 전, 통합테스트는 어떤 의미였을까요?
임직원 대상으로 진행한 통합테스트는 QA팀에서 QA Plan에 맞게 여러 테스트 Iteration을 수행하고, 개발 Side의 단위 테스트, 성능 테스트가 진행이 되었다 하더라도 우리가 만든 서비스가 만든 의도에 맞게 동작하는지에 대해 미리 임직원 대상으로 실험할 수 있었어요. 우리가 만들었던 기능 중에서 우려했던 부분 역시 다시 드러나면서 개선이 더 필요한 부분에 대해 Maker 들과 공감대 형성에 가장 큰 역할이 되었습니다.
또한, 우리가 사용자에게 의도한 대로 동작하는 부분이 제대로 동작하는지까지 미리 알 수 있었고 그 장치들을 더 효과 있게 바꾸는 계기도 되었어요.
토스증권 QA팀에서는 정량적인 서비스 품질뿐만 아니라, 회사에서 품질을 생각하는 문화에 대해서도 모두가 참여하도록 유도하고 서비스 품질에 대한 정성적인 기준에 대해 다 같이 고민하는 시간을 만들어가는 과정에도 주도적으로 참여해야 한다고 생각합니다.
그래서 bugbash, closed beta testing, 탐색적 테스팅 등과 같이, QA라면 흔히 알고 있는 이런 여러 테스트 방식 중에서 필요한 부분으로 토스증권만의 ‘통합테스트’ 라는 컨셉을 만들었어요. 또한, 임직원 70% 이상이 참여하도록 만들었고 그 결과 또한 성황리에 마무리할 수 있었어요.
이후로 임직원과 함께하는 통합테스트는 토스증권의 QA 문화로 자리매김할 수 있었고, 지금도 큰 서비스가 출시될 때마다 통합테스트를 주기적으로 진행하고 있습니다.