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의 구체적인 실행 방법으로 작용한다.