티스토리 뷰

IT

QA와 테스터의 차이

큐사 2022. 12. 25. 12:33
반응형

QA란?

QA는 "Quality Assurance"의 약칭으로 품질 보증을 의미합니다. 또한 엔지니어로서는 IT 서비스나 소프트웨어 등 작업물의 대한 품질을 보증하는 엔지니어를 가리키는 명칭입니다. QA는 버그가 없는 것만을 보증하는 것이 아니라, 소프트웨어 등에 있어서의 개발 프로세스나 테스트 공정, 테스트 결과의 분석, 고객에게의 서비스 등 결과물에 관련된 모든 품질 보증을 담당합니다.

테스터란?

테스터란 시스템에서 테스트 항목을 실시하고 버그가 있으면 보고하는 업무를 전문으로 합니다. 테스트에는 단위 테스트나 결합 테스트, 종합 테스트와 같은 단계에서 테스트 엔지니어가 작성한 테스트 항목서를 바탕으로 테스트를 실행합니다. 주요 성과는 "버그를 없애는 것"입니다. 시스템 규모가 크면 그만큼 다수의 항목을 검증해야 하고, 도중에 버그가 있었을 경우에는 "재현성"을 정확하게 추적해야 합니다. 버그 수정이 끝나면 다시 테스트합니다. 매우 끈기가 필요한 작업입니다만, 제품으로서 통용하는 품질 레벨까지 올리기 위해서는 절대로 필요한 공정입니다.

QA와 테스터의 작업 내용의 차이

QA와 테스터의 작업 내용을 명확하게 분류할 수 없다는 사람도 있습니다. 그것은 명확하게 업무 내용이 나뉘지 않은 기업도 많기 때문입니다. QA가 주목되기 전에는, 그 대부분을 테스트 엔지니어가 실시하고 있었습니다. 그리고 테스트 엔지니어와 테스터의 차이조차 의식할 수 없는 환경도 많았습니다. QA와 테스터의 작업 내용의 차이를 간단하게 표현하면 다음과 같습니다.

 

  • QA:완성된 상품이 실제의 운용에 견딜 수 있는 품질임을 보증한다
  • 테스터:완성을 목표로 하는 상품의 섬세한 결함을 찾아 피드백한다

차례로, 테스터가 각 공정의 테스트를 실시하고, 버그가 없는 제품을 QA가 실제 운용에 가까운 환경에서 품질을 보증한다는 흐름입니다. 물론, 테스트 설계서의 품질에 관해서도 QA가 감독하고, 테스트 항목의 질도 QA가 담보합니다.

품질보증

품질보증은 소프트웨어와 같은 제품의 품질 보증을 하는 엔지니어를 말합니다. 품질을 보장하기 위해서는 제품이 만들어지는 공정도 잘 감독해야 합니다. 따라서 품질계획이라는 공정에서는 테스트 설계서가 목표로 하는 품질을 달성하기에 적합하다는 것을 보증하는 입장에 있습니다. QA에서 수행하는 테스트는 주로 완성된 제품의 품질을 시험하는 것입니다. 납품하는 고객의 운용 환경과 같은 조건하에서 업무에 따른 테스트를 실시합니다. 그것은 사양대로 작동하거나 내구성이 있거나 보안 수준의 품질을 확인합니다. 각각의 테스트를 거쳐 품질을 보증하는 것이 QA입니다.

테스터는 테스트 케이스 실시

테스터는, 테스트 엔지니어가 작성해, QA가 감독한 테스트 사양서를 바탕으로 만들어진 테스트 케이스를, 항목마다 실시해 갑니다. 그 업무에는, 단체 테스트나 결합 테스트, 종합 테스트 까지가 포함되어, 사양대로의 결과가 되지 않는 버그를 발견했을 경우에 피드백합니다. 테스터는 이들 공정을 반복함으로써 제품의 질을 올려 가는 포지션입니다. 소프트웨어를 포함한 IT 시스템에는 반드시 버그가 있으므로 테스터는 필수적인 존재입니다.

테스터의 업무

테스터의 일로 가장 이미지하기 쉬운 것이 게임 테스터입니다. 게임 테스터의 작업 내용은 릴리스 전의 게임을 실제로 플레이하여 동작 확인이나 버그를 검출하는 것입니다. 그러나 한번 테스트하면 끝이 아니라 수정 후의 재테스트나 릴리스 후의 업데이트 전달이나 패치 적용에 있어서도 게임 테스터의 일이 계속됩니다. 게임이나 소프트웨어의 차이는 있지만, IT 업계에서의 테스터 업무는 대략 같은 흐름이 됩니다. 게임은 매일처럼 출시되기 때문에 그 뒤에서 수많은 게임 테스터가 움직이고 있습니다. 그러나 정규직 엔지니어가 아닌 아르바이트에서의 채용도 많기 때문에 연수입으로는 평균 이하가 되는 경우가 많습니다.

QA의 업무

QA는 단순히 테스트를 하는 사람이라는 이미지가 선행하기 쉽습니다. 그러나 테스트 외에도 게임과 프로그램의 품질을 향상하는 데 많은 역할이 있습니다. 그중 하나가 설명서를 읽는 것입니다. QA의 역할은 버그를 탐지하는 것 외에도 여러 공정에 포함됩니다. 설명서의 내용을 올바르게 이해할 수 없으면, 사양에 반한 동작을 간과할 수 없습니다. 또한 사양서를 작성한 개발자와 밀접하게 커뮤니케이션을 취하여 의문점을 해소하는 것도 중요합니다. QA에게는 묵묵히 주어진 일을 해내는 이미지를 가지고 버리는 경향이 있습니다만, 개발 팀의 일원으로서 능동적인 액션이 요구되는 경우가 많을 것입니다.

품질보증에 필요한 기술

품질 보증은 제품을 세상에 보내는 데 매우 중요합니다. 유저가 제품을 취급했을 때에 퀄리티의 낮음을 느끼면 사용할 수 없다 라고 하는 평가가 됩니다. 또, 단지 평가가 낮을 뿐만 아니라, 그 제품에 관련해 일어나는 보안상의 문제나, 기존 서비스와의 기능 결합에 의한 불편에 연결되어 버릴 가능성도 있습니다. QA는 제품뿐만 아니라 제품을 이용하는 환경도 파악하여 품질에 신경을 써야 합니다. 거기서 요구되는 스킬에는 다음과 같은 것을 들 수 있습니다.

 

  • 유저 시점에 서는 스킬
  • 커뮤니케이션 스킬
  • 프로그래밍에 관한 스킬

유저 시점에 서는 스킬

제품의 품질은 사용하는 사용자가 평가하는 것입니다. QA는 사용자가 사용했을 때 어떤 평가가 되는지를 상정하여 제품의 품질을 제어해야 합니다. 제품이 사양대로 동작하는 것은 대전제입니다만, 사용자의 이용 방법에 따라서는 예상외의 문제가 발생할 수도 있습니다. 사양대로 동작해도 사용자의 행동을 고려할 수 없으면 만족도를 얻을 수 없습니다. 물론 불가능한 작업을 해결한다는 의미는 아닙니다. 그러나 제품의 "취급 방법"을 사용자의 관점에 서서 검증하는 것은 품질 보증의 일환이기도 합니다.

커뮤니케이션 스킬

QA가 수행하는 테스트 중 하나는 완성된 제품을 실제 운영 환경에서 작동하는 것입니다. 이때 사양대로 움직이지 않으면 물론 개발 엔지니어에 대한 피드백이 일어나지만 사용자를 의식한 후 "사용하기 어려움"이나 "품질의 낮음"이 보인 경우에도 어떻게 개선할지 여부를 피드백해야 합니다. 그때 필요한 것은 커뮤니케이션 스킬입니다. 품질을 향상하기 위해 어떤 점을 어떻게 개선하는지를 전달하기 위해서는 엔지니어 간의 커뮤니케이션이 가장 중요합니다.

프로그래밍 기술

품질보증은 프로그래밍 기술도 필요합니다. 실제로 QA가 소스 코드를 쓰는 일은 없지만, 소스를 읽는 것으로 눈치채는 일도 많습니다. 프로그래밍 경험을 풍부하게 가지는 것으로, 프로그램의 편성을 본 것만으로 시스템의 왜곡(버그)이 될 것 같은 부분을 조기 발견 할 수 있는 일도 있을 것입니다. 취약한 부분은 빨리 발견할수록 개발을 효율화할 수 있습니다.

품질보증 관련 자격증

KSTQB 인증 테스트 기술자 자격

KTQB 인정 테스트 기술자 자격은, 세계적인 [ISTQB]와 제휴한 테스트 기술자 자격으로서 인정을 실시하고 있습니다. 테스트 기술력을 향상함으로써 소프트웨어 업계에서 기술력 향상을 목표로 하는 자격시험입니다.

요약

QA와 테스터의 차이는 시스템의 검증 수준의 차이입니다. 또, 테스터가 실시하는 테스트 케이스 자체의 품질도 QA의 관리하에 있다고 해도 과언이 아닐 것입니다. 테스터는 시스템이 완성될 때까지 하나하나의 기능을 검증하고, QA는 그 전체를 감독하면서 완성된 시스템에 대해 보다 실용적인 각도로부터 검증을 하고 품질을 보증합니다. QA라고 하는 포지션을 목표로 하는 경우에는, 테스터나 프로그래머로부터 시작하는 것으로, QA에 최소한 필요한 스킬을 익힐 수 있습니다. QA와 테스터의 차이를 의식해 [QA]를 목표로 하는 것으로, 필요한 시점도 익힐 수 있을 것입니다. 테스터와 QA의 개념은 다르지만, 특정 기업들에서 QA로 채용 시 QA 업무에 테스터의 업무가 포함된 경우가 대다수 이므로, 아직 인식개선의 길은 멀다고 하겠습니다.

반응형

'IT' 카테고리의 다른 글

iOS와 Android의 차이  (0) 2022.12.25
WEB 3.0의 의미  (0) 2022.12.25
NFT의 뜻  (0) 2022.12.24
빅데이터 뜻  (0) 2022.12.24
블록체인의 뜻  (0) 2022.12.24