https://www.geekly.co.jp/column/cat-position/1907_004/
IT서비스에 대에서 높은 품질이 요구되고 있습이다. 소프트웨어의 품질이라고 하면, 버그를 없애기 위해 테스터가 활약하고 있었지만, 보안 등도 포함한 전체적인 품질 보증이 필요하게 되었습니다. 그리고 지금 QA이 주목 받고 있습니다. 그래서 이번에는 QA와 테스터의 차이를 일의 내용이나 스킬이라는 관점에서 해설합니다.
- 품질 보증(Quality Assurance)이란?
QA는 Quality Assurance 의 약자로, 품질 보증을 의미합니다. 또 엔지니어는 IT서비스나 소프트웨어와 같은 성과물의 품질을 보증하는 엔지니어을 가리키는 명칭입니다.
QA는 버그가 없는 것을 보증하는 것이 아니라, 소프트웨어 등의 개발 프로세스나 테스트 공정, 테스트 결과의 분석, 고객 서비스 등 성과물에 관련된 모든 품질 보증을 맡습니다.
다만 사내 엔지니어 포지션으로 분명히'QA'라는 명칭을 보이는 기업은 적을지도 모릅니다. 테스터 엔지니어라는 직종이 QA의 업무를 포함하는 경우도 있기 때문입니다. 이것이 QA와 테스터의 차이가 무엇인지 분명히 인식되지 않는 원인이 되고 있습니다.
QA의 중요성이 인식되어 온 것도 최근이니, 구인글 에서도에서도 QA라는 명칭이 사용되지 않은 경우도 많은 것이 아닐까요?
그 경우는 "테스터 엔지니어"이나 "품질 관리"라는 문장에서 검색함으로써 QA의 업무를 포함한 직종을 찾을 수 있을 것입니다.
- 테스터(Tester)란?
테스터는 시스템의 테스트 항목을 실시하고 버그가 있으면 보고하는 업무을 전문으로 합니다.
테스트에는 통합 테스트, 단위 테스트, 인수 테스트등와 같은 단계에서 테스트 엔지니어가 작성한 테스트 항목서를 토대로 테스트를 실행합니다.
주요 성과는 "버그를 없애기"입니다. 시스템 규모가 크면 그만큼 다수의 항목을 검증해야 하고 도중에 버그가 있었을 경우에는 "재현성"을 정확히 추적해야 합니다. 버그의 처리가 끝나면 다시 시험을 실시합니다.
매우 끈기가 필요한 작업입니다만, 제품으로서 통용되는 품질 수준까지 올리기 위해서는 절대로 필요한 공정입니다.
- QA와 테스터의 일의 내용에 대한 차이
QA와 테스터의 일의 내용이 명확히 분류할 수 없다는 사람도 있습니다. 그것은 분명히 업무 내용이 나눠지지 않는 기업도 많기 때문입니다.
QA가 주목되기 전, 대부분은 테스트 엔지니어가 (일) 하고 있었습니다. 그리고 테스트 엔지니어와 테스터의 차이도 의식할 수 없는 환경도 많았습니다.
QA와 테스터가 일하는 내용의 차이를 쉽게 표현하면 다음과 같습니다.
· QA : 완성한 상품이 실제 운영시 견딜 수 있는 품질이다 라는 걸 보증한다.
· 테스터 : 완성을 향해가는 상품의 상세한 오류를 찾고 피드백한다.
순서로서는 테스터가 각 공정의 테스트를 실시하고, 버그 없는 제품을 QA가 실제 운영에 가까운 환경에서 품질을 보증한다는 흐름입니다. 물론, 테스트 설계서의 품질을 QA가 감독하고 테스트 항목의 질도 QA가 담보합니다.
- QA는 품질 보증
QA는 소프트웨어 등의 제품 품질을 보증하는 엔지니어을 가리킵니다. 품질을 보증하기 위해서는 제품이 만들어지는 공정도 제대로 감독할 필요가 있습니다.
품질 계획이라는 공정에서 테스트 설계서가 목표로 하는 품질을 달성하기 위해서 적합한지 보증 해야 합니다.
QA에서 수행하는 테스트는 주로 완성된 제품의 "품질"을 시험하는 것입니다. 납품하는 고객의 운영 환경과 같은 조건하에서 업무에 따른 시험을 실시합니다. 그것은, 사양을 그대로 따른 동작이거나 내구성이거나 혹은 보안 수준의 품질을 확인합니다.
각각의 테스트를 거치고, 품질을 보증하는 것이 QA입니다.
- 테스터는 테스트 케이스를 실시
테스터는 테스트 엔지니어가 작성하고 QA가 감독한 테스트 사양서를 바탕으로 만들어진 테스트 케이스를 항목별로 실시입니다.
그 업무는 통합 테스트, 단위 테스트, 인수 테스트까지 포함되어 사양대로 결과대로 발생하지 않는 버그를 발견한 경우에 피드백합니다.
테스터는 그 공정을 되풀이함으로써 제품의 질을 끌어올릴 포지션입니다.
소프트웨어를 포함 IT시스템에는 반드시 버그가 있으니 테스터는 필요 불가결한 존재입니다.
- 테스터의 구체적인 업무 내용
여기까지 테스터란 무엇인가 하는 점에 대해서 해설했습니다.
그러나 QA와 비슷하게 디버거와 혼동되기 쉬운 것이 테스터의 일입니다.
이제 디버거의 차이도 포함한 테스터의 구체적인 업무 내용을 해설합니다.
- 테스터와 디버거의 차이
테스터와 디버거의 차이를 이해하려면 먼저 시험과 디버깅이 다른 작업임을 이해할 필요가 있습니다.
테스트는 소프트웨어가 사양대로 움직이고 있는지, 품질을 충족시키느냐를 시험하는 것입니다. 한편, 디버깅은 테스트에서 검출된 오류의 원인을 알고 대상 프로그램을 수정하는 작업까지를 포함합니다.
많은 경우 디버깅은 개발 담당자, 테스트는 테스트 담당자와 역할 분담이 됐으며 디버거는 개발자의 일원이라는 것이 많습니다.
- 테스터는 구체적으로 무엇을 하는가
테스터의 일로 가장 이미지화하기 쉬운 것이 게임 테스터입니다. 게임 테스터의 일 내용은 릴리스 전의 게임을 실제로 플레이하고, 동작 확인이나 버그의 검출을 하는 일입니다.
그러나 한번 테스트하면 그것으로 끝이 아니라 수정 후 재 테스트 및 출시 후의 업데이트 배포나 패치 적용에 대해서도 게임 테스터의 일이 계속됩니다.
게임이나 소프트웨어의 차이는 있지만 IT업계에서 테스터 업무는 대체로 같은 흐름이 됩니다. 게임은 매일같이 발표하고 있으므로, 그 뒤에서 수많은 게임 테스터가 움직이고 있습니다.
그러나 정규직의 엔지니어가 아닌 아르바이트로 채용도 많아 연봉은 평균 이하가 되는 것이 많습니다.
- 테스터의 일은 테스트뿐 아니라
게임 테스터의 예에서 테스터는 단지 테스트를 하는 사람이라는 이미지가 선행되기 쉽습니다. 그러나 테스트 이외에도 게임이나 프로그램의 품질을 높이기 위해서 수많은 역할을 가지고 있습니다.
그 하나가 사양서의 읽기입니다. 테스터의 주요 역할은 오류를 검출하는 것이지만 사양과 다른 움직임을 하는 프로그램을 찾는 것도 요구됩니다.
그 때, 사양서의 내용을 제대로 이해하지 않으면 사양에 어긋나는 동작을 파악할 수 없습니다. 또, 사양서를 작성한 개발자와 긴밀하게 커뮤니케이션을 취하고, 의문점을 해소하는 것도 중요합니다.
테스터는 묵묵히 주어진 일을 해내는 이미지를 갖고 버리기 쉽상입니다만, 개발 팀의 일원으로 능동적인 액션을 요구하는 일이 많지요.
- QA에 요구되는 스킬
품질 보증은 제품을 세상에 내보내는 데 매우 중요합니다.
사용자가 제품을 취급했을 때에 품질의 낮음을 느낀다면"못 쓴다"라는 평가옵니다. 또 그냥 평가가 낮을 뿐만 아니라 그 제품에 관련하며 일어난 보안 상의 문제나 기존 서비스와 기능 경쟁에 의한 오류로 이어질 가능성도 있습니다.
QA는 제품뿐 아니라 제품을 이용하는 환경도 파악하고 품질에 신경을 써야 됩니다. 거기서 요구되는 기술에는 다음과 같은 것을 들 수 있습니다.
·이용자(유저) 관점에서 바라보는 스킬
·커뮤니케이션 스킬
·프로그래밍에 관한 스킬
의 3개를 들 수 있습니다.
1) 이용자(유저) 관점에서 바라보는 스킬
제품의 품질은 이용자(유저)가 평가하는 것입니다. QA는 유저가 사용한 때에 어떤 평가가 되는지를 상정하고, 제품의 품질을 통제 해야 합니다.
제품이 사양대로 동작하는 것은 대전제지만 사용자의 이용 방법에 따라서는 예상 밖의 오퍼레이션이 발생하기도 하겠지요.
사양대로 동작이라도 이용자의 행동이 고려하지 않으면 만족도는 얻을 수 없습니다. 물론 불가능한 오퍼레이션을 해결한다는 의미가 아닙니다. 그러나 제품의 "취급 방법"을 사용자의 시점에 서서 검증하는것은 품질 보증의 한 부분입니다.
2) 커뮤니케이션 스킬
QA가 수행하는 테스트 중 하나는 완성된 제품을 실제 동작 환경에서 운영하는게 있습니다. 이때 사양대로 움직이지 않으면 물론 개발 엔지니어에 대한 피드백이 일어나지만, 유저를 의식한 "사용하기 어려움" 이나 "품질이 낮은 "점 이 발견될 경우에도 어떻게 개선하느냐를 피드백해야 합니다.
그 때에 필요한 것은, 커뮤니케이션 스킬입니다. 품질을 향상시키기 위해서"어떤 점을 어떻게 개선" 하는지를 알리려면 엔지니어들의 커뮤니케이션이 가장 중요합니다.
3) 프로그래밍 기술
QA는 프로그래밍 기술도 필요합니다. 실제로 QA가 소스 코드를 작성하는 일보단, 소스를 읽는 일도 많습니다.
프로그래밍의 경험을 풍부하게 가짐으로써 프로그램의 반을 본 것만으로 시스템의 변형(버그)가 될 만한 부분을 조기 발견할 수 있습니다. 취약한 부분을 빨리 발견할 만큼, 개발을 효율화 할 수 있습니다.
QA엔지니어가 취득하고 싶은 자격?. 여기에서는 대표적인 3개 자격을 소개합니다.
ISTQB인증 시험 기술자 자격
테스트 기술력을 향상시킴으로써 소프트웨어 업계의 기술력 향상을 목표로 하고 있는 자격 시험입니다.
(한국케이스 찾아서 추가하겠습니다)
정리
QA와 테스터의 차이는 시스템 검증 차원의 차이입니다. 또 테스터가 수행하는 테스트 케이스 자체의 품질도 QA의 관리 아래 있다고 해도 과언이 아니겠죠.
테스터는 시스템이 완성되기까지 하나하나의 기능을 검증하고 QA는 그것들 전체를 감독하면서, 완성한 시스템에 대해서 보다 실천적인 각도에서 검증하는 품질을 보증 하는 것입니다.
'공부하며 번역하기' 카테고리의 다른 글
테스트와 심리 (0) | 2023.06.21 |
---|---|
[번역] 소프트웨어 테스팅은 35세까지 할 수 없다? (0) | 2022.03.03 |
[번역]Software Tester를 위한 온라인 포트폴리오 만들기 (0) | 2022.01.24 |