품질활동의 구조와 역할

Dahun Yoo·2021년 4월 30일
0

QA or Test

목록 보기
13/38
post-thumbnail

사실, 많은 분들께서 QA == Test로 생각하시기 쉽지만, 사실 이것은 엄밀히 말하면 틀린개념입니다.
오늘은 전반적인 품질 활동에 대해 기재해보고자 합니다.


ISO 9000

본격적으로 들어가기에 앞서, 이러한 품질에 관한 개념은 사실 오래 전 생산산업에서 적용되던 개념입니다.
ISO 국제표준기구는 품질 매니지먼트 시스템의 기초 및 요구사항 등을 정리하였는데요, 그것이 ISO 9000시리즈 라고 할 수 있습니다.
9000 시리즈는 "모든 제품, 서비스에 있어서, 그리고 모든 공정에서 올바르게 실시되는 품질 매니지먼트 시스템 을 구축하여 운용하기 위한 일련의 규격"입니다.
9000에서는 관련 용어들과 개념들을 정의해놓고 있고, 9001에서, 이러한 품질관리 및 품질보증활동을 충족시키기 위해서는 어떠한 프로세스가 필요한지를 소개합니다.
이번에 기재하는 내용도, 이 ISO 9000에 근거한 개념이기도 합니다.

QC, Quality Control

Product 혹은 Service가 적절한 수준의 품질을 달성하고 있는지 확인하는 활동입니다. 보통 QC가 우리가 흔히 소프트웨어 산업에서 말하는 Test에 해당하며, 검사와 검증( Verification & Validation ) 을 수행합니다만, 좀 더 검증작업이 중심을 이룹니다.

검사와 검증은 헷갈리기는 하지만 같은 개념이 아니다. Boehm은 간단명료하게 차이점을 설명했다.

검사 : 우리가 제품을 올바르게 빌드하고 있나? (이것은 디자인과 코드를 검사하는 정적인 방법이다. 소프트웨어 검사는 인간기반의 문서와 파일의 검사이다.)
검증 : 우리가 올바른 제품을 빌드하고 있나? (이것은 실제 제품을 검사하고 테스트하는 동적인 과정이다. 소프트웨어 검증은 항상 코드실행을 수반한다.)

능력 성숙도 모델(CMMI-SW v1.1)에 따르면,
소프트웨어 검사 : 개발단계의 제품이 단계의 시작부분에서 부과된 조건을 만족시키는지를 결정하기위해 소프트웨어를 평가하는 과정이다.
소프트웨어 검증 : 소프트웨어가 특정 요구조건을 만족시키는가를 결정하기위해 개발과정 중, 또는 끝에 소프트웨어를 평가하는 과정이다.

다시 말해 소프트웨어 검사는 제품이 요구조건과 디자인 사양에 따라 빌드 되었는지를 확실하게 하는 작업인 반면에, 소프트웨어 검증은 제품이 정확하게 사용자의 필요를 충족시키는가와, 사양이 애당초에 올바랐는지를 확실하게 하는 작업이다. 소프트웨어 검사는 ‘올바르게 빌드하고 있는가’를 확인한다. 소프트웨어 검증은 ‘올바른 것을 빌드하고 있는가’를 확인한다. 소프트웨어 검증은 제품이 제공되었을 때 그것의 의도된 용도를 만족하는지를 확인한다.

검사와 타당성 검증

즉 QC단계에서는, 이미 만들어진 결과물이 기획서나 요구사항대로 제대로 만들어졌는지, 고객이 원하는 수준의 품질인지를 확인해보는 것입니다.

QA, Quality Assurance

프로젝트 전체에서 설정한 품질기준을 확실하게 충족하도록 하는 활동입니다.

  • 프로덕트 라이프 사이클에서 정한 특정한 프로세스들이 제대로 준수되고 있는지
  • Coding convention이나 Architecture의 결정
  • 결정한 프로세스 등이 요구사항을 충족하는지를 확인하는 판단, 실시, 감독
  • 발생한 Issue를 어떻게 처리할지, Release 가능 여부를 판단.
  • 커뮤니케이션 체제 구축 등

등을 합니다. 전반적인 SDLC에 관여하며 개발이 제대로 진행되는지 등의 프로세스를 관리합니다.

QA와 QC의 차이점

  • QC : 제품이 만들어지고, 특정 기준 및 품질을 충족하고 있는지를 확인하는 활동을 합니다.
  • QA : 제품이 만들어지기 전, 만들어지는 중에 잠재적 issue를 도출해내여 issue를 예방하는 활동을 합니다.

QA는 제품이 만들어지기 전, 만들어지는 중에 활동을 하기 때문에, QA가 확인하는 대상으로는 주로 회의록, 설계서, 요구사항 정의서 등과 같은 문서들이 많습니다.
QC는 제품이 만들어진 후, 특정 기준을 만족하는지를 확인하기 때문에, 대부분 SDLC의 후반단계 (IT / E2E Test / Acceptance Test)에서 확인을 진행합니다.

QA의 경우 설계서대로 제품이 만들어졌는지도 확인하기 때문에, QC활동은 QA활동의 일부분이라고도 말할 수 있습니다.
(QA Engineer라고 해서 아예 Test를 안하는 것이 아닌 것과 같은 맥락입니다.)

QM, Quality Management

QM은 품질에 관해 프로젝트 전체를 지휘하고, 관리하기 위해 조정하는 일련의 활동들을 QM이라고 합니다. 품질에 관련된 모든 결정이 필요한 것들의 결정 및 실시, 관찰 및 개선활동들을 실시하는, 포괄적인 개념입니다.
QM의 역할을 맡는 것은 보통은 PM(Project / Product Manager)이 담당하게 됩니다.

QA와 QM의 차이점

언뜻보면 QA와 QM의 역할을 비슷하다고도 할 수 있습니다. QA는 좀 더 개발공정에 집중하고, QM의 경우는 개발 공정 이외,컴플라이언스, 마케팅, CS 등의 개발 공정 이외의 부서 및 기타 다른 팀과의 협업 및 Task조율을 담당합니다.


Ref

profile
QA Engineer

0개의 댓글