소프트웨어 품질 보증
IT 위키
더 많은 작업
- SQA; Software Quality Assurance; 소프트웨어 품질 보증
- 소프트웨어 제품과 개발 프로세스가 정해진 요구사항·표준·계획을 따르고 있다는 확신을 제공하기 위한 계획적·체계적 활동
품질 보증은 결함을 찾아 고치는 품질 통제(QC)와 달리, 결함이 생기지 않도록 프로세스를 정의하고 그 준수 여부를 독립적으로 확인하는 데 중점을 둔다. IEEE 730은 소프트웨어 개발·유지보수 프로젝트의 SQA 프로세스를 착수·계획·통제·실행하기 위한 요구사항을 규정한다.
| 구분 | 품질 보증(QA) | 품질 통제(QC) |
|---|---|---|
| 초점 | 프로세스 | 제품(산출물) |
| 성격 | 예방 중심 | 발견·교정 중심 |
| 시점 | 생명주기 전 과정 | 산출물 완성 후 또는 단계 말 |
| 활동 예 | 프로세스 정의, 감사, 표준 준수 확인 | 테스트, 검사, 결함 수정 확인 |
두 활동을 포괄하는 관리 활동은 품질 관리 문서를 참고한다.
| 활동 | 주도 | 형식성 | 목적 |
|---|---|---|---|
| 검토(Review) | 관리자·이해관계자 | 중간 | 산출물·진척을 평가하여 계획 대비 상태 확인(관리 검토, 기술 검토) |
| 워크스루(Walkthrough) | 작성자 | 낮음 | 작성자가 산출물을 설명하며 동료 의견을 받아 이해 공유·결함 발견 |
| 인스펙션(Inspection) | 훈련된 중재자(moderator) | 가장 높음 | 역할(중재자, 작성자, 낭독자, 기록자, 검사자)과 체크리스트, 결함 데이터로 결함을 체계적으로 발견 |
| 감사(Audit) | 독립 조직 | 높음 | 제품·프로세스가 표준·규정·계약을 준수하는지 독립적으로 평가 |
인스펙션은 보통 계획 → 개관 → 준비 → 인스펙션 회의 → 재작업 → 후속 조치 순으로 진행한다. 이 활동들은 코드를 실행하지 않는 정적 기법이며, 실행 기반 소프트웨어 테스트와 함께 쓰인다.
SQA 계획(SQAP)은 프로젝트 초기에 수립하며 다음 내용을 담는다.
- 목적과 범위, 적용 표준·지침·규약
- SQA 조직과 역할·책임(개발 조직과의 독립성 확보)
- 검토·감사 일정과 대상 산출물, 테스트 전략
- 문제 보고와 시정 조치 절차, 측정 지표
- 형상 관리, 위험 관리, 협력업체 관리, 기록 보관
| 구분 | 내용 | 예 |
|---|---|---|
| 예방 비용 | 결함이 생기지 않도록 하는 비용 | 교육, 표준·프로세스 정의, 품질 계획, 도구 도입 |
| 평가 비용 | 결함을 찾아내는 비용 | 검토, 인스펙션, 테스트, 감사 |
| 내부 실패 비용 | 인도 전에 발견된 결함의 처리 비용 | 재작업, 재테스트, 디버깅 |
| 외부 실패 비용 | 인도 후에 발견된 결함의 처리 비용 | 장애 대응, 긴급 수정, 보상, 신뢰 하락 |
예방·평가 비용은 적합 비용, 내부·외부 실패 비용은 부적합 비용으로 묶는다. 결함은 늦게 발견될수록 수정 비용이 커지므로 예방 비용 투자가 전체 품질비용을 줄인다.
- IEEE 730: SQA 프로세스 표준이다. 2014년판(IEEE Standard for Software Quality Assurance Processes)이 오래 쓰였고, 2026년판(IEEE 730-2026)이 2026년 8월 발행되어 이를 대체하였다. 2026년판은 ISO/IEC/IEEE 12207:2017의 생명주기 프로세스, ISO/IEC/IEEE 15289:2019의 정보 항목과 조화되어 있다.
- 프로세스 품질과 제품 품질을 구분하여 표준을 적용한다.
| 구분 | 프로세스 품질 | 제품 품질 |
|---|---|---|
| 관점 | 좋은 프로세스가 좋은 제품을 만든다 | 제품 자체의 특성을 정의·측정 |
| 대표 표준·모델 | CMMI(CMM의 후속 통합 모델), SPICE(ISO/IEC 15504, 후속 ISO/IEC 330xx) | SQuaRE(ISO/IEC 25000 시리즈, 품질 모델 ISO/IEC 25010), 이전의 ISO/IEC 9126 |
| 평가 결과 | 성숙도 수준·능력 수준 | 품질 특성별 측정값 |
| 관련 문서 | ISO/IEC/IEEE 12207 생명주기 프로세스 | ISO/IEC 5055 소스코드 품질 측정 |
- QA는 프로세스·예방, QC는 제품·발견이라는 구분
- 검토·워크스루·인스펙션·감사의 주도자와 형식성 차이(인스펙션이 가장 형식적)
- 검증과 확인의 정의, 품질비용 4분류(예방·평가·내부 실패·외부 실패)
- 프로세스 품질(CMMI, SPICE)과 제품 품질(ISO/IEC 25000) 표준의 구분