본문 바로가기

소프트웨어 품질 보증에 대하여 , QA와 QC(Testing)의 차이

하이지스 발행일 : 2021-11-14

 

기존 포스팅 : https://jislog.net/13?category=854150 

테스터와 QA에 대한 차이는 기존에 정리를 했었는데 간단하게 다시 정리를 하려고 한다.

 

SQA(Sofrware Quality Assurance)의 개요

사전에 기획된 요구사항과 개발완료된 SW 제품과의 일치성 확인작업과 검증 중 발생한 이슈로 인해 생길 수 있는 비용적 문제를 산출하고 제품에 대한 안정성과 요구사항에 대해 만족하는지 품질을 보증하는 과정을 의미한다.

 

단순하게 테스트 위주의 검증 업무는 QA( Quality Assurance) 가 아니라 QC(Quaulity Control)에 해당하고

QA안에 테스트가 포함되어 있을 뿐, QA=테스트야 라고 절대로 오인해서는 안된다.

 

자 그러면 보증은 무엇일까?

 

보증이란 (ISO9001 표준에 따름)

보증은 조직 경영진에 의해 제공되며 결과에 대한 확신을 얻는 제품에 대해 긍정적인 선언을하는 것을 의미합니다. 제품이 기대나 요청에 따라 결함없이 작동 할 것이라는 보증을 의미한다.

 

QC는 Quaulity Control, Quaulity Check로 많이 불리는데

품질관리로 직역을 하는데 말그대로 제품에 대한 품질을 관리하는 것으로써 계획된 대로 제품이 개발이 되었는지 확인를 하고

기능은 정상적으로 동작을 하는지, 동작을 하지 않는다면 이 기능이 동작하지 않습니다 라고 보고를 하는 작업을 Test를 진행하고 리포팅하는 업무까지가 QC다 사실 QC는 하드웨어 생산 공정에서 많이 쓰이고 SW에서는 Test또는 검증(Inspect)라고 한다.

성적서 또는 명세서, 기획서에 맞쳐서 개발이 되었는지 체크리스트, 테스트를 검수를 진행을 한다.

 

QA와 QC는 소프트웨어를 포함하여 많은 분야에서 쓰고 있으므로 소프트웨어 QA와 의료기기 QA 제약 QA를 같은 용어로 보면 안된다

각각의 분야의 업무가 다르고 표준도 다르다.

 

SQA는 소프트웨어에서 기반한 품질 보증 업무이다 소프트웨어 QA인데 의료기기 품질 인허가를 한다면 그것은 의료기기 QA에 가깝다고 할 수 있다.

 

QA도 QC업무를 진행하는 경우가 많기 때문에 Test Engineer를 QA Engineer로 오해 하는 경우가 생긴다.

한마디로 간단하게 정의를 내리면 간단하다

Test Engineer (QC) 는 결함발견을 중점

QA Engineer는 결함발견 후 사후 관리에 있어 재발되지 않도록 방안을 생각하고 제품에 대한 품질을 관리한다.

 

 

 

TE(Test Engineer)와 QA(Quality Assurance)의 차이에 대해서

우리나라에선 TE(Test Engineer)와 언제부턴가 QA의 업무가 동급이거나 같은 분류로 인식이 되고 있다. 지금은 많이 바뀌는 추세라고 하지만... 잠깐 여기서 QA는 소프트웨어직군의 품질 보증 Qual

jislog.net

 

TE(Test Engineer)와 QA(Quality Assurance)의 차이에 대해서

우리나라에선 TE(Test Engineer)와 언제부턴가 QA의 업무가 동급이거나 같은 분류로 인식이 되고 있다. 지금은 많이 바뀌는 추세라고 하지만... 잠깐 여기서 QA는 소프트웨어직군의 품질 보증 Qual

jislog.net

 

많은 회사들이 QA팀과 테스트팀을 동일하게 분류를 하지만 QA팀은 검증중심의 테스트 업무 보다는 발견되는 이슈에 대해서

앞으로 어떻게 할 것인가를 생각하는 목표로 업무를 진행해야 합니다.

 

Sw 제품 Product에 보증과 최종 출시까지의 플로는 대략 이렇게 된다.

QA조직이 존재하고 별도로 테스트를 의뢰하는 QC팀이 외부 또는 내부에 있다는 전재하.

 

QC(품질관리) 테스팀에서 요구사항 명세서 또는 기획서를 기반으로 명세 기반 테스트 시나리오를 작성하고

일정을 산출하고 요구사항 기반으로 개발이 되었는지 테스트를 진행한다.

테스트 중 결함을 발견하고 결함을 보고하고 테스트 결과서를 작성하면 테스트팀의 사이클을 끝나고 다음 차수 스프린트로 넘어 가게 된다

QA팀은 내부에 있는 테스트팀또는 외주업체(아웃소싱)업체로 3차 테스트를 의뢰하여 테스트를 진행하고 리포팅을 받는다.

테스트 리포트에 발견된 보고서를 기반으로 자체적으로 재현테스트를 진행하고 이슈에 대한 우선순위를 선별하고

다음 차수에는 어떻게 해결할건지 내부적인 회의를 진행한다.

 

현재 sw qa공고에서 qa라고 소개하고 있는 테스트업체가 많이 있다.

단순히 테스트만 진행하는 업무는 qa가 아니다.

 

그럼 외주업무를 하는 테스트엔지니어 테스터의 업무의 범위는 어디까지일까?

 

테스트 플랜을작성하고 관리하는 업무는 테스트 엔지니어도 할 수 있다.

테스트 결과서 보고서 역시 테스트엔지니어 테스터가 작성한다.

 

품질 보증을 위한 다양한 테스트를 수행을 한다고 써있지만 검증업무이다.

 

 

테스트 일정관리.리소스 관리, 품질기준 확립, 형상관리의 업무가 빠져있다.

또 다른 테스트업체의 공고

제품이 명세서 파악 요구사항을 파악하여 테스트를 설계하여 테스트가 끝날떄까지의 보고서 결함을 관리하는 업무이다.

여기서 품질에 대한 기준점, 재발방지, 이슈 우선 순위에 대한 기준 정립에 대한 내용이 없다

아니 할 수 가 없다.

 

테스트 업체는 테스트 위주로 업무를 할뿐 이슈에 대해서 재발이 되지 않도록 개발팀과 소통하거나 대응이 불가능하다

3자테스트를 진행하기때문에 테스터와 개발자가 직접 컨텍이 불가능하며 기준은 테스트를 요청한 고객사에서 기준을 정하기때문에

테스터는 qa가 아니라 qc에 가까운 것이다.

기능에 대한 결함 인자가 왜 발생했는지 어떻게 하면 발생하지 않을지 리소스를 제안 할 수가 없다

이게 qa와 qc의 가장 큰 차이이다

품질 보증인 qa안에 테스트가 들어가므로 qa도 검증업무를 당연히도 진행 할 수 있다. qa는 테스트 이후의 위험인자를 파악하고 기준을 정할 수 있지만 단순히 테스트를 진행하는 검증위주의 테스트엔지니어는 qa로 볼 수 없는 것이다

제품에 대한 관리를 qa라고 하는 것도 테스터는 관여를 할 수 없다.

내가 하는 업무가 검증업무인데 qa라고 생각하고 있다면 다시 한번 고민을 해야한다.

나는 테스트 케이스를 만들고 검증이 외에 이슈에 대한 기준을 세워본적이 있는지

발견된 이슈가 개발팀과 소통해서 재발되지 않도록 소통을 해본적이 있는다면 qa업무를 진행을 한것이다.

 

이것은 한국의 외주 테스트 업체와 자체적인 제품있는 자사의 업무 차이이기도 하다.

그렇다고 테스트 엔지니어가 필요 없다는건 아니다 소프트웨어 테스트의 표준은 테스트를 내부가 아닌 외보조직에 두는것을

기준으로 하고 있기때문에 반드시 외부 테스트가 필요하다.

하지만 단순한 테스트는 qa가 아니라는 점이다

 

 

댓글