Software QA가 하는 일?
QA가 뭔가요? QnA (Question and Answer)세션 처럼 질문과 답변하는 거 아닌가요?
구글에서 QA로 검색 시 첫 번째 페이지에 나오는 QA와 QnA, 아마도 현업에 계신 분들이 아니라면 비슷한 반응일 거라 예상해 봅니다.
임베디드 S/W 개발을 전공하고 펌웨어 개발을 조금 하다가 당시 프로젝트의 버그로 인해 고생했던 일과 그 일이 주는 아니었지만 어찌되었든 회사가 문을 닫게 된 후 QA(그 당시 Test engineer)로 전향한지 10년이 넘은 지금까지도 개발 프로세스에서 QA 조직 및 역할은 명확하지 않거나 그때 그때 다른 것 같습니다.
지금까지 경험한 것들을 큰 것들만 나열해 보자면 대략 아래와 같습니다.
- QA = QE (Quality Engineering) + TE (Test Engineering) 조직으로 나뉘어 QE는 품질을 높이기 위한 목표 및 평가 기준을 마련하고 TE는 마련된 기준을 만족하는지 검증하는 업무
- 산업 품질 기준서 기반의 테스트 (자동 + 수동 테스트)에 포커스가 맞추어져 있는 QA
- QA = QM (Quality Managing) + QA (Quality Analyzing) + SE (Software Engineering) + TE (Test Engineering) 조직으로 QM은 품질을 평가관리하고 QA는 품질 평가 세부 항목을 분석하고 SE는 품질 평가를 위한 도구 및 자동화 환경을 만들고 TE는 평가 방법 마련 및 평가하는 업무
- QA = QE (Quality Engineering) + Dev QA + Core QA 조직으로 QE는 품질 평가 도구 및 자동화 환경을 만들고 Dev QA는 개발 프로세스 처음부터 통합 테스트 직후까지 Defect을 예방하고 방지하는 업무를 Core QA는 통합 테스트 이후 모든 개발 완료된 제품을 출시 전 평가하는 업무
위 처럼 공통적으로는 제품의 품질(Q) 향상에 목표를 두고는 있지만 세부 업무는 약간 혹은 많이 상이하다고 할 수 있습니다. 제가 경험했던 위 업무들은 사실 어느정도 QA 프로세스가 잘 잡혀있다고 하는 회사들 (몇몇은 외국계회사 특히나 한국 오피스가 아닌 본사의 프로세스)의 경험이어서 국내의 환경과는 차이가 있을 수도 있습니다. 하지만 우리의 삶이 그러하듯, 아무리 좋은 나라 혹은 회사의 프로세스를 가지고 온들 해당 프로세스를 이용하는 회사, 사람에게 맞지 않는 다면 그건 결코 좋은 프로세스라고 말할 수 없을 것 입니다.
하여 앞으로 QA에 대한 세부 프로세스와 업무들을 소개 및 분석해 보면서 QA의 역할에 대해서 저 역시도 조금더 고민해 보는 시간을 가져보려 합니다.
너무 뻔한 것일 수도 있지만 궁극적으로 Software QA가 하는 일은 높은 품질의 제품을 알맞은 시기에 알맞은 유저들에게 출시하고 계속해서 유저들의 만족도를 높이기 위한 활동을 통해 각각의 주어진 환경에 최적화 된 프로세스를 마련해 나가는 것이 아닐까 생각해 봤습니다.