📌CM/QA
CM Configuration Management
- 정의 및 목적
- 핵심 활동
- 변경 관리 프로세스
- 버전관리와 릴리스
QA Quality Assurance
RTM - Requirement Traceability Matrix
📌 CM - 정의 및 목적
- CM의 정의
소프트웨어 시스템의 모든 구성요소를 체계적으로 정의하고, 관리하고, 변경을 기록항, 개발과정의 일관성을 보장하는 활동
- CM의 목적
변경 사항 추적
재현 가능성 유지
효율적인 협업 환경 조성
📌 CM - 핵심 활동
-
식별(Idenification)
모든 산출물(코드, 문서, 요구사항 등)고유하게 식별
식별 체계 예 : 버전 번호 체계 (1.0.0, 1.1.0 등)
-
통제(Control)
변경 요청을 관리하고 승인된 변경만 반영
변경 요청 프로세스
변경 요청 생성 -> 영향 분석 -> 승인/거부 -> 적용
-
상태기록(Status Accounting)
모든 구성요소의 현재 상태를 기록하고 유지
예 : "모듈 A는 1.2 버전이며, 테스트 상태 완료
-
검증(Auditing)
CM 프로세스가 올바르게 실행되었는지 확인
예 : 특정 구성요소가 올바른 버전으로 배포되었는지 검증
CM - 변경관리 프로세스
- 변경 요청 생성단계
모든 변경 요청은 기록으로 관리
문서화 내용 : 변경의 이유, 영향, 대안, 예상 결과
- 변경 승인 단계
변경관리위원회(Change Control Board)와 같은 검토 단위 구성
- 적용 및 검증 단계
변경 후 반드시 검증 테스트를 수행
CM - 버전관리와 릴리스
- 버전 관리의 기본 원칙
버전 번호 체계
- 메이저(주요 변경), 마이너(기능 추가), 패치(버그 수정)의 구분
- 분리된 환경 유지
- 롤백 전략
- "이전 상태로 되돌릴 수 있는 시스템" 설계해야함
- 릴리스 관리
- 릴리스 계획 수립
- 주요 기능, 품질 목표, 일정에 따른 릴리스 로드맵 작성
- 변경 사항 요약
- 모든 릴리스마ㅏ 변경 사항과 새로운 위혐 요소 문서화
📌 QA - 정의 및 목적
- 정의
품질을 보장하기 위한 계획적이고 체계적인 활동
- 목적
결함 없는 소프트웨어를 제공하며, 고객의 요구를 충족시키는 것
📌 QA - 핵심 활동
- 프로젝트 정의 및 개선
개발 표준, 코드 리뷰 규칙, 테스트 전략 정의
- 예방 줌심 활동
테스트 설계와 요구사항 문석으로 초기 결함 예방
- 품질 매트릭스 관리
결함 밀도, 테스트 커버리지, 평균 수명 시간 측정
💻 핵심 활동 사례 - 테스트전략 설계
- 테스트 계획 작성
무엇을 테스트할 것인가? (테스트 대상 정의)
테스트 범위 : 기능 테스트, 비기능 테스트(성능, 보안 등)
우선순위 결정 : 위험도에 따라 테스트 순위 지정
- 테스트 실행 기준
테스트 시작/종료 기준
- 시작 : 개발 80% 이상 완료, 테스트 환경 준비 완료 상태
- 종료 : 주요 결함 수정 완료, 요구사항 충족률 95% 이상 상태
테스트케이스 설계
- 테스트 시나리오
사용자의 실제 동작을 기반으로 설계
예 : 사용자가 로그인 후, 비밀번호를 변경할 떄의 모든 경로 테스트
- 경계값 분석
입려값의 최속밧, 최대값, 중간값 테스트
예 : 입력 필드에 "최대 100자 허용" 이면 99, 100, 101자를 테스트
QA평가 및 보고
- 결함 보고서 작성
결함 설명, 재현 절차, 기대 결과, 실제 결과
- 품질 목표와 성과 평가
목표 : 결함 밀도 >= 0.5개/1000라인, 테스트 커버리지 >= 90%
📌 QA – CM과 QA의 관계
CM과 QA의 관계
- 변경 사항이 품질에 미치는 영향 추적
- QA 활동에서 발견된 결함 → CM 기록에 반영
- CM과 QA의 협력
- QA는 변경 요청 단계에서 잠재적 품질 문제를 검토
품질 보장을 위한 통합된 프로세스
- 변경 요청 → 영향 분석(QA 참여) → 구현 및 검증
- CM과 QA 협력
📌 RTM – Requirement Traceability Matrix
정의
- 고객 요구사항부터 설계, 개발, 테스트에 이르기까지 추적 가능한 매트릭스를 구축
→ 프로젝트의 품질 보증과 요구사항 충족을 보장하는 핵심 활동
- RTM은 SDLC 각 단계에서 요구사항이 제대로 반영되고 테스트되었는지 확인할 수 있는 기능 제공
RTM – 구성 요소
- 요구사항 ID: 요구사항을 고유하게 식별하는 ID
- 고객 요구사항: 고객이 요청한 주요 기능 또는 성능 목표
- 기능적 요구사항: 고객 요구 구현 위한 시스템 요구사항
- 설계 요소: 요구사항을 반영한 설계 단계의 산출물
- 테스트 케이스 ID: 요구사항 검증하는 테스트 케이스 식별자
- 상태(Status): 요구사항 충족 여부
💻 RTM – 예시
| 사항 ID | 고객 요구사항 | 기능적 요구사항 | 설계 요소 | 테스트 케이스 ID | 상태 |
|---|
| RQ-01 | 사용자는 로그인할 수 있어야 한다 | 사용자는 이메일과 비밀번호로 로그인 | login_page.html, auth.js | TC-01, TC-02 | 충족됨 |
| RQ-02 | 사용자는 비밀번호를 재설정할 수 있어야 한다 | 비밀번호 재설정을 위한 이메일 링크 제공 | password_reset.html, reset.js | TC-03 | 충족됨 |
| RQ-03 | 시스템은 2초 이내에 검색 결과를 반환해야 한다 | 검색 기능 최적화 | search_algorithm.py | TC-04 | 충족되지 않음 |
| RQ-04 | 관리자는 사용자 데이터를 내보낼 수 있어야 한다 | 사용자 데이터를 CSV로 내보내기 | admin_export.html, export.js | TC-05, TC-06 | 테스트 중 |
Sofrware Quality -> 얼마나 요구사항을 충족 시켰나?