X

품질보증(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. 소프트웨어 품질보증의 문제점 및 발전방향

가. 소프트웨어 품질보증의 문제점

  • 품질에 대한 인식 부족
  • 품질 보증 요원 부족
  • 표준제도 절차확립 결핍
  • 개발시간 적 압박으로 품질보증 관련 업무 소홀

나. 소프트웨어 품질보증 발전방향

  • 소프트웨어 제품 자체보다 프로세스 품질활동에 초점
  • 품질정착, 문화, 환경의 조성
  • 경영자의 품질에 대한 의지와 동기부여, 교육, 훈련
  • 지속적이고 발전적인 품질보증활동 개선, 수용자 간 상호 이해
도리:

View Comments (2)

  • 좋은글 감사합니다~!
    저는 지금 의료기기 소프트웨어 제조업체에 QA로 근무중입니다.
    실례지만 소프트웨어 불량 유형2~3가지와 해결방안에 대한 자료를 부탁드려도 될까요?
    부탁드립니다~

    • 소프트웨어 불량 유형을 어떤 관점에서 보느냐에 따라 달라지는데요. 소프트웨어 개발 단계 별 유형으로 보면, 기획 및 설계 시 요구사항 표준 미준수, 불명확 등이 있고, 구현 시 인터페이스 및 데이터 결함 등이 있습니다. 소프트웨어 자체 결함으로 보면, 버퍼 오버플로우, 유효하지 않은 포인터, 불안전한 형(Type) 변환 등이 있습니다. 소프트웨어 불량 유형은 소프트웨어 결함으로 검색하시면 다양한 자료가 있으니 구글에서 검색해보셔도 좋겠습니다.
      소프트웨어 불량의 해결방안은 불량 유형 마다 다르고 테스트 수행을 통해 결함과 해결방안을 도출할 수 있습니다. 본 사이트의 결함 추적 관리 방안(링크)을 참조해주시고, 국내 ISTQB 사이트(https://www.sten.or.kr/)에 관련 자료가 많으니 찾아보셔도 될 것 같습니다.
      소프트웨어 불량(결함)과 테스트 분야의 범위가 넓어 명확한 답변이 되지는 않았겠지만, 소프트웨어 결함이나 테스트로 검색하셔서 꼭 원하시는 답을 얻으셨으면 좋겠습니다.