Quality Assurance (QA) and Quality Control (QC) and Testing

Quality Assurance (QA)는 제품이나 서비스의 품질을 보장하기 위한 계획적이고 체계적인 활동들의 집합이다.
QA는 프로세스 중심적이며, 품질 문제가 발생하기 전에 예방하는 것을 목표로 한다.
전체 개발 수명주기에 걸쳐 품질 기준과 절차를 수립하고 관리한다.

Quality Control (QC)는 개발된 제품이나 서비스가 정해진 품질 기준을 충족하는지 확인하는 활동이다.
QC는 제품 중심적이며, 실제 결과물을 검사하고 결함을 찾아내는 데 중점을 둔다.
주로 테스트와 검토를 통해 이루어진다.

Testing은 소프트웨어가 예상대로 작동하는지 확인하는 구체적인 실행 활동이다.
버그를 찾아내고, 시스템의 기능성과 성능을 검증하는 것이 주요 목적이다.
QC의 중요한 하위 활동으로 볼 수 있다.

이제 세 가지 개념을 다양한 측면에서 비교한 표:

비교 기준Quality Assurance (QA)Quality Control (QC)Testing
정의품질 문제를 예방하기 위한 프로세스 중심의 활동제품이 품질 기준을 충족하는지 확인하는 검증 활동소프트웨어의 기능과 성능을 검증하는 실행 활동
목적결함 예방 및 프로세스 개선결함 발견 및 수정버그 발견 및 기능 검증
범위전체 개발 수명주기특정 개발 단계구체적인 테스트 실행 단계
특성예방적, 전략적탐지적, 전술적실행적, 기술적
주요 활동- 품질 정책 수립
- 프로세스 표준화
- 품질 계획 수립
- 품질 감사
- 교육 및 훈련
- 검토 및 검사
- 결함 추적
- 메트릭 수집
- 품질 보고
- 테스트 케이스 작성
- 테스트 실행
- 버그 리포팅
- 테스트 자동화
책임자QA 관리자, 프로세스 개선 팀QC 엔지니어, 검토자테스터, QA 엔지니어
시점개발 전, 중, 후 지속적으로개발 중간 및 완료 단계개발 중간 및 완료 단계
중점 사항- 프로세스 품질
- 예방적 조치
- 품질 기준 수립
- 지속적 개선
- 제품 품질
- 결함 식별
- 기준 준수 확인
- 시정 조치
- 기능 검증
- 성능 확인
- 버그 발견
- 사용성 평가
산출물- 품질 정책 문서
- 프로세스 가이드라인
- 품질 계획서
- 감사 보고서
- 검토 보고서
- 결함 보고서
- 품질 메트릭
- 시정 조치 계획
- 테스트 계획서
- 테스트 케이스
- 버그 리포트
- 테스트 결과 보고서
비용 영향초기 비용이 높지만 장기적으로 비용 절감중간 수준의 비용 발생직접적인 테스트 비용 발생

이러한 세 가지 활동은 서로 독립적이지 않고 긴밀하게 연관되어 있다.
QA는 전체적인 품질 보증 프레임워크를 제공하고, 그 안에서 QC가 품질 검증 활동을 수행하며, Testing은 QC의 구체적인 실행 방법으로 작용한다.


참고 및 출처