2019년 2월 14일
품질보증(Quality Assurance)
I. 소프트웨어 산출물의 체계적인 확증, 품질보증
가. 소프트웨어 품질보증 (Quality Assurance, QA)의 개념
![]() |
- 고객의 요구사항과 개발된 산출물이 일치하는지 확인하기 위한 쳬계적인 행위
나. 소프트웨어 품질보증의 특징
- 사용자 요구사항 최대 만족을 통한 생산성 향상
- 개발과정에서 품질 문제 조기 발견 및 조치
- 납기준수, 제품의 견고성
- 비용 노력 절감, 생산성 향상, 재사용성 증가
- 제품의 확장성
II. 소프트웨어 품질보증 기법 종류 및 비교
가. 소프트웨어 품질보증 기법 종류
구분 | 내용 |
---|---|
Management Review | 진행상태를 점검하고 시정조치를 취하도록 함 스케줄과 계획의 진행상태를 확정 참석자: 경영자, 분야별 관련자 |
Technical Review | 명세서와 계획에 대한 적합성 평가, 변경의 무결성 보증 기술적 대안 제시 산출물: 기술검토보고서 |
Walkthrough | 소프트웨어 제품 평가 비공식적 검토 결함을 찾고 대안을 시험하고 학습수단으로도 활용 |
Inspection | 설계서, 코드 등의 중간 산출물을 검사하여 결함 발견 및 SW품질 개선과 비용절감을 위한 품질 보증기법 타인에 의한 Inspection은 수준 높은 디버깅이 가능함 공식적인 동료검토(통상 3 ~ 7명) SW 에러, 규격, 표준에 맞지 않는 것들을 찾는 검토활동 |
Audit | 요구분석, 설계, 프로그램 품질 감사 전체 프로세스 준수 여부에 대한 적정성 검토 |
나. 소프트웨어 품질보증 기법간의 비교
구분 | Management Review | Technical Review | Software Inspection | Walkthrough |
---|---|---|---|---|
목적 | 진행상태 점검 후 시정 | 명세서와 계획의 적합성 평가 및 변경무결성 보증 | 결함을 찾고 해결책을 검증 | 결함을 찾고 대안을 시험하고 학습수단 |
참석자 | 경영자, 분야별 관련자 | 개발자 | 공식적인 참석대상자 | 개발자 |
리더쉽 | 선임 관리자 | 선임 엔지니어 | 훈련된 중재자 | 개발자 본인 |
자료량 | 목적에 따라 많음 | 목적에 따라 많음 | 상대적으로 작음 | 상대적으로 작음 |
산출물 | 경영검토보고서 | 기술검토보고서 | 검사보고서와 결함목록 | 검토회보고서 |
III. 소프트웨어 품질보증 절차 및 활동
가. 소프트웨어 품질보증 절차
![]() |
나. 소프트웨어 품질보증 활동
품질보증 활동 | 세부 내용 |
---|---|
형상관리 | 형상항목 식별, 변경사항 관리 |
문서관리 | 문서관리 절차수립, 문서작성/보관/폐기 |
품질기록 | 품질보증 계획/수행/결과를 기록 |
합동검토 | Milestone에 따라 프로젝트의 진행상황을 공동검토 |
검증 및 확인 | 단계별 검증 및 테스트 |
시정조치 | 해결방안 수립 및 조치 |
위험관리 | 예상위험 발견/평가/통제 |
쟁점관리 | 고객 요구사항 변경 등의 쟁점분석, 대안설정 및 실행 |
IV. 소프트웨어 생명주기(SDLC) 별 품질보증 활동
단계 | 준비 활동 | 시행 활동 | 완료 활동 |
---|---|---|---|
요구 분석 | 업무범위 이해, 사용자 확인 표준 및 절차 확인 Comm. 능력 분석자 요구분석 체크리스트 | 요구분석 방법 유사프로젝트 경험 템플릿 활용 모델링 및 도구 활용 체크리스트 활용 | 요구분석 산출물 확인 사용자 요구목록 관리 철저한 Review 실시 사용자의 요구분석 산출물 검토 |
기본 설계 | 요구분석 산출물 검토 시스템 적용활동 이해 제약조건 파악 시스템환경 기술자확보 표준 및 절차 수립 | 유사 프로젝트 경험 템플릿 활용 설계기법 및 도구활용 설계 목표 달성 설계원리 준수(추상화등) | 기본설계 산출물 확인 철저한 Review 실시 기본설계서 분석자의 검토여부 확인 |
상세 설계 | 기본설계서 검토 상세설계 제약조건파악 필요 도구준비 표준 및 절차 수립 | 유사 프로젝트 경험 템플릿 활용 설계 기법 및 도구 활용 구조적 프로그래밍 설계 객체지향 | 상세설계 산출물확인 철저한 Review 실시 상세설계서 작성 상세설계서 분석자의 검토여부 확인 |
구현 | 상세설계서 검토 코딩 및 절차 준비 공통, 재활용 모듈 준비 표준 및 절차 수립 | 표준 코딩 방법론 적용 4GL, CASE 도구 활용 단위 시험용 절차서 데이터활용 단위테스트 | 상세설계 대비 개발 소스 누락여부 확인 프로그램목록 작성 단위시험 체크리스트 개발소스에 대한 상세 설계자 검토 |
통합 시험 | 기본설계서 검토 통합시험 시나리오 통합시험 환경검토 통합시험 도구 준비 | 시험과정의 기록 설계담당자참석통합시험 모듈간 인터페이스 시험 | 통합시험 결과 기록 시스템 필요모듈 확인 철저한 Review 실시 |
인수 시험 | 요구분석서 검토 인수시험 시나리오 사용자 입회여부 검토 | 사용자 직접 시험 실적용 환경에서 테스트 시험 과정 및 결과 기록 | 과정 및 결과 확인 인수시험 결과에 대한 사용자의 직접 확인 |
V. 소프트웨어 품질보증의 문제점 및 발전방향
가. 소프트웨어 품질보증의 문제점
- 품질에 대한 인식 부족
- 품질 보증 요원 부족
- 표준제도 절차확립 결핍
- 개발시간 적 압박으로 품질보증 관련 업무 소홀
나. 소프트웨어 품질보증 발전방향
- 소프트웨어 제품 자체보다 프로세스 품질활동에 초점
- 품질정착, 문화, 환경의 조성
- 경영자의 품질에 대한 의지와 동기부여, 교육, 훈련
- 지속적이고 발전적인 품질보증활동 개선, 수용자 간 상호 이해