📘 리그레션 테스트 (Regression Test)
📌 결함 수정 작업 (Corrective Maintenance)
- 기존 결함을 수정할 때 발생한 부작용 방지를 위해 수행
- 기존 기능이 영향을 받지 않았는지 확인
📌 기능 보강 작업 (Adaptive / Perfective Maintenance)
- 기존 소프트웨어 기능을 개선하거나 보강
- 새로운 요구사항 반영 및 성능 향상 목적
- 리그레션 테스트 필요: 추가/변경된 기능이 기존 기능에 영향 없는지 검증
📌 적응 작업 (Adaptive Maintenance)
- 외부 환경 변화(운영체제, 하드웨어, API 등)에 적응
- 영향 범위에 따라 리그레션 테스트 수행
📌 예방 작업 (Preventive Maintenance)
- 미래 결함 방지 목적
- 리팩토링, 코드 개선 등
- 기존 기능 안정성을 위해 리그레션 테스트 수행
📌 소프트웨어 유지 보수 활동 비율
- 일반적으로 유지보수 작업 중 결함 수정, 기능 보강, 적응, 예방 작업 비율은 다양함
- 리그레션 테스트는 모든 유지보수 활동에서 중요한 검증 단계
📌 리그레션 테스트 사이클
- 수정/기능 추가 작업 수행
- 기존 테스트 케이스 재실행
- 수정 영향 검증
- 추가 결함 발견 시 피드백
- 테스트 완료 후 배포
📌 기능 추가에 따른 리그레션 테스트 시간 변화
- 기능 추가가 많을수록 테스트 범위 증가
- 테스트 자동화 활용 시 시간 증가율 완화 가능
📌 리그레션 테스트 방식
- 리테스트 전량 (Retest All)
- 모든 테스트 케이스 수행
- 안정적이지만 시간·비용 많이 소요
- 선택적 리그레션 (Selective Regression)
- 변경 영향 범위만 수행
- 효율적이지만 영향 범위 잘못 판단 시 결함 누락 가능
- 테스트 최소화 (Test Minimization)
- 테스트 우선순위화 (Test Prioritization)
📌 APFD (Average Percentage of Faults Detected)
- 결함 발견 효율 지표
- 테스트 케이스 실행 순서에 따라 결함을 얼마나 빨리 발견했는지 계산
- APFD = 1 − (TF1 + TF2 + … + TFn) / (n × m) + 1 / (2 × n)
- TF = 결함 발견 시점 테스트 수
- n = 결함 수, m = 총 테스트 케이스 수
- 높을수록 효율적인 테스트 순서
📌 리그레션 테스트 절차
- 테스트 계획 수립
- 테스트 케이스 선정
- 테스트 실행
- 결과 분석
- 결함 수정 피드백
- 테스트 완료 보고
🧠 핵심 정리
- 리그레션 테스트 = 유지보수 및 변경 시 기존 기능 안정성 검증
- 방식: 전량 vs 선택적 / 최소화 / 우선순위화
- APFD 활용 → 테스트 효율 측정
- 절차 → 계획 → 선정 → 실행 → 분석 → 피드백 → 완료
리그레션 테스트는 단순 반복이 아니라,
효율적 전략과 절차를 통한 지속적 품질 보증 활동이다.