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. 소프트웨어 품질보증의 문제점 및 발전방향
가. 소프트웨어 품질보증의 문제점
- 품질에 대한 인식 부족
- 품질 보증 요원 부족
- 표준제도 절차확립 결핍
- 개발시간 적 압박으로 품질보증 관련 업무 소홀
나. 소프트웨어 품질보증 발전방향
- 소프트웨어 제품 자체보다 프로세스 품질활동에 초점
- 품질정착, 문화, 환경의 조성
- 경영자의 품질에 대한 의지와 동기부여, 교육, 훈련
- 지속적이고 발전적인 품질보증활동 개선, 수용자 간 상호 이해
2 Comments
좋은글 감사합니다~!
저는 지금 의료기기 소프트웨어 제조업체에 QA로 근무중입니다.
실례지만 소프트웨어 불량 유형2~3가지와 해결방안에 대한 자료를 부탁드려도 될까요?
부탁드립니다~
소프트웨어 불량 유형을 어떤 관점에서 보느냐에 따라 달라지는데요. 소프트웨어 개발 단계 별 유형으로 보면, 기획 및 설계 시 요구사항 표준 미준수, 불명확 등이 있고, 구현 시 인터페이스 및 데이터 결함 등이 있습니다. 소프트웨어 자체 결함으로 보면, 버퍼 오버플로우, 유효하지 않은 포인터, 불안전한 형(Type) 변환 등이 있습니다. 소프트웨어 불량 유형은 소프트웨어 결함으로 검색하시면 다양한 자료가 있으니 구글에서 검색해보셔도 좋겠습니다.
소프트웨어 불량의 해결방안은 불량 유형 마다 다르고 테스트 수행을 통해 결함과 해결방안을 도출할 수 있습니다. 본 사이트의 결함 추적 관리 방안(링크)을 참조해주시고, 국내 ISTQB 사이트(https://www.sten.or.kr/)에 관련 자료가 많으니 찾아보셔도 될 것 같습니다.
소프트웨어 불량(결함)과 테스트 분야의 범위가 넓어 명확한 답변이 되지는 않았겠지만, 소프트웨어 결함이나 테스트로 검색하셔서 꼭 원하시는 답을 얻으셨으면 좋겠습니다.