-
[프로세스 기반의 소프트웨어 품질] Part 2 - 소프트웨어 품질카테고리 없음 2025. 4. 22. 13:41
고객 요구사항 만족
- 품질이란 고객의 요구사항을 만족하는 것이다 (Customer Requirement Fitness, Conformance to Requirement, Fitness for use)
- 고객이 원하는 것 이상을 제공하는 것이 좋은 품질은 아니다!!
- 소프트웨어 품질: 요구사항을 만족시킬 수 있는 소프트웨어의 특성
소프트웨어 버그
소프트웨어의 잠재적 결함
- 소프트웨어의 잠재적 결함은 실제 환경이 아니고서야 찾아내기 어렵다.
- 하지만 테스트를 위해 실제 환경과 비슷하게 테스트 환경을 구축하는 것도 비용적인 문제때문에 어렵다.
- 소프트웨어의 결함의 약 15%는 고객에게 전달된다.
인위적 결함 주입
- 결함주입방법 (Defect Injection Method), 오류심기기법 (Error Seeding Method): 소프트웨어 테스트 시 인위적인 오류를 만들어서 소프트웨어에 심어놓는 것
- 살충제 패러독스: 동일한 테스트케이스를 반복하는 경우 더 이상 새로운 결함을 발견 할 수 없다
데이터의 신뢰성과 무결성
소프트웨어 품질 특성
- ISO 국제 표준에 따른 세부적인 품질: 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성 등
소프트웨어 품질 영향 요인
- 소프트웨어에 영향을 주는 3대 요인
- 사람: 개발자, 고객
- 프로세스: 개발 방법론, 프로젝트 관리 방법론
- 기술: 개발도구, 관리도구, 테스트도구 등 - 품질 이슈를 사전에 관리하기 위한 점진적인 개발 필요
- 선도개발: 중복개발을 최소화하기 위한 공통 소프트웨어 개발
품질관리 프로세스
- 품질관리 프로세스 5단계
- 시작
- 계획 (품질계획단계): 품질 표준 정의 및 방법 결정, 품질 기준 수립, 품질에 영향을 줄 수 있는 위험 분석
- 실행 (품질보증단계)
- 리뷰 (Review)
- 팀 검토, 공식 검토 (Walkthrough, Formal Review)
- 검사 (Inspection)
- 테스트 및 감사 (Audit) - 통제 (품질통제단계): 품질 보증의 성과와 결과가 품질계획의 표준과 목표에 부합하는지 분석
- 종료
소프트웨어 지표와 측정
- 품질 지표의 범위 3가지
- Defect (결함)
- Customer Problem (고객 문제점)
- Customer Satisfaction (사용자 만족도) - 기능성, 사용성, 신뢰성, 성능, 서비스 관점
- 결과지표 뿐만 아니라 과정지표도 잘 관리해야 함
품질 비용
- 품질 비용: 제품, 서비스의 품질과 관련하여 발생하는 비용
- 품질 비용의 3가지 범주:
- 예방 비용: 결함 방지에 요구되는 비용
- 평가 비용: 요구사항을 만족하는지 확인하는 비용 → 현대에는 낭비라고 여겨짐
- 실패 비용: 결함 관련 비용 → MVP (Minimum Value Product, 최소기능제품) 이론으로 제거됨
소프트웨어 형상 관리
- 소프트웨어의 무결성이 보장되어야 한다
- 프로그램의 소스 뿐만 아니라, 설계도, 데이터 스키마 등도 형상 관리의 대상이다
- 소프트웨어 변경 관리: 소프트웨어의 수정 및 변경사항을 체계적으로 관리하는 절차
- 소프트웨어 버전 관리: 소프트웨어의 진화에 대한 이력
소프트웨어 형상항목
- 형상항목: 형상관리의 최소 항목으로, 서로 구별되고 식별되는 최소 단위. 소프트웨어 또는 하드웨어 요소의 집합으로 구성됨
- 추적성: 요구사항과 소프트웨어, 산출물들의 관계를 관리하는 능력
소프트웨어 동결과 베이스라인
- 소프트웨어는 베이스라인부터 형상관리, 변경관리, 버전관리를 시작한다
- 베이스라인을 만들기 위해서는 "동결" 이라는 의사결정이 필요하며, 동결이 선언되면 수정은 금지되고 베이스라인 작업을 수행함
소프트웨어 배포
형상통제 및 감사
- 동결에 따라 설정된 형상항목 베이스라인에 대한 수정은 승인 절차를 필요로 한다
- 형상통제 (변경통제, Change Control): 기준선이 된 형상항목에 대한 변경요청, 평가, 승인, 반려, 연기하는 절차를 기술하고 실행하는 활동
- 형상감사 (Configuration Audit): 형상관리 계획서에 나와있는 변경관리 프로세스가 적용되어 적절한 변경이 이루어졌는가를 감독, 검사하는 활동
- 절차에 대한 감사 / 형상항목에 대한 감사
품질 시스템의 필요성
- 품질 시스템: 표준화 기구에 의해 정의된 품질 관리 및 품질 보증에 대한 규격
- ISO 9001
- 자율적으로 품질 관리 프로세스를 만들어서 사용함
- 기업의 품질 프로세스가 있는지, 그 절차를 준수하는지를 인증하는 체제
- CMMi
- 미국 주도의 소프트웨어 품질 인증 체계
- Level 0 (가장 낮은 수준) ~ Level 5 (가장 높은 수준)
- SPICE
- ISO에서 지정한 소프트웨어 프로세스 심사 표준/인증 규격
- CMMi, ISO 9001의 장점을 수용한 소프트웨어 프로세스 성숙도 평가에 특화된 모델
품질계획서와 품질보증
- 품질계획서: 품질 보증 활동을 위한 구체적인 지침을 제시함
- 품질계획서의 구성: 목적, 전략, 품질목표, 품질 보증 계획 등