메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

[부트캠프 QA편] 소프트웨어 품질 관리자의 명칭과 역할 

한빛미디어

|

2024-06-17

|

by 남효진

5,559

소프트웨어 품질 관리자의 명칭과 역할

 

테스팅을 수행하는 포지션에는 각각의 활동과 임무에 따라 여러 단계의 역할로 나눌 수 있습니다. QAQulity Assurance, 테스터Tester, 테스트 엔지니어Test Engineer, 소프트웨어 테스트 엔지니어Software Test Engineer 등 담당하는 직무에 따라 명칭을 달리 사용하고 있습니다. 그러나 이 모두는 ‘품질을 검증하고 관리하는 전문가’를 뜻합니다. 각 역할별로 어떤 활동과 임무를 담당하는지 살펴보겠습니다.

 

테스터

테스터TETest Engineer or Tester는 테스트 리더의 테스팅 수행 계획 지침에 따라 유저의 입장과 개발자의 입장에서 기획·개발 명세서를 바탕으로 테스트 케이스를 설계하고 테스트를 실행하는 역할을 수행합니다. 일부 테스터는 반복된 테스트에 대해 자동화 스크립트를 구현하는 업무를 함께수행하기도 합니다. 하지만 일반적으로 자동화 관련 업무는 별도의 소프트웨어 테스트 엔지니어 전문가 조직으로 구성되어 있습니다. 테스터가 해야 할 역할과 임무는 다음과 같습니다.

 

테스터의 역할

 - 전체 프로젝트를 통제하면서 테스팅 수행 업무를 계획한다.

 - 기획·고객 요구 사항·개발 명세서를 분석하여 테스트 케이스를 작성한다. 확인된 수정 및 개선 의견은 제품관련자에게 전달한다.

 - 테스트 케이스를 작성할 때 많은 케이스를 작성하기보다 테스트 목적을 고려하고 테스트할 제품에서 가장 중요한 요소가 무엇인지 식별하여 작성한다. 그리고 그 속성을 만족시킬 수 있는 시스템의 핵심 역량을 검증하는 데 초점을 두고 작성한다.

 - 다른 인원이 작성한 테스트 케이스에 대한 리뷰를 진행하고 검토한다.

 - 시스템 아키텍처를 분석하고 검토하여 계획한 내용과 설계 간 불일치하는 부분을 확인하고 수정 및 개선 의견을 전달한다.

 - 테스트 실행을 위한 데이터를 준비한다.

 - 테스트 계획과 목적에 맞는 테스트를 수행하며 이슈 및 테스트 결과를 기록하고 보고한다.

 - 테스트 지원 도구를 사용하여 비기능(성능, 네트워크,A PI 등) 테스트를 수행한다.

 - 결함 발견 시 보고하고 종료할 때까지 이슈를 추적하고 관리한다.

 - 테스트 진행 중 해결이 어려운 문제에 직면하면 테스트 리더에게 보고한다.

테스트 리더

테스트 리더TLTest engineer Leader는 QA 조직과 테스트 조직이 서로 독립적일 때 테스터들을 관리하고 테스트 활동 계획 및 수행 상황을 체크하고 보고하는 역할을 합니다. 테스트 리더가 해야 할 역할과 임무는 다음과 같습니다.

 

테스트 리더의 역할

 - 테스터 관리 및 테스트 투입 리소스를 산정한다.

 - 테스트 계획을 수립하고, QA와 합의 및 조정한다.

 - 테스트 산출물(테스트 케이스, 결함, 결과 보고서)에 대한 점검 및 검토를 통한 보완을 요청한다.

 - 테스트 결과 및 데이터를 기반으로 결함을 분석하고 문서화하여 보고한다. 테스트 리더가 작성한 분석 결과는 전체 제품에 영향을 미치는 수준이어야 한다.

 - 테스트 수행 일정 내 목표 달성을 위해 테스팅 활동을 지원하고 관리한다.

 - 테스트 진행 중 발생한 이슈를 해결한다. 만약 해결이 어려운 경우Q A에게 보고한다.

 

QA

QAQuality Assurance는 일반적으로 QCQuality Control와 QMQuality Management의 역할을 포함합니다. QA는 제품 또는 서비스가 필요한 수준 이상의 품질을 달성했는지 평가합니다(QC). 그리고 제품이 품질 요구 사항을 충족한다는 확신을 제공하고 이를 보장하기 위해 품질 관련 프로세스 및 절차를 정의하고 개선합니다(QA). 아울러 품질 목표를 달성하기 위한 품질 검증 활동을 계획하고 실행하여 최종적으로 품질을 판단하는 시스템을 보장하는 업무를 수행합니다(QM). QA가 해야 할 역할과 임무를 정리하면 다음과 같습니다.

 

QA의 역할

 - 품질 검증 활동 계획을 수립하고 프로젝트 관련자와 합의하고 조정한다.

 - 품질 관련 프로세스, 기준, 절차를 정의하고 개선한다.

 - 테스트 활동을 모니터링하고 제어하는 역할을 수행하며 진행 중 발생하는 문제 상황을 조정하고 보완한다.

 - 테스팅 전략, 품질 특성(기능성, 효율성, 신뢰성 등), 리스크 요소, 테스트 범위, 품질 목표 수준을 수립하여 테

스트 리더에게 전달한다.

 - 테스트 프로세스 생명주기 진행 과정을 점검하고 주도한다.

 - 형상 관리 활동을 주도한다.

 - 품질 달성 평가, 테스트 진척 상황 측정, 테스트 활동 품질 측정을 위한 메트릭Metric을 도입한다.

 - 테스트 범위에 따른 테스트 지원 도구를 선정한다.

 - 테스트 환경을 구축한다.

 - 프로젝트 관련자, 테스트 수행 인원을 대상으로 품질 검증에 필요한 가이드 및 교육을 진행한다.

 - 품질에 대한 최종적인 판단 및 개선을 수행한다.

 - 프로젝트 진행 상황을 공유한다(일정 지연, 품질 이슈에 대한 경고 사항 전달 등).

 - 테스터의 모든 역할을 기본으로 수행한다.

 

소프트웨어 테스트 엔지니어

소프트웨어 테스트 엔지니어SET, Software Engineer in Test 또는 SDET Software Development Engineer in Test는 품질 보증 관련 조직 내 테스트와 관련된 개발 활동을 수행하는 전문가 조직입니다. 조직이 세분화되어 있는 경우 화이트박스 테스팅, 자동화, 시스템 성능 측정, 테스트 조직에서 사용하는 운영도구 또는 품질 관리 시스템Quality Management System 등의 프로그램을 개발하는 조직으로 운영됩니다. 소프트웨어 테스트 엔지니어는 ‘개발자’지만, 소프트웨어 엔지니어와의 차이점은 시스템 또는 소프트웨어 아티팩트Software Artifact에 초점을 둔 품질 검증 및 향상과 테스트 효율화를 목표로 품질에 관련한 서비스 개발을 수행하고 테스트 기능을 제공한다는 점입니다.

 

소프트웨어 테스트 엔지니어가 해야 할 역할과 임무를 정리하면 다음과 같습니다.

 

소프트웨어 테스트 엔지니어의 역할

 - 모듈 및 기능 레벨의 코드 테스팅을 수행한다.

 - 소프트웨어의 테스트 가능성Testability을 개선하기 위한 코드 품질을 검증한다.

 - 단위 테스트가 가능하도록 코드의 구조를 조정하고 프레임워크를 작성해 자동화한다.

 - 반복된 기능 테스트의 효율화를 위해 자동화를 설계하고 구현한다.

 - 컴포넌트나 시스템 성능을 측정하고 개선 또는 시정 사항에 대한 의견을 전달한다.

 - 품질 관리 시스템 등 품질 관리를 위한 소프트웨어를 개발한다

 

역할에 따른 명칭은 전문가마다 견해가 다릅니다. 누군가는 테스터나 QA가 같은 직무를 수행하는 사람이니 무엇으로 불리든 상관없다고 하고, 누군가는 테스트 인프라스트럭처Test Infrastructure에 중점을 두고 소프트웨어 테스트 엔지니어로 부르는 것이 맞다고 주장합니다. 또, QA는 소프트웨어를 테스트하지 않고 프로세스의 품질을 검증하는 역할자로 테스터와 구분하여 불러야 한다는 견해도 있죠. 이건 각자의 견해에 따라 정의와 주장이 달라질 수 있어서 이에 대한 판단은 여러분에게 맡기겠습니다.

 

다만 담당하는 활동과 임무에 따라 명칭을 분류하며 본인의 역할을 현재 하는 활동에 제한하지 않아야 한다는 것입니다. 스스로 직무상의 한계를 정하고 업무 범위를 넘어가지 않으려는 태도를 취하지 말아야 합니다. 품질을 검증하고 관리하는 직무를 담당하는 전문가로서 모든 활동과 임무를 아우를 수 있는 수준에 이를 때까지 도전과 성장을 도모해야 합니다. 결국 자기 개발하는 것을 멈추지 않는 것이 중요하다는 것을 말하고 싶습니다.

 

실무에서도 이런 경우를 접할 기회가 많습니다. 특히 직무에 따라 조직별로 계급이 구분되어 있는 회사의 경우(예: QA는 본사로, 테스터는 지사로 조직이 구분되어 있는 경우) 테스트 케이스를 작성하고 실행하며 결함을 보고하는 역할은 테스터가, 테스터를 관리하고 품질 상태를 평가하고 프로세스 준수를 심사하는 역할은 QA로 임무가 나뉘어 있습니다. QA는 테스터가 QA의 역할을 침범하는 것을 허용하지 않고 테스터는 스스로 본인의 활동을 테스트 케이스를 작성하고 수행하는 것에 제한하고 그 이상의 품질 관리는 고려하지 않으려는 것을 볼 수 있습니다.

 

직무의 범위가 명확히 구분되어 있는 경우 품질을 확보하고 향상하기 위한 노력에도 어느 정도 직무상 제동이 걸리는 것은 불가피합니다. 테스트를 직접 수행하는 테스터가 표면상 경험되는 프로세스의 문제점을 QA는 모르고 지나칠 수 있습니다. 이런 상황에서 일부 테스터는 본인의 직무 범위를 넘어서는 역할은 무시하거나 또는 개선하려는 시도를 포기합니다. 또는 개선 방향에 대한 의견을 적극 제시해보지만 QA에 의해 의견이 묵살되어 버리는 경우가 발생하기도 합니다.

 

이와 같은 방식은 개인의 성장, 조직의 성과, 프로젝트의 성공, 제품의 품질 향상 모두에 도움이 되지 않습니다. 개인의 능력이 성장하면 조직의 성과에 밑거름이 되고 조직의 성장은 관리하는 제품의 품질에도 영향을 미치기 때문입니다. 직무의 범위를 구분하기보다 인원이 보유한 역량과 수준에 맞추어 단계적으로 임무를 쌓아 올라가는 방식으로 운영된다면 보다 긍정적인 효과를 기대할 수 있을 것입니다. 전문성, 기술, 경험, 역량을 하나씩 쌓아 올려 소프트웨어 테스트 전문가가 될 때까지 지속적으로 성장하기 위한 노력이 필요합니다.

 


요즘 소프트웨어 개발 현장에서는 QA의 중요성이 점점 더 커지고 있어요. 제품의 품질을 높이려면 체계적인 테스트가 필수라고 하죠. 하지만 QA에 대한 교육 기회가 많지 않아서 많은 분들이 어려움을 겪고 계시더라고요. 바로 그런 분들을 위해 이 책이 나왔습니다!

 

책을 집필하신 분은 무려 17년 차 베테랑 QA 전문가셔서 엄청난 경험과 노하우를 쏟아부으셨답니다. 테스팅의 기본 개념부터 최신 기법까지, QA를 위한 로드맵을 친절하게 안내해주시죠. 그리고 실무에서 바로 써먹을 수 있는 실습 과정도 담겨 있어요.

 

이론만 배우는 게 아니라 실전에 투입될 수 있도록 책이 잘 구성되어 있습니다. 테스트 설계에서 프로세스, 예외 케이스까지 QA 전 과정을 꼭꼭 파헤치고, 버전 관리 등 개발 현장에서 꼭 알아야 할 내용도 빼놓지 않았죠. QA 입문자분들은 물론이고 경력자분들께도 유용한 내용들로 가득할 거예요.

 

여러분, 요즘 개발 현장에서는 애자일 방식 도입과 함께 개발-테스트 프로세스가 많이 바뀌고 있잖아요? 개발자분들도 테스트 주도 개발(TDD) 등 적극적인 테스팅 참여가 요구되고 있답니다. 이 책을 통해 QA에 대한 이해를 넓혀보시면 좋을 것 같네요.

아직 QA로의 진로를 고민 중이신 분들도 이 책을 보시면 QA 직무에 대한 명확한 그림을 그리실 수 있을 거예요.

 

QA에 대한 모든 것, <부트캠프 QA 편>에서 한번에 얻으실 수 있답니다. 지금 바로 개인 역량 향상의 기회를 잡아보시는 건 어떨까요?

 

도서구매 교보문고 / 예스24 / 알라딘

댓글 입력
자료실

최근 본 상품0