QA? 그게 뭐에요? 먹는건가요?

안녕하세요. 딜라이트룸의 품질개선팀을 담당하고 있는 Lloyd입니다. 저희 회사는 “세상 사람들의 아침잠을 효과적으로 깨워주자!” 라는 목표로 현재 알람앱 Alarmy를 개발, 서비스 하고 있습니다.
단순히 약속 해놓은 시간을 정확한 시간에 사용자에게 알려주는 알람기능이 뭐가 어려운일이냐고 생각하는 사람들도 있겠지만, 여기에는 기술적으로 흥미로운 사실들이 존재하고 있으며 각자 다른 특성을 가지고 있는 스마트폰 기기에서 정확하게 알람을 울리게 하기 위해 풀어 나가야할 문제들이 아직 많이 남아 있습니다.
이 글을 통해서는 현재 딜라이트룸이 알라미앱을 통해 사용자에게 최상의 경험을 주기위해 노력하는 부분들을 QA(Quality Assurance) 및 QC(Quality Control) 관점에서 이야기해보고자 합니다.
# 안드로이드 OS를 사용하는 스마트폰들은 얼마나 될까?
많다….. 너무 많다…!!
우리는 이렇게 다양한 스마트폰에서 알라미가 알려주는 모든 알람이 제 시간에 울리도록 만들고 싶은 꿈을 가지고 있습니다. 다행히도 이렇게 수많은 종류의 디바이스들은 모두 독립적인 존재들이 아닌, 안드로이드라는 공통의 OS를 기반으로 하고 있습니다. (iOS는 또 다른 문제..) 그렇게 때문에 우리는 주로 제조사별로 테스트 디바이스들을 구비하여 기능 문제가 발견되었을때 문제 재연이 다양한 환경에서 이루어질수 있도록 노력하고 있습니다. Google Play Store 통계 기준, 현재 전세계 14,936개의 종류의 디바이스에 Alarmy가 설치되어있고 사용자들의 기분좋은 아침을 만드는데에 도움을 주고 있습니다 :)
물론 이러한 제조사별 테스트 디바이스 분류를 통해서도 잡아낼 수 없는 문제들이 존재합니다. 같은 제조사를 통해 출시된 스마트폰이라도 출시되는 지역에 따라 다른 하드웨어 칩셋을 사용하는 경우, 특정 제조사의 Customized-ROM의 버전에 따라 알람이 비정상 작동하는 경우, Firmware 자체적으로 알람이 울리는 권한을 설정할 수 없게 만드는 경우 등의 문제들이 이에 해당됩니다.
# QA는 통합테스트만 잘하면 된다?
QA 프로세스에 있어 개발팀과의 소통 및 협력은 제품의 질을 결정할 수 있는 중요한 포인트라고 할 수 있습니다. 만약 원인을 알 수 없는 문제들이 사용자 피드백 또는 QA 진행 중에 발견되고 개발팀에게 단순히 문제가 발생했다는 사실만을 전달한다면, 모든 개발자가 이렇게 생각할 것입니다.
‘구글은 소프트웨어를 어떻게 테스트하는가’ 라는 책에서는 이처럼 개발을 담당하고 있는 개발팀과 테스트를 진행하는 팀이 분리되어 있을 때 발생할 수 있는 문제에 대해 설명하면서 QA프로세스의 중요 업무는 결함을 찾아내는 일 뿐만 아니라 제품의 생산성을 향상 시키고, 개발을 진행하면서 간혹 놓칠 수 있는 부분들을 체크하며 이후에 재작업이 늘어나는 것을 예방하는 활동이라는 것을 강조하고 있습니다.
“품질과 테스트가 동치는 아니다. 하지만 품질을 이루기 위해서는 개발과 테스팅을 믹서기에 함께 넣고 구분되지 않을 정도로 섞어야 한다.”
— James Whittaker -
실제로 많은 소프트웨어 회사에서 과거에 테스트를 진행할 때 테스팅의 개념을 기존 제조업에서 말하는 품질관리로 생각하면서 개발과 테스트를 분리하여 제품을 관리하는 경우가 많았습니다. 이 경우 대부분 간단한 테스트로 수정하고 고쳐질 수 있는 부분들이 개발팀의 시스템의 통합을 거쳐 테스트팀에게 넘겨지고 테스터는 기존에 작성되어있던 테스트 케이스를 매번 다시 실행하면서 결함을 찾는 과정을 진행하게 되는데, 이로 인한 재작업의 비용과 시간의 손실이 너무나도 크다는 것을 깨닫고 전산지식과 코딩실력이 있는 테스터들을 찾기 시작하였습니다.
우리 회사에서는 QA 프로세스를 진행하는것이 단순히 제품의 기능 테스트만을 진행하는 것이라고 생각하지 않습니다. QA 프로세스란 사용자 중심의 마인드와 전산학적 지식을 가지고 회사가 가지고 있는 목적과 목표에 벗어나지 않으면서 사용자에게 최고의 경험을 제공하기 위해 노력하는 활동이며, 이러한 활동들 중에 테스트라는 것이 있을 뿐입니다. 또한 제품에 포함되는 기능이 추가될때 처음 단계인 요구사항 정의부터 마지막인 테스트까지 전 개발 과정에 관여하면서 사용자의 입장, 기술적 관점에서 모두 신경을 써야하는 과정입니다.
# 최고의 QA 프로세스는 무엇 일까?
QA팀의 업무는 개발 조직이 좋은 프로세스를 찾아 회사에 정립할 수 있도록 돕는 활동을 포함하고 있습니다. 최고의 QA 프로세스란 단순히 잘나가는 기업들의 프로세스를 그대로 가져와 따라하는 것이 아니라 기준이 될만한 방법론과 프로세스라는 밑그림에 우리들의 경험으로 만들어진 패턴으로 색을 채우는 과정이라고 생각합니다. 남들이 실수를 거듭하면서 바꿔온 결과를 어느날 갑자기 우리에게 가져와 흉내낸다고 한들 제대로 활용될 수가 없을 것이라고 생각하기 때문입니다.
실제로 우리 회사에서는 매번 릴리즈 관련 일정이나 과정에 있어 구성원들의 동의아래 새로 추가되거나 기존에 있던 과정들이 수정되는 경우가 상당히 많습니다. 이는 앞서 말했듯이 우리들만의 색깔 즉, 패턴을 찾기위한 노력이며 QA팀과 개발팀이 YouTrack, Github, Coda 등의 BTS(Bug Tracking System)를 통해서 소스코드 관리, 이슈 관리, 빌드, 프로젝트 관리 등을 진행하며 최적의 QA 프로세스를 찾기 위해서 끊임없이 노력하고 있습니다.
# 마치며
일반적으로 사람들은 QA 과정을 단순히 통합 테스트를 진행하면서 버그를 잡아내는 일이라 생각하는 것이 대부분입니다. 하지만 제대로 디자인된 QA 프로세스는 버그 확인 뿐만 아니라 사용성 및 시스템 개선을 통해 고객 접점을 직접적으로 관리하는 기능을 포함하고 있으며 나아가 품질에도 직접적으로 영향을 끼칠 수 있는 분야입니다. 사실 회사에서 품질개선을 담당하고 있는 저에게도 알라미의 더 나은 모습을 위해 어떻게 해야, 어떤 방법을 선택해야 좋을것인지 확신은 못하고 있지만 계속해서 더 나은 방법을 생각하고 개선의 가능성이 있다면 기존의 방법을 바꾸는데에 서슴치 않을 것입니다.
하나의 작품을 만들기 위해 각각 다른 모양의 퍼즐 조각을 맞추어 나가는 과정과 같은 재미… 그것이 QA 프로세스의 매력이 아닐까요 ?
# We’re hiring
딜라이트룸은 현재 채용중!!
- 다른 엔지니어들은 하지않는 특별한 테스트를 진행하는데에 관심있는 분!
- 본인의 제품에 대한 노력이 사용자들에게 직적접으로 영향을 끼치는 경험을 해보고 싶은 분 !
- QA 프로세스의 새로운 패러다임을 제시하는데에 관심있는 분 !
여러분의 많은 참여를 기다립니다 :)
딜라이트룸에 대해 더 자세히 알아보기 >>>>> Click <<<<<<